[PATCH vkd3d 23/41] vkd3d: Add DXIL test for stream output.

Hans-Kristian Arntzen post at arntzen-software.no
Wed Jan 29 05:51:54 CST 2020


Signed-off-by: Hans-Kristian Arntzen <post at arntzen-software.no>
---
 tests/d3d12.c | 27 ++++++++++++++++++++++++---
 1 file changed, 24 insertions(+), 3 deletions(-)

diff --git a/tests/d3d12.c b/tests/d3d12.c
index a499115..da7c23c 100644
--- a/tests/d3d12.c
+++ b/tests/d3d12.c
@@ -32706,7 +32706,7 @@ static void test_primitive_restart(void)
     destroy_test_context(&context);
 }
 
-static void test_vertex_shader_stream_output(void)
+static void test_vertex_shader_stream_output(bool use_dxil)
 {
     D3D12_GRAPHICS_PIPELINE_STATE_DESC pso_desc;
     ID3D12Resource *counter_buffer, *so_buffer;
@@ -32739,11 +32739,21 @@ static void test_vertex_shader_stream_output(void)
     desc.no_pipeline = true;
     if (!init_test_context(&context, &desc))
         return;
+
+    if (use_dxil && !context_supports_dxil(&context))
+    {
+        destroy_test_context(&context);
+        return;
+    }
+
     device = context.device;
     command_list = context.list;
     queue = context.queue;
 
-    init_pipeline_state_desc(&pso_desc, context.root_signature, 0, NULL, NULL, NULL);
+    if (use_dxil)
+        init_pipeline_state_desc_dxil(&pso_desc, context.root_signature, 0, NULL, NULL, NULL);
+    else
+        init_pipeline_state_desc(&pso_desc, context.root_signature, 0, NULL, NULL, NULL);
     pso_desc.StreamOutput.NumEntries = ARRAY_SIZE(so_declaration);
     pso_desc.StreamOutput.pSODeclaration = so_declaration;
     pso_desc.StreamOutput.pBufferStrides = strides;
@@ -32811,6 +32821,16 @@ static void test_vertex_shader_stream_output(void)
     destroy_test_context(&context);
 }
 
+static void test_vertex_shader_stream_output_dxbc(void)
+{
+    test_vertex_shader_stream_output(false);
+}
+
+static void test_vertex_shader_stream_output_dxil(void)
+{
+    test_vertex_shader_stream_output(true);
+}
+
 static void test_read_write_subresource(void)
 {
     D3D12_TEXTURE_COPY_LOCATION src_location, dst_location;
@@ -35361,7 +35381,8 @@ START_TEST(d3d12)
     run_test(test_shader_sample_position);
     run_test(test_shader_eval_attribute);
     run_test(test_primitive_restart);
-    run_test(test_vertex_shader_stream_output);
+    run_test(test_vertex_shader_stream_output_dxbc);
+    run_test(test_vertex_shader_stream_output_dxil);
     run_test(test_read_write_subresource);
     run_test(test_queue_wait);
     run_test(test_graphics_compute_queue_synchronization);
-- 
2.25.0




More information about the wine-devel mailing list