diff options
author | Eric Anholt <eric@anholt.net> | 2019-04-17 10:09:14 -0700 |
---|---|---|
committer | Dylan Baker <dylan@pnwbakers.com> | 2019-04-22 09:06:32 -0700 |
commit | 229c4abde39f8481d09492eea5b9b4fe98283d78 (patch) | |
tree | a24e84002cd128633c5a8c4380422fce23b2a9d9 | |
parent | b5ea4378c3260ff003532c8138a81a57091bdaa0 (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 <jason@jlekstrand.net>
(cherry picked from commit 9ac5ec2f90f8b6b2c0e67039b1ae7590374be872)
-rw-r--r-- | src/compiler/nir/nir_deref.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/compiler/nir/nir_deref.c b/src/compiler/nir/nir_deref.c index 1af45a45deb..1e321a66208 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"); } |