Re: radeon-pre-2

Jon Smirl
2004-09-11T16:48:41Z

On Sat, 11 Sep 2004 15:33:43 +0100, Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:
> For example I can see the radeon DRM driver providing
>
> ->queue_commands()
> ->quiesce()
>
> to the 2D driver. And the 2D driver providing
>
> ->define_fb_layout() for DRI to provide to X
>
> That way it is only these calls between drivers you and the fb authors
> have to argue about the functionality and interfaces between. (eg who
> saves registers, which registers)
>

Take a system with two simultaneous users on two heads of a dual head
card. The kernel will be process swapping between these two users as
needed.

User 1 is playing a 3D game.
User 2 is editing with emacs on fbdev

User 1's game queues up 20ms of 3D drawing commands.
Process swap to user 2. ->quiesce() is going to take 20ms.
User 2's timeslice expires and we go back to user 1.
User 1 queues up another 20ms.

User 2's editor is never going to function.

The correct solution is to leave the chip in 3D mode and merge DMA
command streams. User 2 wouldn't have problems if it's console driver
queued 3D commands instead of stopping the 3D coprocessor, changing
the chip mode, executing a host based 2D command, and then restarting
the coprocessor.

--
Jon Smirl
jonsmirl@gmail.com