1

I'm looking through the drm radeon driver in my linux kernel source. There I have some understanding difficulties, on what settings/modes my Display is actually working. (from the kernel messages i can just tell what microcode is used, what connector and encoder my Screen is working on. But this doesn't give me a hint where the graphical content is coming from and where it's stored. Or I don't understand it the right way.)

First of all - is the ring buffer an underlying necessity overall to get my gfx-card to work or is the ring buffer propose to establish some 3D graphics features?

Is the ring buffer an only user modesetting utility or does the ring buffer works (in background or targeted) also in kernel modesetting? The ring buffer gets initialized during boot (i can see ring address in kernel messages) - but what application actually uses it, i can't tell. Is it the Display Manager e.g X11 (if yes - what does the Display Manager uses the ring buffer for - normal displaying or for some fancy 3D functions somewhere in the Xlib)?

And overall, does the Display Manager(say X11) works in user modesetting and the console frame buffer works in kms? Is there a graphical performance limitation to use the radeon driver in kms?

Thanks!

k t
  • 343
  • 5
  • 15

1 Answers1

0

Regarding rings, those are basically an optimization to handle state changes in your graphics card. Basically everything a graphics card does is controlled by a series registers (like variables in a program). These registers can be written to by the kernel directly, however this is very slow. So the graphics card exposes rings. Different rings have different purposes, so one may be for graphics, and another for video decoding. The kernel manages the rings itself, and application provide a series of commands to put in a ring. Graphics cards also let you put commands in another buffer, then point the ring there to execute those commands before going back to the ring.

Regarding KMS, if you are using KMS then the kernel directly manages the graphics card itself. Neither X nor any other userspace application applies the modes you see. Instead, X sends a request to the kernel driver to adjust the modes, and the kernel implements the change. There should is no overhead to having the driver in the kernel assuming your system is setup securely.

MJD
  • 1,183
  • 7
  • 13