From: Timothy Arceri Date: Sun, 18 Feb 2018 21:44:50 +0000 (+1100) Subject: radeonsi/nir: set uses_bindless_images for images X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d7cbe795edefb616c2df9d3bda0a2dc80a2c3405;p=mesa.git radeonsi/nir: set uses_bindless_images for images V2: add missing intrinsics (Spotted-by: Samuel Pitoiset) Reviewed-by: Marek Olšák --- 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: