Found missing link

The missing link to this whole Gallium picture is found:  the source code to the kernel DRM device driver (not libdrm which is just its user space counterpart, not the stuff in mesa winsys drm directory, which are just redirections), the module that services ioctl’s, the module that calls moduleInit()… And nowhere was this piece talked about in mesa3d portal nor DRI wiki!

Hats off to the folks at Genode Labs, whose comments on Gallium3D was concise, precise and best articulated among all Gallium docs I’ve come across in the past 6 months.  Their comment on porting Gallium was right on:

“…Gallium3D interplays with the graphics execution manager (GEM) in the kernel. So porting Gallium3D to a new OS involves porting GEM as well. For the initial step, Intel GMA was selected as the first series of GPUs to support. Thanks to Genode’s flexible C runtime and the dynamic linker, the most challenging part of porting the Gallium3D libraries was understanding the relationship between the various parts of Mesa, but there were no technical difficulties. The GEM part was significantly more labor intensive because GEM normally relies on Linux kernel interfaces….”

http://www.osnews.com/story/23671/Genode_10_08_Comes_with_Gallium3D_MadWifi_Qt4_6_3

The most challenging part of working with Gallium3D, as the above message commented,  has been indeed finding out what pieces are involved in the overall picture, and not any technical difficulty.  Where is that document that should have been there to explain control flow between Gallium, libdrm and kernel DRM driver?

This entry was posted in Uncategorized. Bookmark the permalink.

Leave a comment