Nouveau With Linux 5.12 Has ~5k L.O.C. Change In Preparing For Ampere
With Linux 5.11 there is open-source Nouveau KMS support for Ampere GPUs -- just kernel mode-setting without any form of 3D acceleration. The actual hardware acceleration requires more work and also NVIDIA to release the necessary signed firmware binaries. With Linux 5.12 there still is no 3D acceleration but a big set of patches was merged as a step in that direction.
Nouveau still needs the signed firmware binaries for the GA100 / RTX30 Ampere acceleration but the patches queued into DRM-Next overnight are preparations for Ampere. In fact, it's nearly five thousand lines of code changed across a number of commits and is just restructuring the open-source driver code to be able to cope with all the new engine types and instances with Ampere.
Red Hat's Ben Skeggs who maintains the Nouveau DRM driver explained, "The problem is that GA100 added enough new engine types and instances that we would have begun to overflow various u64 bitfields used to track the connections between various engines...Rather than addressing subdevs by a unique index, we give each subdev a type and instance id, and replace the use of bitfields tied to subdev index with other methods."
Making the simple but repetitive changes to accommodate the greater number of engine types and instances with Ampere resulted in this big merge to DRM-Next with the ~4,800 lines of code changed to simply allow for the Ampere engine topology to be correctly parsed and avoid potentially overflowing unsigned 64-bit bitfields otherwise.
Hopefully with Linux 5.13 we will see good NVIDIA Ampere open-source Nouveau driver accelerated support but even then it will still be low-performing like Maxwell/Pascal/Volta/Turing unless the PMU situation is straightened out where Nouveau can re-clock the graphics core / vRAM to the rated clock frequencies rather than being bound to the low boot clocks.
Nouveau still needs the signed firmware binaries for the GA100 / RTX30 Ampere acceleration but the patches queued into DRM-Next overnight are preparations for Ampere. In fact, it's nearly five thousand lines of code changed across a number of commits and is just restructuring the open-source driver code to be able to cope with all the new engine types and instances with Ampere.
Red Hat's Ben Skeggs who maintains the Nouveau DRM driver explained, "The problem is that GA100 added enough new engine types and instances that we would have begun to overflow various u64 bitfields used to track the connections between various engines...Rather than addressing subdevs by a unique index, we give each subdev a type and instance id, and replace the use of bitfields tied to subdev index with other methods."
Making the simple but repetitive changes to accommodate the greater number of engine types and instances with Ampere resulted in this big merge to DRM-Next with the ~4,800 lines of code changed to simply allow for the Ampere engine topology to be correctly parsed and avoid potentially overflowing unsigned 64-bit bitfields otherwise.
Hopefully with Linux 5.13 we will see good NVIDIA Ampere open-source Nouveau driver accelerated support but even then it will still be low-performing like Maxwell/Pascal/Volta/Turing unless the PMU situation is straightened out where Nouveau can re-clock the graphics core / vRAM to the rated clock frequencies rather than being bound to the low boot clocks.
2 Comments