diff options
author | Christian König <[email protected]> | 2012-03-29 15:53:28 +0200 |
---|---|---|
committer | Christian König <[email protected]> | 2012-04-03 17:33:26 +0200 |
commit | 24ca588ce66233a92e95dc70deb983c97dc24e55 (patch) | |
tree | dae54829318277b45e83dc465a6a6a6e6ab3ce82 /src/gallium | |
parent | 7f2156c9bd35893a82eff92ae780ca97e52f389d (diff) |
st/vdpau: fix deadlock in PresentationQueueQuerySurfaceStatus
Signed-off-by: Christian König <[email protected]>
Diffstat (limited to 'src/gallium')
-rw-r--r-- | src/gallium/state_trackers/vdpau/presentation.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gallium/state_trackers/vdpau/presentation.c b/src/gallium/state_trackers/vdpau/presentation.c index 2e3bea94154..51a702eefde 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; |