GZDoom on GL 3.x core profile
Moderator: Graf Zahl
-
- Developer
- Posts: 259
- Joined: Sun Aug 07, 2011 13:36
Re: GZDoom on GL 3.x core profile
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.
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.
- Graf Zahl
- GZDoom Developer
- Posts: 7148
- Joined: Wed Jul 20, 2005 9:48
- Location: Germany
- Contact:
Re: GZDoom on GL 3.x core profile
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.
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.
-
- Developer
- Posts: 259
- Joined: Sun Aug 07, 2011 13:36
Re: GZDoom on GL 3.x core profile
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.
- Graf Zahl
- GZDoom Developer
- Posts: 7148
- Joined: Wed Jul 20, 2005 9:48
- Location: Germany
- Contact:
Re: GZDoom on GL 3.x core profile
Can you post your startup log?
-
- Developer
- Posts: 259
- Joined: Sun Aug 07, 2011 13:36
Re: GZDoom on GL 3.x core profile
A few startup logs for comparison:
Spoiler: nVidia 9400M on 10.7
Spoiler: nVidia 750M on 10.11
Spoiler: Intel Iris Pro on 10.11There is no GL_ARB_uniform_buffer_object extension in the list but it's definitely supported as a part of Core Profile.
- Graf Zahl
- GZDoom Developer
- Posts: 7148
- Joined: Wed Jul 20, 2005 9:48
- Location: Germany
- Contact:
Re: GZDoom on GL 3.x core profile
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.
-
- Developer
- Posts: 259
- Joined: Sun Aug 07, 2011 13:36
Re: GZDoom on GL 3.x core profile
From OpenGL 3.1 Specification:
BTW the same spec states:
EDIT: This answer seems to share the same thought.
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?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.
BTW the same spec states:
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.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.
EDIT: This answer seems to share the same thought.
- Graf Zahl
- GZDoom Developer
- Posts: 7148
- Joined: Wed Jul 20, 2005 9:48
- Location: Germany
- Contact:
Re: GZDoom on GL 3.x core profile
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._mental_ wrote:From OpenGL 3.1 Specification: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?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 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.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.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.
- Graf Zahl
- GZDoom Developer
- Posts: 7148
- Joined: Wed Jul 20, 2005 9:48
- Location: Germany
- Contact:
Re: GZDoom on GL 3.x core profile
BTW, I'm a bit puzzled that the 9400M does not have GL_ARB_sampler_objects. The hardware can do it for sure.
-
- Developer
- Posts: 259
- Joined: Sun Aug 07, 2011 13:36
Re: GZDoom on GL 3.x core profile
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
-
- Posts: 18
- Joined: Wed Aug 10, 2016 19:28
Re: GZDoom on GL 3.x core profile
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.
- Graf Zahl
- GZDoom Developer
- Posts: 7148
- Joined: Wed Jul 20, 2005 9:48
- Location: Germany
- Contact:
Re: GZDoom on GL 3.x core profile
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.
-
- Posts: 152
- Joined: Tue Oct 25, 2011 13:05
Re: GZDoom on GL 3.x core profile
People with old machine tend to play with vanilla doom ...
Or doom legacy in case they want to use the glider engine
Or doom legacy in case they want to use the glider engine
- Rachael
- Developer
- Posts: 3646
- Joined: Sat May 13, 2006 10:30
Re: GZDoom on GL 3.x core profile
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.ibm5155 wrote: People with old machine tend to play with vanilla doom ...
Or doom legacy in case they want to use the glider engine
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.
-
- Developer
- Posts: 798
- Joined: Sat Jul 23, 2016 7:53
Re: GZDoom on GL 3.x core profile
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.
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.