GZDoom on GL 3.x core profile

Advanced OpenGL source port fork from ZDoom, picking up where ZDoomGL left off.
[Home] [Download] [Git builds (Win)] [Git builds (Mac)] [Wiki] [Repo] [Bugs&Suggestions]

Moderator: Graf Zahl

_mental_
Developer
Developer
Posts: 259
Joined: Sun Aug 07, 2011 13:36

Re: GZDoom on GL 3.x core profile

Post 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.
User avatar
Graf Zahl
GZDoom Developer
GZDoom Developer
Posts: 7148
Joined: Wed Jul 20, 2005 9:48
Location: Germany
Contact:

Re: GZDoom on GL 3.x core profile

Post 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.
_mental_
Developer
Developer
Posts: 259
Joined: Sun Aug 07, 2011 13:36

Re: GZDoom on GL 3.x core profile

Post 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.
User avatar
Graf Zahl
GZDoom Developer
GZDoom Developer
Posts: 7148
Joined: Wed Jul 20, 2005 9:48
Location: Germany
Contact:

Re: GZDoom on GL 3.x core profile

Post by Graf Zahl »

Can you post your startup log?
_mental_
Developer
Developer
Posts: 259
Joined: Sun Aug 07, 2011 13:36

Re: GZDoom on GL 3.x core profile

Post by _mental_ »

A few startup logs for comparison:
Spoiler: nVidia 9400M on 10.7
Spoiler: nVidia 750M on 10.11
Spoiler: Intel Iris Pro on 10.11
There is no GL_ARB_uniform_buffer_object extension in the list but it's definitely supported as a part of Core Profile.
User avatar
Graf Zahl
GZDoom Developer
GZDoom Developer
Posts: 7148
Joined: Wed Jul 20, 2005 9:48
Location: Germany
Contact:

Re: GZDoom on GL 3.x core profile

Post 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.
_mental_
Developer
Developer
Posts: 259
Joined: Sun Aug 07, 2011 13:36

Re: GZDoom on GL 3.x core profile

Post 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.
User avatar
Graf Zahl
GZDoom Developer
GZDoom Developer
Posts: 7148
Joined: Wed Jul 20, 2005 9:48
Location: Germany
Contact:

Re: GZDoom on GL 3.x core profile

Post 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.
User avatar
Graf Zahl
GZDoom Developer
GZDoom Developer
Posts: 7148
Joined: Wed Jul 20, 2005 9:48
Location: Germany
Contact:

Re: GZDoom on GL 3.x core profile

Post 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.
_mental_
Developer
Developer
Posts: 259
Joined: Sun Aug 07, 2011 13:36

Re: GZDoom on GL 3.x core profile

Post 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 :)
drako
Posts: 18
Joined: Wed Aug 10, 2016 19:28

Re: GZDoom on GL 3.x core profile

Post 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.
User avatar
Graf Zahl
GZDoom Developer
GZDoom Developer
Posts: 7148
Joined: Wed Jul 20, 2005 9:48
Location: Germany
Contact:

Re: GZDoom on GL 3.x core profile

Post 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.
ibm5155
Posts: 152
Joined: Tue Oct 25, 2011 13:05

Re: GZDoom on GL 3.x core profile

Post by ibm5155 »

:roll: People with old machine tend to play with vanilla doom ...
Or doom legacy in case they want to use the glider engine :chaingun:
User avatar
Rachael
Developer
Developer
Posts: 3646
Joined: Sat May 13, 2006 10:30

Re: GZDoom on GL 3.x core profile

Post by Rachael »

ibm5155 wrote::roll: People with old machine tend to play with vanilla doom ...
Or doom legacy in case they want to use the glider engine :chaingun:
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.
dpJudas
Developer
Developer
Posts: 798
Joined: Sat Jul 23, 2016 7:53

Re: GZDoom on GL 3.x core profile

Post 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.
Locked

Return to “GZDoom”