From d7cbe795edefb616c2df9d3bda0a2dc80a2c3405 Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Mon, 19 Feb 2018 08:44:50 +1100 Subject: radeonsi/nir: set uses_bindless_images for images MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit V2: add missing intrinsics (Spotted-by: Samuel Pitoiset) Reviewed-by: Marek Olšák --- src/gallium/drivers/radeonsi/si_shader_nir.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'src/gallium/drivers') diff --git a/src/gallium/drivers/radeonsi/si_shader_nir.c b/src/gallium/drivers/radeonsi/si_shader_nir.c index 80c436247c8..45cbf1ce7f3 100644 --- a/src/gallium/drivers/radeonsi/si_shader_nir.c +++ b/src/gallium/drivers/radeonsi/si_shader_nir.c @@ -124,6 +124,15 @@ 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; + + break; + } case nir_intrinsic_image_var_store: case nir_intrinsic_image_var_atomic_add: case nir_intrinsic_image_var_atomic_min: @@ -132,7 +141,13 @@ 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; + + /* fall-through */ + } case nir_intrinsic_store_ssbo: case nir_intrinsic_ssbo_atomic_add: case nir_intrinsic_ssbo_atomic_imin: -- cgit v1.2.3