summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Ekstrand <jason@jlekstrand.net>2020-09-25 16:29:23 -0500
committerEric Engestrom <eric@engestrom.ch>2020-10-14 19:29:27 +0200
commitf6dfeec5f40480263b70847082237fbe724b4ebc (patch)
treeacefd0992d4c79c90824c6421a0abcc8855fdecb
parent07ba04a35add2662910369b16eac1280f22e6969 (diff)
nir/opt_load_store_vectorize: Use bit sizes when checking mask compatibility
Without this, it was checking bit size compatibility with bit sizes such as 96 which is clearly invalid. No shader-db changes on Ice Lake Fixes: ce9205c03bd20d "nir: add a load/store vectorization pass" Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Jesse Natalie <jenatali@microsoft.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6871> (cherry picked from commit 57e7c5f05eb15adf8e4d51a7536d8267e9ff0d2d)
-rw-r--r--.pick_status.json2
-rw-r--r--src/compiler/nir/nir_opt_load_store_vectorize.c4
2 files changed, 3 insertions, 3 deletions
diff --git a/.pick_status.json b/.pick_status.json
index f186809c580..0007c7c6a2d 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -9004,7 +9004,7 @@
"description": "nir/opt_load_store_vectorize: Use bit sizes when checking mask compatibility",
"nominated": true,
"nomination_type": 1,
- "resolution": 0,
+ "resolution": 1,
"master_sha": null,
"because_sha": "ce9205c03bd20d26af23ca891e97a9f848a612d1"
},
diff --git a/src/compiler/nir/nir_opt_load_store_vectorize.c b/src/compiler/nir/nir_opt_load_store_vectorize.c
index c31c8d293bf..d00b382f67e 100644
--- a/src/compiler/nir/nir_opt_load_store_vectorize.c
+++ b/src/compiler/nir/nir_opt_load_store_vectorize.c
@@ -709,11 +709,11 @@ new_bitsize_acceptable(struct vectorize_ctx *ctx, unsigned new_bit_size,
return false;
unsigned write_mask = nir_intrinsic_write_mask(low->intrin);
- if (!writemask_representable(write_mask, low_size, new_bit_size))
+ if (!writemask_representable(write_mask, get_bit_size(low), new_bit_size))
return false;
write_mask = nir_intrinsic_write_mask(high->intrin);
- if (!writemask_representable(write_mask, high_size, new_bit_size))
+ if (!writemask_representable(write_mask, get_bit_size(high), new_bit_size))
return false;
}