From 2c371a25a8800883dda353853cca6b5a2ba71bb4 Mon Sep 17 00:00:00 2001 From: Axel Davy Date: Sun, 18 Dec 2016 10:59:53 +0100 Subject: [PATCH] st/nine: Call GetPipe for implicit pipe usages With csmt, every usage of the pipe in the main thread has to be protected by calling GetPipe. Signed-off-by: Axel Davy --- src/gallium/state_trackers/nine/device9.c | 6 ++++++ src/gallium/state_trackers/nine/swapchain9.c | 2 ++ 2 files changed, 8 insertions(+) diff --git a/src/gallium/state_trackers/nine/device9.c b/src/gallium/state_trackers/nine/device9.c index 8f5f117951f..dce908e7f8f 100644 --- a/src/gallium/state_trackers/nine/device9.c +++ b/src/gallium/state_trackers/nine/device9.c @@ -2821,6 +2821,8 @@ NineDevice9_DrawPrimitiveUP( struct NineDevice9 *This, vtxbuf.user_buffer = pVertexStreamZeroData; if (!This->driver_caps.user_vbufs) { + /* Implicit use of context pipe */ + (void)NineDevice9_GetPipe(This); u_upload_data(This->vertex_uploader, 0, (prim_count_to_vertex_count(PrimitiveType, PrimitiveCount)) * VertexStreamZeroStride, /* XXX */ @@ -2884,6 +2886,8 @@ NineDevice9_DrawIndexedPrimitiveUP( struct NineDevice9 *This, if (!This->driver_caps.user_vbufs) { const unsigned base = MinVertexIndex * VertexStreamZeroStride; + /* Implicit use of context pipe */ + (void)NineDevice9_GetPipe(This); u_upload_data(This->vertex_uploader, base, NumVertices * VertexStreamZeroStride, /* XXX */ @@ -2897,6 +2901,8 @@ NineDevice9_DrawIndexedPrimitiveUP( struct NineDevice9 *This, vbuf.user_buffer = NULL; } if (!This->driver_caps.user_ibufs) { + /* Implicit use of context pipe */ + (void)NineDevice9_GetPipe(This); u_upload_data(This->index_uploader, 0, (prim_count_to_vertex_count(PrimitiveType, PrimitiveCount)) * ibuf.index_size, diff --git a/src/gallium/state_trackers/nine/swapchain9.c b/src/gallium/state_trackers/nine/swapchain9.c index 502736c2216..51aab066a56 100644 --- a/src/gallium/state_trackers/nine/swapchain9.c +++ b/src/gallium/state_trackers/nine/swapchain9.c @@ -603,6 +603,8 @@ handle_draw_cursor_and_hud( struct NineSwapChain9 *This, struct pipe_resource *r } if (device->hud && resource) { + /* Implicit use of context pipe */ + (void)NineDevice9_GetPipe(This->base.device); hud_draw(device->hud, resource); /* XXX: no offset */ /* HUD doesn't clobber stipple */ nine_state_restore_non_cso(device); -- 2.30.2