On Wed, Mar 12, 2025 at 11:10:49AM +0000, Stephan Verbücheln wrote: > Arguments for this: > 1. The shaders are loaded into the GPU, very much like firmware.
Shaders are not what makes the device function. You need the firmware first. > 2. They are not linked into any libraries or applications. Actually they are. They provide a specific interface that the library expects, so they are linked to this library. (Okay, so do the firmwares for the proprietary nvidia driver, which are distinct to the "free" counterparts) > 5. They are required by the operating system or applications to make > use of hardware capabilities. Nope, they are not required to run the hardware. They implement a specific capability on top of the existing hardware. And also you can run multiple instances of it (pseudo) concurrently on the same hardware. You can not replace the firmware without resetting the hardware completely to a known state. > Arguments against: 4. Shaders are "general purpose" execution on the GPU hardware. We also had a (in Debian only partially supported) case in the past: the PS3 contained two distinct and incompatible PowerPC core setups. Just like this case of the GPU, you need special support to start code on those separate CPU cores, called SPE. With the arguments brought up here, code run on those SPE could also be firmware, which makes no sense. But if you think further: what about FPGA programs. Would that be firmware? FPGA are "general purpose" devices and those programs can do everything in reason. What about an alternative "firmware" for a GPU that just outputs the Mandelbrot set, but does not longer make it a usable GPU? So firmware is a piece of code that - runs exclusively on a piece of hardware, - provides an agreed on interface to a kernel oder user mode driver. Bastian -- There are certain things men must do to remain men. -- Kirk, "The Ultimate Computer", stardate 4929.4