[PATCH 0/7] MR600: tests/shader_runner: Miscellaneus fixes.
This MR includes: - A fix to a comment in vkd3d-shader/ir.c (out of MR scope but really tiny!). - A fix when creating UAV buffers in the shader_runner d3d12 backend. - Fixes to (hopefully) all the memory leaks in the shader_runner reported by valgrind when running all tests. -- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/600
From: Francisco Casas <fcasas(a)codeweavers.com> --- libs/vkd3d-shader/ir.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/vkd3d-shader/ir.c b/libs/vkd3d-shader/ir.c index 865a292cd..36d96ebdf 100644 --- a/libs/vkd3d-shader/ir.c +++ b/libs/vkd3d-shader/ir.c @@ -2239,7 +2239,7 @@ static enum vkd3d_result flatten_control_flow_constructs(struct vkd3d_shader_par } vkd3d_free(flattener.control_flow_info); - /* Simpler to always free these in free_shader_desc(). */ + /* Simpler to always free these in vsir_program_cleanup(). */ program->block_names = flattener.block_names; program->block_name_count = flattener.block_name_count; -- GitLab https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/600
From: Francisco Casas <fcasas(a)codeweavers.com> The implementation of upload_buffer_data_with_states(), unlike the implementation of upload_texture_data_with_states(), does not expect a pointer to a D3D12_SUBRESOURCE_DATA, but rather, a direct pointer to the data. --- tests/shader_runner_d3d12.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/shader_runner_d3d12.c b/tests/shader_runner_d3d12.c index d6b80d9ea..233feca19 100644 --- a/tests/shader_runner_d3d12.c +++ b/tests/shader_runner_d3d12.c @@ -197,7 +197,7 @@ static struct resource *d3d12_runner_create_resource(struct shader_runner *r, co resource->resource = create_default_buffer(device, params->data_size, D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS, D3D12_RESOURCE_STATE_COPY_DEST); - upload_buffer_data_with_states(resource->resource, 0, params->data_size, resource_data, + upload_buffer_data_with_states(resource->resource, 0, params->data_size, resource_data[0].pData, test_context->queue, test_context->list, RESOURCE_STATE_DO_NOT_CHANGE, D3D12_RESOURCE_STATE_UNORDERED_ACCESS); reset_command_list(test_context->list, test_context->allocator); -- GitLab https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/600
From: Francisco Casas <fcasas(a)codeweavers.com> --- tests/shader_runner.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/shader_runner.c b/tests/shader_runner.c index bac3a8f26..e92442c8a 100644 --- a/tests/shader_runner.c +++ b/tests/shader_runner.c @@ -616,6 +616,7 @@ static void parse_test_directive(struct shader_runner *runner, const char *line) memcpy(params.data, quad, sizeof(quad)); params.data_size = sizeof(quad); set_resource(runner, runner->ops->create_resource(runner, ¶ms)); + free(params.data); if (!runner->vs_source) runner->vs_source = strdup(vs_source); -- GitLab https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/600
From: Francisco Casas <fcasas(a)codeweavers.com> --- tests/shader_runner.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/shader_runner.c b/tests/shader_runner.c index e92442c8a..6a1fdc4d4 100644 --- a/tests/shader_runner.c +++ b/tests/shader_runner.c @@ -1511,6 +1511,7 @@ void run_shader_tests(struct shader_runner *runner, const struct shader_runner_o free(runner->input_elements); free(runner->vs_source); free(runner->ps_source); + free(runner->uniforms); for (i = 0; i < runner->resource_count; ++i) { if (runner->resources[i]) -- GitLab https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/600
From: Francisco Casas <fcasas(a)codeweavers.com> --- tests/shader_runner_vulkan.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/shader_runner_vulkan.c b/tests/shader_runner_vulkan.c index bb6b3a30a..eba08a22b 100644 --- a/tests/shader_runner_vulkan.c +++ b/tests/shader_runner_vulkan.c @@ -1245,10 +1245,12 @@ static bool check_device_extensions(struct vulkan_shader_runner *runner) if (!has_extension(extensions, count, required_device_extensions[i])) { skip("The selected Vulkan device does not support %s.\n", required_device_extensions[i]); + free(extensions); return false; } } + free(extensions); return true; } -- GitLab https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/600
From: Francisco Casas <fcasas(a)codeweavers.com> --- tests/shader_runner.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/shader_runner.c b/tests/shader_runner.c index 6a1fdc4d4..d82017f32 100644 --- a/tests/shader_runner.c +++ b/tests/shader_runner.c @@ -569,6 +569,7 @@ static void parse_test_directive(struct shader_runner *runner, const char *line) { struct resource_params params; struct input_element *element; + unsigned int i; /* For simplicity, draw a large triangle instead. */ static const struct vec2 quad[] = @@ -599,6 +600,9 @@ static void parse_test_directive(struct shader_runner *runner, const char *line) set_resource(runner, runner->ops->create_resource(runner, ¶ms)); } + for (i = 0; i < runner->input_element_count; ++i) + free(runner->input_elements[i].name); + vkd3d_array_reserve((void **)&runner->input_elements, &runner->input_element_capacity, 1, sizeof(*runner->input_elements)); element = &runner->input_elements[0]; -- GitLab https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/600
From: Francisco Casas <fcasas(a)codeweavers.com> --- tests/shader_runner.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/shader_runner.c b/tests/shader_runner.c index d82017f32..7ab4846ed 100644 --- a/tests/shader_runner.c +++ b/tests/shader_runner.c @@ -1515,6 +1515,8 @@ void run_shader_tests(struct shader_runner *runner, const struct shader_runner_o free(runner->input_elements); free(runner->vs_source); free(runner->ps_source); + free(runner->cs_source); + free(runner->fx_source); free(runner->uniforms); for (i = 0; i < runner->resource_count; ++i) { -- GitLab https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/600
This merge request was approved by Giovanni Mascellani. -- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/600
Notice that we usually convert underscores to dashes in commit subject prefixes: so it is `d3d-asm` rather than `d3d_asm` and `shader-runner` rather than `shader_runner`. I am not sure of why we do that, but it seems to be the convention. -- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/600#note_58964
This merge request was approved by Henri Verbeet. -- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/600
participants (4)
-
Francisco Casas -
Francisco Casas (@fcasas) -
Giovanni Mascellani (@giomasce) -
Henri Verbeet (@hverbeet)