From f8ac7e034803a1c873bf156c012fede6d2640097 Mon Sep 17 00:00:00 2001 From: Christian König Date: Sat, 25 Feb 2012 23:34:31 +0100 Subject: st/vdpau: avoid an unnessasary copy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Delay the actual mixer rendering until we really know which surface is the real destination. Signed-off-by: Christian König --- src/gallium/state_trackers/vdpau/vdpau_private.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/gallium/state_trackers/vdpau/vdpau_private.h') diff --git a/src/gallium/state_trackers/vdpau/vdpau_private.h b/src/gallium/state_trackers/vdpau/vdpau_private.h index 1d776ab398e..1f896cd4923 100644 --- a/src/gallium/state_trackers/vdpau/vdpau_private.h +++ b/src/gallium/state_trackers/vdpau/vdpau_private.h @@ -290,6 +290,11 @@ typedef struct struct vl_screen *vscreen; struct pipe_context *context; struct vl_compositor compositor; + + struct { + struct vl_compositor_state *cstate; + VdpOutputSurface surface; + } delayed_rendering; } vlVdpDevice; typedef struct @@ -370,6 +375,10 @@ boolean vlGetFuncFTAB(VdpFuncId function_id, void **func); VdpDeviceCreateX11 vdp_imp_device_create_x11; VdpPresentationQueueTargetCreateX11 vlVdpPresentationQueueTargetCreateX11; +/* Delayed rendering funtionality */ +void vlVdpResolveDelayedRendering(vlVdpDevice *dev, struct pipe_surface *surface, struct u_rect *dirty_area); +void vlVdpSave4DelayedRendering(vlVdpDevice *dev, VdpOutputSurface surface, struct vl_compositor_state *cstate); + /* Internal function pointers */ VdpGetErrorString vlVdpGetErrorString; VdpDeviceDestroy vlVdpDeviceDestroy; -- cgit v1.2.3