From 596176a72086f4f7a247bd33edd4715fbfe5135a Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Tue, 27 Jun 2023 17:21:20 -0400 Subject: [PATCH] broadcom/compiler: Use nir_lower_robust_access The common code version, instead of the vendor version. Signed-off-by: Alyssa Rosenzweig Reviewed-by: Iago Toral Quiroga Part-of: --- src/broadcom/compiler/vir.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/broadcom/compiler/vir.c b/src/broadcom/compiler/vir.c index ec81ad3f246..499215454c0 100644 --- a/src/broadcom/compiler/vir.c +++ b/src/broadcom/compiler/vir.c @@ -1581,8 +1581,9 @@ v3d_attempt_compile(struct v3d_compile *c) NIR_PASS(_, c->s, nir_lower_idiv, &idiv_options); NIR_PASS(_, c->s, nir_lower_alu); - if (c->key->robust_uniform_access || c->key->robust_storage_access) { - /* v3d_nir_lower_robust_buffer_access assumes constant buffer + if (c->key->robust_uniform_access || c->key->robust_storage_access || + c->key->robust_image_access) { + /* nir_lower_robust_access assumes constant buffer * indices on ubo/ssbo intrinsics so run copy propagation and * constant folding passes before we run the lowering to warrant * this. We also want to run the lowering before v3d_optimize to @@ -1590,11 +1591,16 @@ v3d_attempt_compile(struct v3d_compile *c) */ NIR_PASS(_, c->s, nir_copy_prop); NIR_PASS(_, c->s, nir_opt_constant_folding); - NIR_PASS(_, c->s, v3d_nir_lower_robust_buffer_access, c); - } - if (c->key->robust_image_access) - NIR_PASS(_, c->s, v3d_nir_lower_robust_image_access, c); + nir_lower_robust_access_options opts = { + .lower_image = c->key->robust_image_access, + .lower_ssbo = c->key->robust_storage_access, + .lower_ubo = c->key->robust_uniform_access, + .skip_ubo_0 = c->key->environment == V3D_ENVIRONMENT_VULKAN, + }; + + NIR_PASS(_, c->s, nir_lower_robust_access, &opts); + } NIR_PASS(_, c->s, nir_lower_wrmasks, should_split_wrmask, c->s);