From 6e2ff108865545557cc8dae11b911a1ebddb61c3 Mon Sep 17 00:00:00 2001 From: Caio Marcelo de Oliveira Filho Date: Fri, 21 Jun 2019 17:11:54 -0700 Subject: [PATCH] glsl/nir: Fix copying 64-bit values in uniform storage The iterator `i` already walks the right amount now that is incremented by `dmul`, so no need to `* 2`. Fixes invalid memory access in upcoming ARB_gl_spirv tests. Failure bisected by Arcady Goldmints-Orlov. Fixes: b019fe8a5b6 "glsl/nir: Fix handling of 64-bit values in uniform storage" Reviewed-by: Jason Ekstrand --- src/compiler/glsl/gl_nir_link_uniform_initializers.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compiler/glsl/gl_nir_link_uniform_initializers.c b/src/compiler/glsl/gl_nir_link_uniform_initializers.c index 1d2938dca01..53a3ab9a0a2 100644 --- a/src/compiler/glsl/gl_nir_link_uniform_initializers.c +++ b/src/compiler/glsl/gl_nir_link_uniform_initializers.c @@ -145,7 +145,7 @@ copy_constant_to_storage(union gl_constant_value *storage, case GLSL_TYPE_UINT64: case GLSL_TYPE_INT64: /* XXX need to check on big-endian */ - memcpy(&storage[i * 2].u, &val->values[row].f64, sizeof(double)); + memcpy(&storage[i].u, &val->values[row].f64, sizeof(double)); break; case GLSL_TYPE_BOOL: storage[i].b = val->values[row].u32 ? boolean_true : 0; -- 2.30.2