indirect rendering or direct rendering as little to do with the DRM infrastructure. Indirect rendering is when rendering goes through the X server, it's was glx extension offer. Direct rendering allow you to directly speak with the GL driver and thus stuff doesn't go through the X server.
In this picture the DRM infrastructure in kernel as no role to play, what DRM provide is use by lower level ie the GL driver or the X driver. Last you don't want X to handle memory what about GPGPU or others use of GPU ? GPU offer resource, you need a central place to allow proper sharing of resources among consumer and given the capabilities of GPU (capable of overwritting otherwise protected system memory like kernel structure) you likely don't want to have too much in userspace.
Posted Sep 3, 2010 13:44 UTC (Fri) by Spudd86 (subscriber, #51683)
[Link]
Not to mention that the DRI2 stuff means you can do direct rendering without an X server at all, you can even do it with just one process running on a framebuffer (this is essentially how Wayland does it's rendering).
LinuxCon Brazil: Q&A with Linus and Andrew
Posted Sep 3, 2010 14:04 UTC (Fri) by michaeljt (subscriber, #39183)
[Link]
> Not to mention that the DRI2 stuff means you can do direct rendering without an X server at all, you can even do it with just one process running on a framebuffer (this is essentially how Wayland does it's rendering).
In my defense, I did say "i.e." the X Server. I could quite imagine the same thing being done at a lower level, say in Wayland. Of course, if you just have one application doing graphics you don't need to worry about multiplexing the graphics resources at all and can just talk to the kernel bits directly. I also suggested that direct rendering might "work mostly like" indirect rendering, not exactly like it. I don't really think that OpenGL is necessarily the best API to base the communication on - something closer to Gallium 3D might be better. As for GPGPU stuff, I must confess that I'm not very knowledgable about it - I thought that it mainly involved running shader programmes on data structures that were set up to look like vertices and things and interpreting the output.
What does seem trickier to me is that there are no good APIs that come to my mind that could be used to let one user space process manage memory for others to let them selectively map sections of the video RAM into their address space. And of course there is the small matter that after people have invested so much into DRI2 they are probably not raring to try alternative designs!