diff options
author | Hans-Kristian Arntzen <post@arntzen-software.no> | 2022-11-07 15:29:53 +0300 |
---|---|---|
committer | Hans-Kristian Arntzen <post@arntzen-software.no> | 2022-11-07 16:27:46 +0300 |
commit | d633c56ede9e03e3c78325546f3401a71fb3e2ab (patch) | |
tree | bad88abf9a5ef135fe5e3a1c297c2e242f0fd9a8 | |
parent | 96bda89e436b38d430b5cede93baa039d7360183 (diff) |
vkd3d: Handle private root signature for mesh shader.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
-rw-r--r-- | libs/vkd3d/state.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/libs/vkd3d/state.c b/libs/vkd3d/state.c index 074cf182..adbadfe8 100644 --- a/libs/vkd3d/state.c +++ b/libs/vkd3d/state.c @@ -4081,10 +4081,17 @@ static HRESULT d3d12_pipeline_create_private_root_signature(struct d3d12_device VkPipelineBindPoint bind_point, const struct d3d12_pipeline_state_desc *desc, struct d3d12_root_signature **root_signature) { - const struct D3D12_SHADER_BYTECODE *bytecode = bind_point == VK_PIPELINE_BIND_POINT_GRAPHICS ? &desc->vs : &desc->cs; + const struct D3D12_SHADER_BYTECODE *bytecode; ID3D12RootSignature *object = NULL; HRESULT hr; + if (bind_point == VK_PIPELINE_BIND_POINT_COMPUTE) + bytecode = &desc->cs; + else if (desc->ms.BytecodeLength) + bytecode = &desc->ms; + else + bytecode = &desc->vs; + if (!bytecode->BytecodeLength) return E_INVALIDARG; |