Page 2 of 5
Re: GZDoom on GL 3.x core profile
Posted: Wed Aug 31, 2016 9:59
by _mental_
Call to
CheckExtension() returns
false. According to
this it's in Core since 3.1 which explains why it works with the line commented out. I think that the first version comparison in that
if() needs to be adjusted.
By the way, are you about to remove OpenGL 2.x path completely? I'm thinking about an addition of legacy fallback if core context creation failed. At the moment there is no check in Cocoa backend at all. It was OK for OpenGL 2.1 but with the introduction of Core Profile it should be handled I guess.
Re: GZDoom on GL 3.x core profile
Posted: Wed Aug 31, 2016 10:17
by Graf Zahl
No, the fallback will stay in. There's just too many old systems out there that still need support.
As for the extension, it should be supported so I wonder why the check fails. I think that's the real problem here. Altering the 'if' is only circumventing the actual error here.
Re: GZDoom on GL 3.x core profile
Posted: Wed Aug 31, 2016 10:39
by _mental_
As far as I remember the list of extensions was quite short. I cannot confirm this yet but it seems like core features are not reported as extensions.
Re: GZDoom on GL 3.x core profile
Posted: Wed Aug 31, 2016 16:05
by Graf Zahl
Can you post your startup log?
Re: GZDoom on GL 3.x core profile
Posted: Wed Aug 31, 2016 20:17
by _mental_
Re: GZDoom on GL 3.x core profile
Posted: Wed Aug 31, 2016 22:10
by Graf Zahl
That's odd. I think the best thing in this case is to skip the CheckExtension call on Macs. Regardless, I think if any hardware does not support this extension it has to be demoted to legacy support no matter what.
Re: GZDoom on GL 3.x core profile
Posted: Thu Sep 01, 2016 8:08
by _mental_
From
OpenGL 3.1 Specification:
H.3.51 Uniform Buffer Objects
The name string for uniform buffer objects is GL_ARB_uniform_buffer_object. This extension is equivalent to new core functionality introduced in OpenGL 3.1 and is provided to enable this functionality in older drivers.
I'm curious why does the check expect OpenGL 3.3? Does the implementation use something introduced in it? If not, shouldn't version require an adjustment?
BTW the same spec states:
H.3.2 Promoting Extensions to Core Features
ARB extensions can be promoted to required core features in later revisions of OpenGL. When this occurs, the extension specifications are merged into the core specification. Functions and enumerants that are part of such promoted extensions will have the ARB affix removed.
GL implementations of such later revisions should continue to export the name strings of promoted extensions in the EXTENSIONS strings and continue to support the ARB-affixed versions of functions and enumerants as a transition aid.
Maybe I got it wrong or maybe Apple did so... I think the names of the extensions that became core features must be reported anyway.
EDIT:
This answer seems to share the same thought.
Re: GZDoom on GL 3.x core profile
Posted: Thu Sep 01, 2016 8:23
by Graf Zahl
_mental_ wrote:From
OpenGL 3.1 Specification:
H.3.51 Uniform Buffer Objects
The name string for uniform buffer objects is GL_ARB_uniform_buffer_object. This extension is equivalent to new core functionality introduced in OpenGL 3.1 and is provided to enable this functionality in older drivers.
I'm curious why does the check expect OpenGL 3.3? Does the implementation use something introduced in it? If not, shouldn't version require an adjustment?
I checked against 3.3 because the reference I used said that this was the version where the feature was made core. If the feature was made core in 3.1 the check needs to be altered.
GL implementations of such later revisions should continue to export the name strings of promoted extensions in the EXTENSIONS strings and continue to support the ARB-affixed versions of functions and enumerants as a transition aid.
Maybe I got it wrong or maybe Apple did so... I think the names of the extensions that became core features must be reported anyway.
I guess Apple's reasoning was that they do not allow any core contexts lower than 3.2 so that version's feature set was used as a baseline.
Re: GZDoom on GL 3.x core profile
Posted: Thu Sep 01, 2016 10:50
by Graf Zahl
BTW, I'm a bit puzzled that the 9400M does not have GL_ARB_sampler_objects. The hardware can do it for sure.
Re: GZDoom on GL 3.x core profile
Posted: Thu Sep 01, 2016 13:15
by _mental_
It's in Core since 3.3 so I need to install macOS 10.9 in order to get support for sampler objects. Despite Apple's laziness it's a good point to do not use outdated software

Re: GZDoom on GL 3.x core profile
Posted: Fri Sep 02, 2016 3:56
by drako
I say, keep opengl 2.1 compatibility as long as possible (or at least until I buy a new machine

). Semi-seriously, Doom is an old game played mainly by old people who tend to possess old machines.
Re: GZDoom on GL 3.x core profile
Posted: Fri Sep 02, 2016 8:39
by Graf Zahl
drako wrote:Doom is an old game played mainly by old people who tend to possess old machines.
That's clearly not correct. The majority of users here uses up-to-date hardware.
Regarding 2.x support, it will remain as long as it won't get in the way of some actual improvements. But I cannot count out some feature regressions if I think that some part of the compatibility fallback has to go for maintainability reasons.
Re: GZDoom on GL 3.x core profile
Posted: Fri Sep 02, 2016 19:13
by ibm5155

People with old machine tend to play with vanilla doom ...
Or doom legacy in case they want to use the glider engine

Re: GZDoom on GL 3.x core profile
Posted: Sat Sep 03, 2016 0:40
by Rachael
ibm5155 wrote:
People with old machine tend to play with vanilla doom ...
Or doom legacy in case they want to use the glider engine

Also not correct, or there wouldn't be people here asking to keep OpenGL 2.1 support in GZDoom, or anyone on the ZDoom forum getting upset with Win9x support being dropped.
Just because they are a minority does not mean they aren't here.
I still occasionally see people browsing this site on Windows XP with IE 6. Service pack 2, even. I have no idea what hardware is running that, but I can almost promise you it's not something you've bought at a chain retailer within the past year. Anything that they did can probably just about all of those can run GZDoom's OpenGL3 engine on the Core profile without issues, unless they are running an older AMD card of which AMD butchered the drivers.
Re: GZDoom on GL 3.x core profile
Posted: Sat Sep 03, 2016 4:07
by dpJudas
I'm pretty much aligned with Graf's opinion on this matter. I'll try not to break it and if I can support it with a reasonably low amount of effort I will.
But I also at the same time have very little tolerance for people with that old hardware because OpenGL 3.0 is from 2008 - that's 8 years ago. If people want to use old hardware that's their choice, but I can get quite angry when they take it for granted, or worse even expect, that I will spend time and resources on something that's essentially not my problem. I wonder how many of those people would be willing to spend DAYS extra development time on a feature if the situation was reversed. Not many I'm willing to bet.