BBB Direct Rendering Infrastructure (/dev/dri/*)

68 views
Skip to first unread message

John B

unread,
Jun 14, 2018, 3:58:32 PM6/14/18
to BeagleBoard
I have an application that previously used /dev/dri/card0 to render using the DRM_CAP_DUMB_BUFFER capability. (Jessie/Debian Kernel 3.8.x).  Having recently upgraded to Stretch/Debian Kernel 4.14.x, it seems this program has stopped working indicating that the DRM_CAP_DUMB_BUFFER capability is not present.

After some looking around in /dev, I noticed that there are now two rendering devices (cards): /dev/dri/card0 (minor dev 0) and /dev/dri/card1 (minor dev 1).  (Previously, there was /dev/dri/card0 (minor dev 0) and /dev/dri/controlD64 (minor dev 64)).  I understand the concept of the controlDxx render node devices may have gone by the wayside from reading various forums.

So,I tried using /dev/dri/card1 and lo and behold, that worked fine, that is, it supports the DUMB_BUFFER capability.

I guess my question is, why?  I'm sure the DRI has changed somewhat between 3.8.x and 4.14.x, but I searched around and could not find any documentation on what the different devices are in /dev/dri.  The kernel documentation tree (admin-guide) has devices.txt which indicates simply:

 226 char   Direct Rendering Infrastructure (DRI)
          0 = /dev/dri/card0        First graphics card
          1 = /dev/dri/card1        Second graphics card
            ...

Now, I don't believe the BBB has 2 graphics cards - unless they now broke the graphix processor and frame buffer into their own devices?  So, this begs the question: what is the difference between card0 and card1, and is there any documentation on this anywhere?

My immediate problem is solved by using /dev/dri/card1, but it would be nice to learn why it was changed and why.

Thank you so much if anyone has any input on this.

John

Reply all
Reply to author
Forward
0 new messages