mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-09 04:00:12 +01:00
st/nine: Initial mixed vertex processing support
In mixed vertex processing, the user can enable or disable software vertex processing. It is on hardware by default. This feature is not a state, and thus the setting doesn't need to be recorded by stateblocks. Signed-off-by: Axel Davy <axel.davy@ens.fr>
This commit is contained in:
parent
747f1ef8b6
commit
56ea3df7d4
2 changed files with 16 additions and 5 deletions
|
|
@ -165,10 +165,14 @@ NineDevice9_ctor( struct NineDevice9 *This,
|
|||
if (!(This->params.BehaviorFlags & D3DCREATE_FPU_PRESERVE))
|
||||
nine_setup_fpu();
|
||||
|
||||
if (This->params.BehaviorFlags & D3DCREATE_SOFTWARE_VERTEXPROCESSING)
|
||||
DBG("Application asked full Software Vertex Processing. Ignoring.\n");
|
||||
if (This->params.BehaviorFlags & D3DCREATE_SOFTWARE_VERTEXPROCESSING) {
|
||||
DBG("Application asked full Software Vertex Processing.\n");
|
||||
This->swvp = true;
|
||||
} else
|
||||
This->swvp = false;
|
||||
if (This->params.BehaviorFlags & D3DCREATE_MIXED_VERTEXPROCESSING)
|
||||
DBG("Application asked mixed Software Vertex Processing. Ignoring.\n");
|
||||
DBG("Application asked mixed Software Vertex Processing.\n");
|
||||
/* TODO: check if swvp is resetted by device Resets */
|
||||
|
||||
This->pipe = This->screen->context_create(This->screen, NULL, 0);
|
||||
if (!This->pipe) { return E_OUTOFMEMORY; } /* guess */
|
||||
|
|
@ -2904,13 +2908,17 @@ HRESULT NINE_WINAPI
|
|||
NineDevice9_SetSoftwareVertexProcessing( struct NineDevice9 *This,
|
||||
BOOL bSoftware )
|
||||
{
|
||||
STUB(D3DERR_INVALIDCALL);
|
||||
if (This->params.BehaviorFlags & D3DCREATE_MIXED_VERTEXPROCESSING) {
|
||||
This->swvp = bSoftware;
|
||||
return D3D_OK;
|
||||
} else
|
||||
return D3DERR_INVALIDCALL; /* msdn. TODO: check in practice */
|
||||
}
|
||||
|
||||
BOOL NINE_WINAPI
|
||||
NineDevice9_GetSoftwareVertexProcessing( struct NineDevice9 *This )
|
||||
{
|
||||
return !!(This->params.BehaviorFlags & D3DCREATE_SOFTWARE_VERTEXPROCESSING);
|
||||
return This->swvp;
|
||||
}
|
||||
|
||||
HRESULT NINE_WINAPI
|
||||
|
|
|
|||
|
|
@ -144,6 +144,9 @@ struct NineDevice9
|
|||
int minor_version_num;
|
||||
long long available_texture_mem;
|
||||
long long available_texture_limit;
|
||||
|
||||
/* software vertex processing */
|
||||
boolean swvp;
|
||||
};
|
||||
static inline struct NineDevice9 *
|
||||
NineDevice9( void *data )
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue