summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2019-04-17 10:09:14 -0700
committerEric Anholt <[email protected]>2019-04-19 08:45:14 -0700
commit9ac5ec2f90f8b6b2c0e67039b1ae7590374be872 (patch)
tree9ed0bac43906086f2d9cf531a3dc46b86dbaac7c
parent2288b59ddc4925aaa09b416bdd6d95f4f24199db (diff)
nir: Fix deref offset calculation for structs.
We were calcuating the offset for the field within the struct, and just dropping it on the floor. Fixes a regression in KHR-GLES3.shaders.struct.local.nested_struct_array_dynamic_index_fragment and a few of its friends since the scratch lowering commit. Fixes: e8e159e9df40 ("nir/deref: Add helpers for getting offsets") Reviewed-by: Jason Ekstrand <[email protected]>
-rw-r--r--src/compiler/nir/nir_deref.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/compiler/nir/nir_deref.c b/src/compiler/nir/nir_deref.c
index 460d3bf4656..93412b1eb6d 100644
--- a/src/compiler/nir/nir_deref.c
+++ b/src/compiler/nir/nir_deref.c
@@ -215,7 +215,7 @@ nir_build_deref_offset(nir_builder *b, nir_deref_instr *deref,
unsigned field_offset =
struct_type_get_field_offset(parent->type, size_align,
(*p)->strct.index);
- nir_iadd(b, offset, nir_imm_int(b, field_offset));
+ offset = nir_iadd(b, offset, nir_imm_int(b, field_offset));
} else {
unreachable("Unsupported deref type");
}