From 3e4e34adca5c592b42b08c7a3dda0966fe8ae4b8 Mon Sep 17 00:00:00 2001 From: Francisco Casas Date: Mon, 14 Oct 2024 19:05:30 -0300 Subject: [PATCH] tests/shader_runner: Avoid segfaults on missing signature elements. --- tests/shader_runner_gl.c | 2 ++ tests/shader_runner_vulkan.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/tests/shader_runner_gl.c b/tests/shader_runner_gl.c index 739a56410..6a2762a9e 100644 --- a/tests/shader_runner_gl.c +++ b/tests/shader_runner_gl.c @@ -1459,6 +1459,8 @@ static bool gl_runner_draw(struct shader_runner *r, signature_element = vkd3d_shader_find_signature_element(&vs_input_signature, element->name, element->index, 0); ok(signature_element, "Cannot find signature element %s%u.\n", element->name, element->index); + if (!signature_element) + continue; attribute_idx = signature_element->register_index; format = get_format_info(element->format, false); diff --git a/tests/shader_runner_vulkan.c b/tests/shader_runner_vulkan.c index 381b3cb13..1e3221de6 100644 --- a/tests/shader_runner_vulkan.c +++ b/tests/shader_runner_vulkan.c @@ -835,6 +835,8 @@ static VkPipeline create_graphics_pipeline(struct vulkan_shader_runner *runner, signature_element = vkd3d_shader_find_signature_element( &runner->signatures[SHADER_TYPE_VS].input, element->name, element->index, 0); ok(signature_element, "Cannot find signature element %s%u.\n", element->name, element->index); + if (!signature_element) + continue; attribute->location = signature_element->register_index; attribute->binding = element->slot;