Module: vkd3d Branch: master Commit: 0f9f5269e9c9cfb9882cda3c712f820d6f35295b URL: https://gitlab.winehq.org/wine/vkd3d/-/commit/0f9f5269e9c9cfb9882cda3c712f82...
Author: Francisco Casas fcasas@codeweavers.com Date: Wed Jan 31 15:21:23 2024 -0300
tests/vkd3d-shader: Set uninitialized uniforms to a value.
Avoids a potential source of non-determinism because the padding bytes between uniforms could be left uninitialized.
---
tests/shader_runner.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/tests/shader_runner.c b/tests/shader_runner.c index fe5ee597..866fd5d4 100644 --- a/tests/shader_runner.c +++ b/tests/shader_runner.c @@ -551,9 +551,13 @@ static void set_resource(struct shader_runner *runner, struct resource *resource
static void set_uniforms(struct shader_runner *runner, size_t offset, size_t count, const void *uniforms) { + size_t initial_count = runner->uniform_count; + runner->uniform_count = align(max(runner->uniform_count, offset + count), 4); vkd3d_array_reserve((void **)&runner->uniforms, &runner->uniform_capacity, runner->uniform_count, sizeof(*runner->uniforms)); + memset(runner->uniforms + initial_count, 127, + (runner->uniform_count - initial_count) * sizeof(*runner->uniforms)); memcpy(runner->uniforms + offset, uniforms, count * sizeof(*runner->uniforms)); }