Educate me: fixed function vs programmable pipeple in OpenGL
Re: Educate me: fixed function vs programmable pipeple in OpenGL
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.
- psi29a
- Posts: 5362
- Joined: 29 Sep 2011, 10:13
- Location: Belgium
- Gitlab profile: https://gitlab.com/psi29a/
- Contact:
Re: Educate me: fixed function vs programmable pipeple in OpenGL
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.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.
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
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.
- AnyOldName3
- Posts: 2678
- Joined: 26 Nov 2015, 03:25
Re: Educate me: fixed function vs programmable pipeple in OpenGL
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?
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
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.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.
- AnyOldName3
- Posts: 2678
- Joined: 26 Nov 2015, 03:25
Re: Educate me: fixed function vs programmable pipeple in OpenGL
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.