Jump to content

  • Log In with Google      Sign In   
  • Create Account

Picking a target GL/GLSL version


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
5 replies to this topic

#1 irreversible   Crossbones+   -  Reputation: 1348

Like
0Likes
Like

Posted 04 December 2012 - 02:18 AM

My requirements currently are:

- OpenGL 2.0/GLSL 1.10 for core components, which also have to be blackboxed and portable, and have mostly to do with GUI drawing
- OpenGL 3.0 as the minimum version for some application components, but already have much of CPU emulation code written

Although both versions are quite old and wide-spread by now, there might be some people in my target audience who don't have 3.0 enabled cards. Since I do have CPU fallbacks for critical 3.0-dependent components (eg particle transform, bone animation, etc), the question boils down to deciding the minimum GLSL version - whether it can be 3.0 across the board or if it's worth keeping any blackboxed code using an older GLSL version.

Basically, I'm trying to not assume there's a speed benefit for doing something in a newer version that can just as easily be done in an older version of GLSL, which kinds of begs the question - is there a compelling reason to force already encapsulated core components up a couple of version if the feature set doesn't really require it?

In short, the question is - is there a penalty to using GLSL 1.10 when a newer version is available (things like deprecated and sloppier compiler, direct speed disadvantages due to deprecation on driver level, possible removal of older shader language versions by the Khronos group in the future, etc)?

Sponsor:

#2 mhagain   Crossbones+   -  Reputation: 7979

Like
1Likes
Like

Posted 04 December 2012 - 04:22 AM

If the shader code is the same then in theory things should perform the same too. Newer GLSL versions may be able to pull some optimizations in the shader compiler by e.g. compiling to new and (hopefully) more efficient instructions that weren't available in the old version, but that's a fairly low-level detail that you probably shouldn't worry about until your final optimization passes.

I find it slightly amusing that on the one hand you're trying not to assume something but yet on the other you're making a huge assumption, specifically: "there might be some people in my target audience who don't have 3.0 enabled cards". That's not intended as a personal criticism, but is intended to call it out as an assumption; I'd strongly advise that you research and profile your target audience before committing to anything based on that assumption.

It appears that the gentleman thought C++ was extremely difficult and he was overjoyed that the machine was absorbing it; he understood that good C++ is difficult but the best C++ is well-nigh unintelligible.


#3 SuperVGA   Members   -  Reputation: 1118

Like
0Likes
Like

Posted 04 December 2012 - 05:03 AM

I find it slightly amusing that on the one hand you're trying not to assume something but yet on the other you're making a huge assumption, specifically: "there might be some people in my target audience who don't have 3.0 enabled cards". That's not intended as a personal criticism, but is intended to call it out as an assumption; I'd strongly advise that you research and profile your target audience before committing to anything based on that assumption.

Yet, "there might be some people in my target audience who don't have 3.0 enabled cards" is not really an assumption, is it?
I'd say it's actually very open-minded to consider that something might be true.

... But aside from that, I use as old a version as possible, test on more machines, different cards,
and then static link to GL and the extensions I use, to avoid referring to deprecated, later maybe even gone OpenGL functionality in an external binary.

Edited by SuperVGA, 04 December 2012 - 05:15 AM.


#4 mhagain   Crossbones+   -  Reputation: 7979

Like
0Likes
Like

Posted 04 December 2012 - 05:41 AM

I'd say it's actually very open-minded to consider that something might be true.


It's open-minded to consider it for sure, but that should be followed by research and a decision made based on actual facts, not suppositions.

It appears that the gentleman thought C++ was extremely difficult and he was overjoyed that the machine was absorbing it; he understood that good C++ is difficult but the best C++ is well-nigh unintelligible.


#5 SuperVGA   Members   -  Reputation: 1118

Like
0Likes
Like

Posted 04 December 2012 - 05:58 AM


I'd say it's actually very open-minded to consider that something might be true.


It's open-minded to consider it for sure, but that should be followed by research and a decision made based on actual facts, not suppositions.

Ah, ok. I see what you meant now; it's because even the thought was taken out of the blue, and a choice should be founded on something regardless of whether it's open-minded or not.
For instance, he should have found that ok, only 2‰ of my audience lacks 3.0 enabled cards, and that amount is declining, -then made a decision.
Alright, back to the topic. Pardon my stray into assumption/nonassumptions.

Edited by SuperVGA, 04 December 2012 - 05:58 AM.


#6 irreversible   Crossbones+   -  Reputation: 1348

Like
0Likes
Like

Posted 04 December 2012 - 08:24 AM

True, I'm basing my assumptions on a few things that I don't even know how to profile. In my case I can't really look at something like the Steam hardware statistics report, because I want to target older systems that are there (which in itself would be a kind of an answer to my question): in particular, desktop systems. So I'm basing my assumptions on a very limited dataset of people that I know. While a valid criticism, this is somewhat moot, though - in particular, because my question was actually worded the other way around: instead of "will upgrading my GL requirements limit my audience" I was asking "whether not upgrading could bite me in the butt at a later date" :)

A lot of stuff in GLSL 1.1 and 1.2 were deprecated with the introduction on 1.3, most (or all?) of which is now available in compatibility mode. I'm trying to leverage between two paradigms here: a valid justification of adhering to a new standard and my admittedly poor assumption that doing so will affect my target audience.




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS