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: b019fe8a5b
"glsl/nir: Fix handling of 64-bit values in uniform storage"
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
@@ -145,7 +145,7 @@ copy_constant_to_storage(union gl_constant_value *storage,
|
|||||||
case GLSL_TYPE_UINT64:
|
case GLSL_TYPE_UINT64:
|
||||||
case GLSL_TYPE_INT64:
|
case GLSL_TYPE_INT64:
|
||||||
/* XXX need to check on big-endian */
|
/* 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;
|
break;
|
||||||
case GLSL_TYPE_BOOL:
|
case GLSL_TYPE_BOOL:
|
||||||
storage[i].b = val->values[row].u32 ? boolean_true : 0;
|
storage[i].b = val->values[row].u32 ? boolean_true : 0;
|
||||||
|
Reference in New Issue
Block a user