Page 2 of 2

Re: Educate me: fixed function vs programmable pipeple in OpenGL

Posted: 02 May 2019, 10:45
by wareya
Almost everything people are still running supports GL3.3 these days. For the few people who are running old hardware that doesn't support 3.3, you can just fall back to 2.1 with a reduced featureset. Any 2.1-only devices are going to be weak and potentially buggy anyways.

Re: Educate me: fixed function vs programmable pipeple in OpenGL

Posted: 02 May 2019, 12:09
by psi29a
AnyOldName3 wrote: 01 May 2019, 23:33 If we go shader-only, that'll make some things much easier going forward, but we'll stop supporting a chunk of hardware that people still use. It'll also make some things harder as OSG won't magically do them for us any more.
It was the intention, last time I talked with Scrawl and Zini, that we wanted to have OpenMW 1.0 be able to run on old hardware, such as those running Morrowind back in the day... that has been fudged a bit lately. The idea being that post 1.0, we could really remove that limitation and go full tilt modern graphics.

OpenMW, for example, runs (just barely) on RPi, however I think it is really absurd to make that a target platform. I'm not opposed to dropping the OpenGL 2.1 requirement, it is not stated in our FAQ or anywhere else that it was a hard requirement... just a nice to have (could run on almost everything).

Re: Educate me: fixed function vs programmable pipeple in OpenGL

Posted: 02 May 2019, 12:35
by wareya
You can still target 2.1 without targeting obscure low-power devices like the rpi. Just say that it might not work on extremely weak hardware.

Re: Educate me: fixed function vs programmable pipeple in OpenGL

Posted: 02 May 2019, 15:07
by AnyOldName3
We don't need to target OpenGL 3 as a minimum to drop FFP support - shaders were a core feature as of 2.0. The big difference to shaders with 3.0 was that they no longer had access to a bunch of uniforms configured automatically by the fixed-function state.

By the way, is the only reason that we use a GLES wrapper rather than OSG built against GLES for the Android version that we're using lots of fixed-function stuff even with force shaders active and need something to translate it to shaders, or were there other limitations?

Re: Educate me: fixed function vs programmable pipeple in OpenGL

Posted: 02 May 2019, 18:57
by Chris
AnyOldName3 wrote: 02 May 2019, 15:07 We don't need to target OpenGL 3 as a minimum to drop FFP support - shaders were a core feature as of 2.0. The big difference to shaders with 3.0 was that they no longer had access to a bunch of uniforms configured automatically by the fixed-function state.
Shaders in GL2 don't have all the same functionality as GL3. It's the difference between Shader Model 3 and Shader Model 4 in Direct3D. GL3 represents a fundamental change in how OpenGL is used, that it's not really comparable to being just GL2+no FFP state.

Re: Educate me: fixed function vs programmable pipeple in OpenGL

Posted: 02 May 2019, 21:31
by AnyOldName3
As long as you don't geometry/tessellation/compute shaders, basically everything can be done with old GLSL. It might take a lot more instructions in certain cases, require more things to be set up CPU-side, and more things can result in undefined behaviour, but it's not like old versions were missing anything important that you couldn't write yourself.