Originally posted by erendorn
View Post
1.) can vulkan be low level enough to write OpenGL on top of it? Not sure yet but should be doable(see it as TGSI 2.0 for practical purposes)
2.) will it improve performance across vendors or OSes? No, realistically will probably be slower since is very likely will need very ugly(as terribly slow) hacks to comply to the specs
3.) Ok, wouldn't make Mesa faster at least? No, quite a lot mesa code is actually needed to implement vulkan(can be done from scratch too tho, it will depend i guess) and gallium is close enough to vulkan to make it an act of insanity (mesa internals are lower level than vulkan btw)
4.) Why OpenGL is slow then and all implementations are somehow different? because the algorithm and design are generic enough to be doable in any GPU but are not necessarily hardware side efficient but is broad enough to allow driver vendors to "Interpret" the spec implementation.
5.) if OpenGL on top vulkan existed today, you think Vendors will use it? nope, simply because their implementation will always be more efficient for their hardware(even if it break the spec) and contain lots of "secret sauce"(benchmark optimiser, yeah everybody do this) and "Extra features"(that is a legal enough term for "vendor locking" aka GameWorks) that they will not ever will either release or allow publicly in any generic form(will trigger a legal sue hell thunder dome court crisis worldwide)
6.) Ok, will it be better than current mesa at least? most likely barely or the same, simply because the implementation of mesa is not "slow(er)" is just strictly close to the specs and doesn't contain hardware/application micro optimisations(and the compiler side still need some work, this will apply to vulkan too probably)
7.) Will be of any practical use this implementation? surprisingly yes, Kronos could use it as a generic SDK reference implementation(i doubt they would do so tho, is a massive lot amount of work)
As a side note 2 corrections:
1.) The OpenGL specification is driver agnostic(because is an specification), OpenGL driver is hardware specific and this is true for vulkan too. So in this sense Mesa provide libgl.so(OpenGL specification driver independent code) and the drivers(probably vulkan too) because again mesa is strict on the spec and serve several hardware providers, in the case of BLoBs they can micro optimise as much as they want all around
2.) the expensive part of OpenGL is not actually related to the IR and conversions but is actually the safety and state handling of the static side and the compiler on the GLSL side, which is still slow with vulkan too btw, but vulkan put the compiler on user space so it doesn't matter anymore
Comment