summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/vdpau/vdpau_private.h
diff options
context:
space:
mode:
authorChristian König <[email protected]>2012-02-25 23:34:31 +0100
committerChristian König <[email protected]>2012-03-02 13:14:21 +0100
commitf8ac7e034803a1c873bf156c012fede6d2640097 (patch)
tree2f396c39f3b69b96987ce27a04ab5b8c89b1b55b /src/gallium/state_trackers/vdpau/vdpau_private.h
parent14766f820069ca987543918bce96410c481e5d20 (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.h9
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;