Originariamente inviato da alexmaz
allora mettiamola così:
il sistema operativo ovviamente ha accesso diretto all'hardware, no? DirectX ha accesso diretto all'hardware perchè un suo componente, l'HAL DirectX, fa parte integrante del sistema operativo.
DRI fa ovviamente accesso diretto all'hardware ed è giusto che lo faccia...
The 3D capabilities of a graphics card are accessed through the 3D DRI driver. This driver essentially converts OpenGL command sequences into hardware commands. It then uses the kernel module to transmit the commands to the hardware. The 3D driver and kernel module basically implement the entire OpenGL rendering pipeline. The 3D driver implements as much of it as possible in user space while the kernel module does whatever is needed in kernel space.
3D DRI drivers usually reside in the /usr/X11R6/lib/modules/dri/ directory with names of the form device_dri.so.
These drivers are loaded by the libGL.so library which implements the OpenGL API.
Most DRI 3D drivers today are based on Mesa. However, there is no DRI requirement to use Mesa. Driver developers may implement their 3D DRI drivers using any OpenGL-compatible software framework.
Non capisco perchè secondo te DirectX non dovrebbe farlo... non è un applicativo come Word che accede all'hardware, ma una struttura creata apposta per fare accesso diretto all'hardware e permettere maggiori performance per le applicazioni che la usano, esattamente come DRI.
Se vuoi si potrebbe dire a grandi linee che i moduli kernel di DRI fanno quello che fa l'HAL di DirectX.