summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers
diff options
context:
space:
mode:
authorNayan Deshmukh <[email protected]>2016-09-20 10:22:11 +0530
committerChristian König <[email protected]>2016-09-20 11:18:07 +0200
commite4cc2276c1fce9bce81834c348c3fc7e97ed6321 (patch)
treea83075bf305a5000fcea85d7f9900898a7e6d80a /src/gallium/state_trackers
parent853e80f5a09f85477167aac2789a91a2755e23f0 (diff)
st/vdpau: flush the context before calling flush_frontbuffer
so that the texture is rendered to back buffer before calling flush_frontbuffer and can be copied to a different buffer in the function Signed-off-by: Nayan Deshmukh <[email protected]> Reviewed-by: Michel Dänzer <[email protected]> Acked-by: Christian König <[email protected]>
Diffstat (limited to 'src/gallium/state_trackers')
-rw-r--r--src/gallium/state_trackers/vdpau/presentation.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/gallium/state_trackers/vdpau/presentation.c b/src/gallium/state_trackers/vdpau/presentation.c
index 2862eafa1da..f35d73a16ff 100644
--- a/src/gallium/state_trackers/vdpau/presentation.c
+++ b/src/gallium/state_trackers/vdpau/presentation.c
@@ -271,11 +271,14 @@ vlVdpPresentationQueueDisplay(VdpPresentationQueue presentation_queue,
}
vscreen->set_next_timestamp(vscreen, earliest_presentation_time);
- pipe->screen->flush_frontbuffer(pipe->screen, tex, 0, 0,
- vscreen->get_private(vscreen), NULL);
+ // flush before calling flush_frontbuffer so that rendering is flushed
+ // to back buffer so the texture can be copied in flush_frontbuffer
pipe->screen->fence_reference(pipe->screen, &surf->fence, NULL);
pipe->flush(pipe, &surf->fence, 0);
+ pipe->screen->flush_frontbuffer(pipe->screen, tex, 0, 0,
+ vscreen->get_private(vscreen), NULL);
+
pq->last_surf = surf;
if (dump_window == -1) {