[PATCH vkd3d v2 2/5] tests: Allow skipping shader tests if requirements are not met.

Zebediah Figura zfigura at codeweavers.com
Thu Apr 7 18:58:14 CDT 2022


Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
---
v2: No changes.

 tests/shader_runner.c | 7 ++++++-
 tests/shader_runner.h | 3 +++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/tests/shader_runner.c b/tests/shader_runner.c
index ffa4cf61b..05c0fbe1e 100644
--- a/tests/shader_runner.c
+++ b/tests/shader_runner.c
@@ -595,11 +595,15 @@ void run_shader_tests(struct shader_runner *runner, int argc, char **argv, const
             {
                 case STATE_INPUT_LAYOUT:
                 case STATE_NONE:
-                case STATE_REQUIRE:
                 case STATE_SAMPLER:
                 case STATE_TEST:
                     break;
 
+                case STATE_REQUIRE:
+                    if (runner->ops->check_requirements && !runner->ops->check_requirements(runner))
+                        goto out;
+                    break;
+
                 case STATE_TEXTURE:
                 case STATE_VERTEX_BUFFER:
                     set_resource(runner, runner->ops->create_resource(runner, &current_resource));
@@ -832,6 +836,7 @@ void run_shader_tests(struct shader_runner *runner, int argc, char **argv, const
         }
     }
 
+out:
     for (i = 0; i < runner->input_element_count; ++i)
         free(runner->input_elements[i].name);
     free(runner->input_elements);
diff --git a/tests/shader_runner.h b/tests/shader_runner.h
index a98917c5f..a304ba919 100644
--- a/tests/shader_runner.h
+++ b/tests/shader_runner.h
@@ -110,6 +110,9 @@ struct shader_runner
 
 struct shader_runner_ops
 {
+    /* Returns false if unable to run the given tests. If NULL, all tests are
+     * run. */
+    bool (*check_requirements)(struct shader_runner *runner);
     struct resource *(*create_resource)(struct shader_runner *runner, const struct resource_params *params);
     void (*destroy_resource)(struct shader_runner *runner, struct resource *resource);
     void (*draw)(struct shader_runner *runner, D3D_PRIMITIVE_TOPOLOGY primitive_topology, unsigned int vertex_count);
-- 
2.35.1




More information about the wine-devel mailing list