st/nine: Add secondary pipe for device
The secondary pipe will be used for operations that don't need synchronization. Signed-off-by: Axel Davy <axel.davy@ens.fr>
This commit is contained in:
parent
7a7eeefd7d
commit
3e8234fff4
|
@ -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); }
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue