From 24ca588ce66233a92e95dc70deb983c97dc24e55 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Christian=20K=C3=B6nig?= Date: Thu, 29 Mar 2012 15:53:28 +0200 Subject: [PATCH] st/vdpau: fix deadlock in PresentationQueueQuerySurfaceStatus MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Christian König --- src/gallium/state_trackers/vdpau/presentation.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gallium/state_trackers/vdpau/presentation.c b/src/gallium/state_trackers/vdpau/presentation.c index 2e3bea9..51a702e 100644 --- a/src/gallium/state_trackers/vdpau/presentation.c +++ b/src/gallium/state_trackers/vdpau/presentation.c @@ -368,14 +368,15 @@ vlVdpPresentationQueueQuerySurfaceStatus(VdpPresentationQueue presentation_queue if (screen->fence_signalled(screen, surf->fence)) { screen->fence_reference(screen, &surf->fence, NULL); *status = VDP_PRESENTATION_QUEUE_STATUS_VISIBLE; + pipe_mutex_unlock(pq->device->mutex); // We actually need to query the timestamp of the last VSYNC event from the hardware vlVdpPresentationQueueGetTime(presentation_queue, first_presentation_time); *first_presentation_time += 1; } else { *status = VDP_PRESENTATION_QUEUE_STATUS_QUEUED; + pipe_mutex_unlock(pq->device->mutex); } - pipe_mutex_unlock(pq->device->mutex); } return VDP_STATUS_OK; -- 2.7.4