summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers
diff options
context:
space:
mode:
authorAxel Davy <axel.davy@ens.fr>2016-05-07 16:25:03 +0200
committerAxel Davy <axel.davy@ens.fr>2016-10-10 23:43:49 +0200
commita5d308e51a7be7e90d1373fa8ec7813ae8018ae5 (patch)
treee0d00fff03159a8fb2e688e197b23c964c9b56b6 /src/gallium/state_trackers
parentf090705075201c16664caa613bec244053404bbb (diff)
downloadexternal_mesa3d-a5d308e51a7be7e90d1373fa8ec7813ae8018ae5.zip
external_mesa3d-a5d308e51a7be7e90d1373fa8ec7813ae8018ae5.tar.gz
external_mesa3d-a5d308e51a7be7e90d1373fa8ec7813ae8018ae5.tar.bz2
st/nine: Wait for pending tasks to execute in swapchain
Fixes crash after Reset() when using thread_submit=true Signed-off-by: Axel Davy <axel.davy@ens.fr>
Diffstat (limited to 'src/gallium/state_trackers')
-rw-r--r--src/gallium/state_trackers/nine/swapchain9.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/gallium/state_trackers/nine/swapchain9.c b/src/gallium/state_trackers/nine/swapchain9.c
index 3106063..fcda9c7 100644
--- a/src/gallium/state_trackers/nine/swapchain9.c
+++ b/src/gallium/state_trackers/nine/swapchain9.c
@@ -243,6 +243,10 @@ NineSwapChain9_Resize( struct NineSwapChain9 *This,
desc.Width = pParams->BackBufferWidth;
desc.Height = pParams->BackBufferHeight;
+ for (i = 0; i < oldBufferCount; i++) {
+ if (This->tasks[i])
+ _mesa_threadpool_wait_for_task(This->pool, &(This->tasks[i]));
+ }
memset(This->tasks, 0, sizeof(This->tasks));
if (This->pool) {