=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: vkd3d: Require D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT for input layout.

Alexandre Julliard julliard at winehq.org
Thu Jan 17 16:08:40 CST 2019


Module: vkd3d
Branch: master
Commit: 1a05563fc7827c1e682a8fb67fa5b5695b736658
URL:    https://source.winehq.org/git/vkd3d.git/?a=commit;h=1a05563fc7827c1e682a8fb67fa5b5695b736658

Author: Józef Kucia <jkucia at codeweavers.com>
Date:   Wed Jan 16 12:44:58 2019 +0100

vkd3d: Require D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT for input layout.

Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 libs/vkd3d/state.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/libs/vkd3d/state.c b/libs/vkd3d/state.c
index e9f73e8..18addf3 100644
--- a/libs/vkd3d/state.c
+++ b/libs/vkd3d/state.c
@@ -904,7 +904,8 @@ static HRESULT d3d12_root_signature_init(struct d3d12_root_signature *root_signa
     root_signature->static_sampler_count = 0;
     root_signature->static_samplers = NULL;
 
-    if (desc->Flags & ~D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT)
+    if (desc->Flags & ~(D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT
+            | D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT))
         FIXME("Ignoring root signature flags %#x.\n", desc->Flags);
 
     if (FAILED(hr = d3d12_root_signature_info_from_desc(&info, desc)))
@@ -2282,6 +2283,14 @@ static HRESULT d3d12_pipeline_state_init_graphics(struct d3d12_pipeline_state *s
         graphics->attribute_count = ARRAY_SIZE(graphics->attributes);
     }
 
+    if (graphics->attribute_count
+            && !(root_signature->flags & D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT))
+    {
+        WARN("Input layout is used without D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT.\n");
+        hr = E_INVALIDARG;
+        goto fail;
+    }
+
     if (FAILED(hr = compute_input_layout_offsets(&desc->InputLayout, aligned_offsets)))
         goto fail;
 




More information about the wine-cvs mailing list