3 ms·
Hm. If Gallium3D is in some way higher level than Vulkan, but it also allows higher performance high-level API implementations (as I believe it does), maybe tha
by ahartmetz 4y ago
Hm. If Gallium3D is in some way higher level than Vulkan, but it also allows higher performance high-level API implementations (as I believe it does), maybe that is because it's internal to Mesa so drivers can punch holes in its abstractions as needed?
- gpderetta 4y agoIt is probably because Gallium3D was designed specifically to implement higher level APIs like OpenGL and D3D, so they made sure that there was an efficient mapping. Vulkan is growing extensions specifically for that though, so in the medium term it might catch up.
- johntb86 4y agohttps://lwn.net/Articles/768410/ https://lwn.net/Articles/768410/ has a good explanation of the differences: > The third option, surprisingly, is Gallium3D (or simply "Gallium"), he said. He has been learning that it is basically a hybrid approach between state streaming and pre-baked pipelines. It uses "constant state objects" (CSOs), which are immutable objects that capture a part of the GPU state and can be cached across multiple draw operations. CSOs are essentially a Vulkan pipeline that has been chopped up into pieces that can be mixed and matched as needed. Things like the blending state, rasterization mode, viewport, and shader would each have their own CSO. The driver can associate the actual GPU commands needed to achieve that state with the CSO.