The secondary pipe will be used for operations that don't need synchronization.
Signed-off-by: Axel Davy <axel.d...@ens.fr> --- src/gallium/state_trackers/nine/device9.c | 4 +++- src/gallium/state_trackers/nine/device9.h | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/gallium/state_trackers/nine/device9.c b/src/gallium/state_trackers/nine/device9.c index 8b4bd06..f659a27 100644 --- a/src/gallium/state_trackers/nine/device9.c +++ b/src/gallium/state_trackers/nine/device9.c @@ -193,7 +193,8 @@ NineDevice9_ctor( struct NineDevice9 *This, This->caps.MaxVertexShaderConst = NINE_MAX_CONST_F_SWVP; This->context.pipe = This->screen->context_create(This->screen, NULL, 0); - if (!This->context.pipe) { return E_OUTOFMEMORY; } /* guess */ + This->pipe_secondary = This->screen->context_create(This->screen, NULL, 0); + if (!This->context.pipe || !This->pipe_secondary) { return E_OUTOFMEMORY; } /* guess */ This->pipe_sw = This->screen_sw->context_create(This->screen_sw, NULL, 0); if (!This->pipe_sw) { return E_OUTOFMEMORY; } @@ -574,6 +575,7 @@ NineDevice9_dtor( struct NineDevice9 *This ) if (This->context.cso) { cso_destroy_context(This->context.cso); } if (This->cso_sw) { cso_destroy_context(This->cso_sw); } if (This->context.pipe && This->context.pipe->destroy) { This->context.pipe->destroy(This->context.pipe); } + if (This->pipe_secondary && This->pipe_secondary->destroy) { This->pipe_secondary->destroy(This->pipe_secondary); } if (This->pipe_sw && This->pipe_sw->destroy) { This->pipe_sw->destroy(This->pipe_sw); } if (This->present) { ID3DPresentGroup_Release(This->present); } diff --git a/src/gallium/state_trackers/nine/device9.h b/src/gallium/state_trackers/nine/device9.h index 4539cda..81c4ef9 100644 --- a/src/gallium/state_trackers/nine/device9.h +++ b/src/gallium/state_trackers/nine/device9.h @@ -53,6 +53,8 @@ struct NineDevice9 /* G3D context */ struct pipe_screen *screen; + /* For first time upload. No Sync with rendering thread */ + struct pipe_context *pipe_secondary; struct pipe_screen *screen_sw; struct pipe_context *pipe_sw; struct cso_context *cso_sw; -- 2.10.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev