4 ms·
This is a severe misunderstanding of what the firmware is doing, or capable of doing. The kernel driver for NVIDIA handles memory transfers and DMA, command buf
by Jasper_ 4y ago
This is a severe misunderstanding of what the firmware is doing, or capable of doing. The kernel driver for NVIDIA handles memory transfers and DMA, command buffer submission & scheduling, watching and triggering fences, and register setting for some other components like the display controller. These responsibilities are the same for any GPU, firmware-enabled or not.
The userspace driver is where most of the secret magic is on any GPU, it's in charge of building the command buffers that are submitted. All the work to translate GL/Vulkan/Direct3D takes place in the userspace driver, and it's the majority of the codebase by far. The kernel driver being open-source means most of the hardware-communication stuff is upstream.
A combination of firmware and hardware interpret the command buffers and run the rest of the GPU pipeline. Firmware is used for power/clock management, managing the on-board GPU cache, queue balancing, running the front-end, and various other bits & bobs. None of this would replace any Linux or Windows driver code, it replaces dedicated hardware.