Originally posted by mityukov
View Post
Sounds like you are "getting it". There are three pieces :
- DDX aka X driver - initialization, display modesetting, 2d & video acceleration. Acceleration usually works without drm driver but works better with drm driver. Contains some code to initialize the rest of the 3D stack and let it know where windows are on screen etc...
- drm aka kernel driver - mostly manages command submission to the chip and interrupt/fence handling back from the chip; allows multiple drivers to share the acceleration bits (eg 2d from ddx, 3d from mesa)
- mesa aka 3d aka opengl driver - user mode portion of the 3d stack; takes opengl commands in at the top, fires chip-specific commands out the bottom through drm
DRI means many things (it's a module, it's an infrastructure, it's a driver, it's a lifestyle) but is essentially the protocols which tie the above three pieces together. The important bit is that it lets the application call mesa directly to draw 3d stuff really fast while staying in sync with what the X driver is doing with windows etc...
re: articles, you need to understand that there are two kinds of Linux users :
- the ones who understand how x, drm and mesa drivers all fit together and think it is so obvious they just talk about the X driver and assume you know that drm and mesa are needed
- the ones who have no idea what x, drm and mesa drivers do and so only talk about the x driver
There is also a bit of a "two camps" issue - officially the drm and mesa drivers are not part of "X", so some people still focus mostly on making sure X and 2D/video work properly (even if drm and mesa are not there) while another group feels that 3D is an essential part of the modern user experience and treat drm and mesa as a "must have".
Comment