From: Evan Tang etang@codeweavers.com
Good for clearing things to an initial color. --- tests/shader_runner.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)
diff --git a/tests/shader_runner.c b/tests/shader_runner.c index 9b9d1d9e4..f6948b765 100644 --- a/tests/shader_runner.c +++ b/tests/shader_runner.c @@ -1081,6 +1081,18 @@ void run_shader_tests(struct shader_runner *runner, const struct shader_runner_o break;
case STATE_RESOURCE: + if (current_resource.data) + { + /* Replicate data to full size of resource */ + size_t target_size = current_resource.texel_size * current_resource.width * current_resource.height; + while (current_resource.data_size < target_size) + { + size_t next_size = min(current_resource.data_size * 2, target_size); + vkd3d_array_reserve((void**)¤t_resource.data, ¤t_resource.data_capacity, next_size, 1); + memcpy(current_resource.data + current_resource.data_size, current_resource.data, next_size - current_resource.data_size); + current_resource.data_size = next_size; + } + } set_resource(runner, runner->ops->create_resource(runner, ¤t_resource)); free(current_resource.data); break;