iris: Calculate uses_atomic_load_store after all lowering
The lowering passes will soon be moved to another function, so there won't be any choice. As a side benefit, this allows eliminating the uses_atomic_load_store **pointer** parameter from brw_nir_lower_storage_image. For some reason crocus was passing false instead of NULL. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12858>
This commit is contained in:
@@ -123,8 +123,7 @@ bool brw_nir_lower_conversions(nir_shader *nir);
|
||||
bool brw_nir_lower_scoped_barriers(nir_shader *nir);
|
||||
|
||||
bool brw_nir_lower_storage_image(nir_shader *nir,
|
||||
const struct intel_device_info *devinfo,
|
||||
bool *uses_atomic_load_store);
|
||||
const struct intel_device_info *devinfo);
|
||||
void brw_nir_rewrite_image_intrinsic(nir_intrinsic_instr *intrin,
|
||||
nir_ssa_def *index);
|
||||
void brw_nir_rewrite_bindless_image_intrinsic(nir_intrinsic_instr *intrin,
|
||||
|
||||
@@ -671,8 +671,7 @@ lower_image_size_instr(nir_builder *b,
|
||||
|
||||
bool
|
||||
brw_nir_lower_storage_image(nir_shader *shader,
|
||||
const struct intel_device_info *devinfo,
|
||||
bool *uses_atomic_load_store)
|
||||
const struct intel_device_info *devinfo)
|
||||
{
|
||||
bool progress = false;
|
||||
|
||||
@@ -716,8 +715,6 @@ brw_nir_lower_storage_image(nir_shader *shader,
|
||||
case nir_intrinsic_image_deref_atomic_xor:
|
||||
case nir_intrinsic_image_deref_atomic_exchange:
|
||||
case nir_intrinsic_image_deref_atomic_comp_swap:
|
||||
if (uses_atomic_load_store)
|
||||
*uses_atomic_load_store = true;
|
||||
if (lower_image_atomic_instr(&b, devinfo, intrin))
|
||||
impl_progress = true;
|
||||
break;
|
||||
|
||||
@@ -833,7 +833,7 @@ anv_pipeline_lower_nir(struct anv_pipeline *pipeline,
|
||||
|
||||
nir_shader_gather_info(nir, nir_shader_get_entrypoint(nir));
|
||||
|
||||
NIR_PASS_V(nir, brw_nir_lower_storage_image, compiler->devinfo, NULL);
|
||||
NIR_PASS_V(nir, brw_nir_lower_storage_image, compiler->devinfo);
|
||||
|
||||
NIR_PASS_V(nir, nir_lower_explicit_io, nir_var_mem_global,
|
||||
nir_address_format_64bit_global);
|
||||
|
||||
Reference in New Issue
Block a user