Re:Krita, OpenGL and Qt
by badsectoracula on Saturday July 18, 2020 @11:18AM
(#23881953)
OpenGL and OpenGL ES are two completely different APIs with their own specs and implementations. Some versions do have an overlap in functionality in that you can write code that can work with both with minimal (mainly shader) differences, but that's about it.
But IMO OpenGL ES 2.0 was pointless, the devices that were powerful enough to support it were also powerful enough to support the full OpenGL so Khronos should have pushed that instead of fragmenting the driver and API ecosystem.
No really. 4.3 made ES a true subset. As in you cannot write a spec conformant ES3.0+ software that would not run in GL4.3+ implementation.
This was very intentional by Khronos so they could bring the two closer together. In ES2.0 days what you said would have been true, as ES2.0 had some annoying differences especially on shader side, but it’s been 8 years since 4.3 came out.
> but it’s been 8 years since 4.3 came out.
but macOS will never support anything past 4.1 so for cross-platform dev you cannot rely on that
And yet OpenGL 3.3 is still what most would advise on GL forums regarding best market distribution on consumer hardware.
Which is why it is the chosen version for GL on Vulkan and GL on DirectX ongoing projects.
Yeah, that is why shaders need conditional compilation.
Es3 shaders (with the modern in/out qualifiers) compile as is on Gl4.3+. It is a true subset. As an example 4.3 brought precision qualifiers to desktop GL. And now that fp16 is in desktop Hw they are actually useful there.
You might be mistaking the OpenGL es 1.0 for anything modern.
ES2.0 and above is a true subset of the desktop OpenGL, some limits are less and support for things like Geometry shaders are optional, but that’s pretty much it.