Roadmap to Vulkan for KDE window manager KWin
invent.kde.org
invent.kde.org
And then there's this part:
> whenever we use modern features in OpenGL, we have to put in conditionals that preserve compatibility all the way down to OpenGL ES 2. In theory that complicates the code, and in practice we just end up not using these features at all. With a Vulkan renderer we can have hard requirements for such modern features, which can make the renderer more efficient
How does that square with this part?
> We have OpenGL as a fallback, so compatibility can effectively be ignored
If OpenGL is maintained as a fallback, then how does adding Vulkan and keeping OpenGL simplify the code?
Anyway, I hope it all goes well.
I think the idea here is that Vulkan will be the "modern" renderer and OpenGL will become the "legacy" renderer. Then, there's no need to worry about conditionally "up-featuring" the OpenGL renderer anymore. They're two separate backends, which is arguably cleaner than a million conditionals in the OpenGL code.
I think the biggest argument, reading as a complete outsider, is really this one:
* driver behavior is much more predictable and well specified.
OpenGL drivers, overall, are _screwed up_ and ridiculously unpredictable. And it's only getting worse now that Vulkan is around, since there's even less incentive than ever for GPU vendors to make functioning OpenGL drivers. Supporting Vulkan now would both save out on driver compatibility issues and get out ahead of the OpenGL driver atrophy.
Can you expand on what it means for the OpenGL drivers to be unpredictable? Are you referring to things like this?
> "sRGB textures, which do hardware accelerated and automatic conversions between sRGB and linear encoding. With OpenGL, the behavior with alpha is implementation defined"
To be honest I'm not sure what that means. Does it mean that on different hardware, colors created from the blending of two or more textures will be slightly different because they're using different blending algorithms? Is this a trivial matter of outputs looking slightly different on different hardware that blends colors in slightly different ways, or are there more serious consequences to this sort of thing?
> If OpenGL is maintained as a fallback, then how does adding Vulkan and keeping OpenGL simplify the code?
Well it doesn't right now, but can in the future because it opens the door to dropping OpenGL entirely.
That's my concern, because it contradicts "We have OpenGL as a fallback, so compatibility can effectively be ignored"
This lets it schedule the composition step closer to when it's shown on the display. It means that the contents of windows are more up-to-date, so less lag or latency.
> Better for sRGB and YUV textures; what does this mean for users?
Support for direct rendering of video, alternate color space support, like HDR.
What mostly got me even wanting to use wayland over x11 was better emulation fps for playing the new Zelda, but most everything else is still pretty darn rough to stick with x11 for now.