vkd3d: Allow different but compatible global root signature objects.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
This commit is contained in:
parent
53309d05a1
commit
c940d548f4
|
@ -448,13 +448,21 @@ static HRESULT d3d12_state_object_parse_subobjects(struct d3d12_state_object *ob
|
||||||
case D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_ROOT_SIGNATURE:
|
case D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_ROOT_SIGNATURE:
|
||||||
{
|
{
|
||||||
const D3D12_GLOBAL_ROOT_SIGNATURE *rs = obj->pDesc;
|
const D3D12_GLOBAL_ROOT_SIGNATURE *rs = obj->pDesc;
|
||||||
if (data->global_root_signature)
|
struct d3d12_root_signature *new_rs;
|
||||||
|
struct d3d12_root_signature *old_rs;
|
||||||
|
|
||||||
|
new_rs = impl_from_ID3D12RootSignature(rs->pGlobalRootSignature);
|
||||||
|
old_rs = impl_from_ID3D12RootSignature(data->global_root_signature);
|
||||||
|
|
||||||
|
if (new_rs && old_rs && new_rs->compatibility_hash != old_rs->compatibility_hash)
|
||||||
{
|
{
|
||||||
/* Simplicity for now. */
|
/* Simplicity for now. */
|
||||||
FIXME("More than one global root signature is used.\n");
|
FIXME("More than one unique global root signature is used.\n");
|
||||||
return E_INVALIDARG;
|
return E_INVALIDARG;
|
||||||
}
|
}
|
||||||
data->global_root_signature = rs->pGlobalRootSignature;
|
|
||||||
|
if (!data->global_root_signature)
|
||||||
|
data->global_root_signature = rs->pGlobalRootSignature;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue