diff options
author | Christian König <[email protected]> | 2012-02-25 23:34:31 +0100 |
---|---|---|
committer | Christian König <[email protected]> | 2012-03-02 13:14:21 +0100 |
commit | f8ac7e034803a1c873bf156c012fede6d2640097 (patch) | |
tree | 2f396c39f3b69b96987ce27a04ab5b8c89b1b55b /src/gallium/state_trackers/vdpau/vdpau_private.h | |
parent | 14766f820069ca987543918bce96410c481e5d20 (diff) |
st/vdpau: avoid an unnessasary copy
Delay the actual mixer rendering until we really
know which surface is the real destination.
Signed-off-by: Christian König <[email protected]>
Diffstat (limited to 'src/gallium/state_trackers/vdpau/vdpau_private.h')
-rw-r--r-- | src/gallium/state_trackers/vdpau/vdpau_private.h | 9 |
1 files changed, 9 insertions, 0 deletions
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; |