[Mesa-dev] [PATCH 5/6] radeonsi/nir: set uses_bindless_images for images

Timothy Arceri tarceri at itsqueeze.com
Thu Apr 5 05:34:47 UTC 2018


V2: add missing intrinsics (Spotted-by: Samuel Pitoiset)
---
 src/gallium/drivers/radeonsi/si_shader_nir.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/radeonsi/si_shader_nir.c b/src/gallium/drivers/radeonsi/si_shader_nir.c
index 01c8554272f..362b7445cc5 100644
--- a/src/gallium/drivers/radeonsi/si_shader_nir.c
+++ b/src/gallium/drivers/radeonsi/si_shader_nir.c
@@ -123,6 +123,13 @@ static void scan_instruction(struct tgsi_shader_info *info,
 		case nir_intrinsic_load_tess_level_outer:
 			info->reads_tess_factors = true;
 			break;
+		case nir_intrinsic_image_var_load:
+		case nir_intrinsic_image_var_size:
+		case nir_intrinsic_image_var_samples: {
+			nir_variable *var = intr->variables[0]->var;
+			if (var->data.bindless)
+				info->uses_bindless_images = true;
+		}
 		case nir_intrinsic_image_var_store:
 		case nir_intrinsic_image_var_atomic_add:
 		case nir_intrinsic_image_var_atomic_min:
@@ -131,7 +138,11 @@ static void scan_instruction(struct tgsi_shader_info *info,
 		case nir_intrinsic_image_var_atomic_or:
 		case nir_intrinsic_image_var_atomic_xor:
 		case nir_intrinsic_image_var_atomic_exchange:
-		case nir_intrinsic_image_var_atomic_comp_swap:
+		case nir_intrinsic_image_var_atomic_comp_swap: {
+			nir_variable *var = intr->variables[0]->var;
+			if (var->data.bindless)
+				info->uses_bindless_images = true;
+		}
 		case nir_intrinsic_store_ssbo:
 		case nir_intrinsic_ssbo_atomic_add:
 		case nir_intrinsic_ssbo_atomic_imin:
-- 
2.14.3



More information about the mesa-dev mailing list