3 ms·
> but Zink is not required to (and does not always) emit 1 Vulkan API call for each OpenGL API call The OpenGL driver also doesn't have to emit 1 logical hardw
by seba_dos1 5y ago
> but Zink is not required to (and does not always) emit 1 Vulkan API call for each OpenGL API call
The OpenGL driver also doesn't have to emit 1 logical hardware operation for each OpenGL API call.
- zamadatix 5y agoThere is no hard technical requirement for hardware drivers but it's riskier to expose performance impacting emulation at that level vs the layered driver level (where Zink is). For instance imagine a case where the hardware supported 4 MRTs but the hardware driver emulation layer exposed 8 MRTs for OpenGL compatibility yet Zink needed to use 16 MRTs. Now you've got all sorts of translation happening where Zink is likely calling the lower emulation layer multiple times rather than just calling the hardware directly. Such emulation layers are expected in a layered driver, that's part of their actual intent, whereas base hardware drivers are meant to expose what the hardware is able to do natively and let you work around it otherwise.
- seba_dos1 5y agoYou can already enjoy stuff like OpenGL 2.1 support on purely GLES 2.0 hardware this way - for instance on older Raspberry Pis. There's not much Zink will bring on the table that Gallium doesn't already when it comes to emulation of missing hardware features (at least not if you want them to actually perform in any reasonable way).