Nouveau Picks Up NV_shader_atomic_float For Fermi/Kepler GPUs
Longtime Nouveau contributor Ilia Mirkin has done some holiday hacking on this open-source NVIDIA driver and enabled support for another OpenGL extension in NVC0 Gallium3D.
This time around it's just owners of the aging Fermi and Kepler GPUs benefiting from this work: for these pre-Maxwell GPUs, Mirkin has enabled support for the NV_shader_atomic_float extension. This 2012 era OpenGL extension allows for shaders to perform atomic read-modify-write operations to buffer or texture memory with floating-point components.
Further patches still need to land before this extension will work with the Nouveau NVC0 Gallium3D driver for the newer generations of graphics processors.
The work is now in Mesa Git.
It's been a fairly slow year for the NVC0 Gallium3D driver in Mesa with seeing just over 60 commits all year. In some respects that is to be expected though as the NVC0 Gallium3D driver did effectively reach OpenGL 4.5 support although it formally didn't go through the conformance/CTS process yet for certification by Khronos. So there isn't too much left to do on NVC0, at least with the limited resources of this community-driven open-source NVIDIA driver initiative.
There hasn't been OpenGL 4.6 support yet for Nouveau as they need SPIR-V ingestion support. Red Hat developers have been working on SPIR-V support for Nouveau with a compute focus in mind, but that has yet to hit Mesa master. Notably, 2018 wasn't the year of a Nouveau Vulkan driver.
For those interested in this driver effort, the best Nouveau support remains with the GTX 600/700 Kepler series since at least there the performance can become quite decent when manually re-clocked. Unfortunately the GTX 900 series and newer still can't operate at their optimal frequencies and thus performance is a severe bottleneck.
This time around it's just owners of the aging Fermi and Kepler GPUs benefiting from this work: for these pre-Maxwell GPUs, Mirkin has enabled support for the NV_shader_atomic_float extension. This 2012 era OpenGL extension allows for shaders to perform atomic read-modify-write operations to buffer or texture memory with floating-point components.
Further patches still need to land before this extension will work with the Nouveau NVC0 Gallium3D driver for the newer generations of graphics processors.
The work is now in Mesa Git.
It's been a fairly slow year for the NVC0 Gallium3D driver in Mesa with seeing just over 60 commits all year. In some respects that is to be expected though as the NVC0 Gallium3D driver did effectively reach OpenGL 4.5 support although it formally didn't go through the conformance/CTS process yet for certification by Khronos. So there isn't too much left to do on NVC0, at least with the limited resources of this community-driven open-source NVIDIA driver initiative.
There hasn't been OpenGL 4.6 support yet for Nouveau as they need SPIR-V ingestion support. Red Hat developers have been working on SPIR-V support for Nouveau with a compute focus in mind, but that has yet to hit Mesa master. Notably, 2018 wasn't the year of a Nouveau Vulkan driver.
For those interested in this driver effort, the best Nouveau support remains with the GTX 600/700 Kepler series since at least there the performance can become quite decent when manually re-clocked. Unfortunately the GTX 900 series and newer still can't operate at their optimal frequencies and thus performance is a severe bottleneck.
1 Comment