[PATCH] RFCv2: video support for dri2 (Rob Clark)
alexdeucher at gmail.com
Fri Sep 2 06:55:17 PDT 2011
2011/9/2 Christian König <deathsimple at vodafone.de>:
> Hi Rob,
>> + flipping between multiple back buffers, perhaps not in order (to
>> handle video formats with B-frames)
> Oh, yes please. The closed source drivers seems to do this also all the
> time, and I never really understood why DRI is limiting the buffers to
> the OGL attachment points.
>> Current solutions use the GPU to do a scaled/colorconvert into a DRI2
>> buffer from the client context. The goal of this protocol change is
>> to push the decision to use overlay or GPU blit to the xorg driver.
> You left one corner case out, HDMI allows for the framebuffer to be in
> YUV 4:4:4 format. So it is possible to send YUV data to the display
> (usually a TV) without color conversion at all, but I think with the
> current state of X we are years away from that.
>> In many cases, an overlay will avoid several passes through memory
>> (blit/scale/colorconvert to DRI back-buffer on client side, blit to
>> front and fake-front, and then whatever compositing is done by the
>> window manager). On the other hand, overlays can often be handled
>> directly by the scanout engine in the display hardware, with the GPU
>> switched off.
> Actually AMD has thrown out the hardware support for overlay with the
> R7xx (or was it evergreen?) series, because they got support for turning
> shader pipes off separately and figured out that it use less power to
> turn off all shaders except one and then use this one for color
> conversion and scaling, compared to having a distinct hardware block
> doing the job. But there are tendencies to get a distinct color
> conversion block back again.
The overlays are still there, but the old video overlay (with scaling
and format conversion) was removed for r5xx. The current overlays are
just overlay planes and mostly there for things like GL overlays. You
could use them for video, but you'd need to do the scaling and format
conversion in the 3D engine.
More information about the xorg-devel