From d633c56ede9e03e3c78325546f3401a71fb3e2ab Mon Sep 17 00:00:00 2001 From: Hans-Kristian Arntzen Date: Mon, 7 Nov 2022 13:29:53 +0100 Subject: vkd3d: Handle private root signature for mesh shader. Signed-off-by: Hans-Kristian Arntzen --- libs/vkd3d/state.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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; -- cgit v1.2.3