diff options
-rw-r--r-- | src/compiler/nir/nir.c | 15 | ||||
-rw-r--r-- | src/compiler/nir/nir_divergence_analysis.c | 143 | ||||
-rw-r--r-- | src/compiler/nir/nir_gather_info.c | 96 | ||||
-rw-r--r-- | src/compiler/nir/nir_lower_amul.c | 42 | ||||
-rw-r--r-- | src/compiler/nir/nir_lower_cl_images.c | 13 | ||||
-rw-r--r-- | src/compiler/nir/nir_lower_helper_writes.c | 27 | ||||
-rw-r--r-- | src/compiler/nir/nir_lower_mediump.c | 61 | ||||
-rw-r--r-- | src/compiler/nir/nir_lower_memory_model.c | 55 | ||||
-rw-r--r-- | src/compiler/nir/nir_lower_multiview.c | 57 | ||||
-rw-r--r-- | src/compiler/nir/nir_lower_non_uniform_access.c | 59 | ||||
-rw-r--r-- | src/compiler/nir/nir_lower_ssbo.c | 43 | ||||
-rw-r--r-- | src/compiler/nir/nir_opt_access.c | 46 | ||||
-rw-r--r-- | src/compiler/nir/nir_opt_combine_stores.c | 12 | ||||
-rw-r--r-- | src/compiler/nir/nir_opt_copy_prop_vars.c | 28 | ||||
-rw-r--r-- | src/compiler/nir/nir_opt_load_store_vectorize.c | 70 | ||||
-rw-r--r-- | src/compiler/nir/nir_opt_non_uniform_access.c | 59 |
16 files changed, 3 insertions, 823 deletions
diff --git a/src/compiler/nir/nir.c b/src/compiler/nir/nir.c index 1352d4cd3b4..2a1e2397b5a 100644 --- a/src/compiler/nir/nir.c +++ b/src/compiler/nir/nir.c @@ -2801,21 +2801,6 @@ nir_rewrite_image_intrinsic(nir_intrinsic_instr *intrin, nir_ssa_def *src, CASE(store) CASE(atomic) CASE(atomic_swap) - CASE(atomic_add) - CASE(atomic_imin) - CASE(atomic_umin) - CASE(atomic_imax) - CASE(atomic_umax) - CASE(atomic_and) - CASE(atomic_or) - CASE(atomic_xor) - CASE(atomic_exchange) - CASE(atomic_comp_swap) - CASE(atomic_fadd) - CASE(atomic_fmin) - CASE(atomic_fmax) - CASE(atomic_inc_wrap) - CASE(atomic_dec_wrap) CASE(size) CASE(samples) CASE(load_raw_intel) diff --git a/src/compiler/nir/nir_divergence_analysis.c b/src/compiler/nir/nir_divergence_analysis.c index 9fd55f5bea7..c10350583fd 100644 --- a/src/compiler/nir/nir_divergence_analysis.c +++ b/src/compiler/nir/nir_divergence_analysis.c @@ -494,167 +494,24 @@ visit_intrinsic(nir_shader *shader, nir_intrinsic_instr *instr) case nir_intrinsic_load_scratch: case nir_intrinsic_deref_atomic: case nir_intrinsic_deref_atomic_swap: - case nir_intrinsic_deref_atomic_add: - case nir_intrinsic_deref_atomic_imin: - case nir_intrinsic_deref_atomic_umin: - case nir_intrinsic_deref_atomic_imax: - case nir_intrinsic_deref_atomic_umax: - case nir_intrinsic_deref_atomic_and: - case nir_intrinsic_deref_atomic_or: - case nir_intrinsic_deref_atomic_xor: - case nir_intrinsic_deref_atomic_exchange: - case nir_intrinsic_deref_atomic_comp_swap: - case nir_intrinsic_deref_atomic_fadd: - case nir_intrinsic_deref_atomic_fmin: - case nir_intrinsic_deref_atomic_fmax: - case nir_intrinsic_deref_atomic_fcomp_swap: case nir_intrinsic_ssbo_atomic: case nir_intrinsic_ssbo_atomic_swap: - case nir_intrinsic_ssbo_atomic_add: - case nir_intrinsic_ssbo_atomic_imin: - case nir_intrinsic_ssbo_atomic_umin: - case nir_intrinsic_ssbo_atomic_imax: - case nir_intrinsic_ssbo_atomic_umax: - case nir_intrinsic_ssbo_atomic_and: - case nir_intrinsic_ssbo_atomic_or: - case nir_intrinsic_ssbo_atomic_xor: - case nir_intrinsic_ssbo_atomic_exchange: - case nir_intrinsic_ssbo_atomic_comp_swap: - case nir_intrinsic_ssbo_atomic_fadd: - case nir_intrinsic_ssbo_atomic_fmax: - case nir_intrinsic_ssbo_atomic_fmin: - case nir_intrinsic_ssbo_atomic_fcomp_swap: case nir_intrinsic_image_deref_atomic: case nir_intrinsic_image_deref_atomic_swap: - case nir_intrinsic_image_deref_atomic_add: - case nir_intrinsic_image_deref_atomic_imin: - case nir_intrinsic_image_deref_atomic_umin: - case nir_intrinsic_image_deref_atomic_imax: - case nir_intrinsic_image_deref_atomic_umax: - case nir_intrinsic_image_deref_atomic_and: - case nir_intrinsic_image_deref_atomic_or: - case nir_intrinsic_image_deref_atomic_xor: - case nir_intrinsic_image_deref_atomic_exchange: - case nir_intrinsic_image_deref_atomic_comp_swap: - case nir_intrinsic_image_deref_atomic_fadd: - case nir_intrinsic_image_deref_atomic_fmin: - case nir_intrinsic_image_deref_atomic_fmax: - case nir_intrinsic_image_deref_atomic_inc_wrap: - case nir_intrinsic_image_deref_atomic_dec_wrap: case nir_intrinsic_image_atomic: case nir_intrinsic_image_atomic_swap: - case nir_intrinsic_image_atomic_add: - case nir_intrinsic_image_atomic_imin: - case nir_intrinsic_image_atomic_umin: - case nir_intrinsic_image_atomic_imax: - case nir_intrinsic_image_atomic_umax: - case nir_intrinsic_image_atomic_and: - case nir_intrinsic_image_atomic_or: - case nir_intrinsic_image_atomic_xor: - case nir_intrinsic_image_atomic_exchange: - case nir_intrinsic_image_atomic_comp_swap: - case nir_intrinsic_image_atomic_fadd: - case nir_intrinsic_image_atomic_fmin: - case nir_intrinsic_image_atomic_fmax: - case nir_intrinsic_image_atomic_inc_wrap: - case nir_intrinsic_image_atomic_dec_wrap: case nir_intrinsic_bindless_image_atomic: case nir_intrinsic_bindless_image_atomic_swap: - case nir_intrinsic_bindless_image_atomic_add: - case nir_intrinsic_bindless_image_atomic_imin: - case nir_intrinsic_bindless_image_atomic_umin: - case nir_intrinsic_bindless_image_atomic_imax: - case nir_intrinsic_bindless_image_atomic_umax: - case nir_intrinsic_bindless_image_atomic_and: - case nir_intrinsic_bindless_image_atomic_or: - case nir_intrinsic_bindless_image_atomic_xor: - case nir_intrinsic_bindless_image_atomic_exchange: - case nir_intrinsic_bindless_image_atomic_comp_swap: - case nir_intrinsic_bindless_image_atomic_fadd: - case nir_intrinsic_bindless_image_atomic_fmin: - case nir_intrinsic_bindless_image_atomic_fmax: - case nir_intrinsic_bindless_image_atomic_inc_wrap: - case nir_intrinsic_bindless_image_atomic_dec_wrap: case nir_intrinsic_shared_atomic: case nir_intrinsic_shared_atomic_swap: - case nir_intrinsic_shared_atomic_add: - case nir_intrinsic_shared_atomic_imin: - case nir_intrinsic_shared_atomic_umin: - case nir_intrinsic_shared_atomic_imax: - case nir_intrinsic_shared_atomic_umax: - case nir_intrinsic_shared_atomic_and: - case nir_intrinsic_shared_atomic_or: - case nir_intrinsic_shared_atomic_xor: - case nir_intrinsic_shared_atomic_exchange: - case nir_intrinsic_shared_atomic_comp_swap: - case nir_intrinsic_shared_atomic_fadd: - case nir_intrinsic_shared_atomic_fmin: - case nir_intrinsic_shared_atomic_fmax: - case nir_intrinsic_shared_atomic_fcomp_swap: case nir_intrinsic_task_payload_atomic: case nir_intrinsic_task_payload_atomic_swap: - case nir_intrinsic_task_payload_atomic_add: - case nir_intrinsic_task_payload_atomic_imin: - case nir_intrinsic_task_payload_atomic_umin: - case nir_intrinsic_task_payload_atomic_imax: - case nir_intrinsic_task_payload_atomic_umax: - case nir_intrinsic_task_payload_atomic_and: - case nir_intrinsic_task_payload_atomic_or: - case nir_intrinsic_task_payload_atomic_xor: - case nir_intrinsic_task_payload_atomic_exchange: - case nir_intrinsic_task_payload_atomic_comp_swap: - case nir_intrinsic_task_payload_atomic_fadd: - case nir_intrinsic_task_payload_atomic_fmin: - case nir_intrinsic_task_payload_atomic_fmax: - case nir_intrinsic_task_payload_atomic_fcomp_swap: case nir_intrinsic_global_atomic: case nir_intrinsic_global_atomic_swap: - case nir_intrinsic_global_atomic_add: - case nir_intrinsic_global_atomic_imin: - case nir_intrinsic_global_atomic_umin: - case nir_intrinsic_global_atomic_imax: - case nir_intrinsic_global_atomic_umax: - case nir_intrinsic_global_atomic_and: - case nir_intrinsic_global_atomic_or: - case nir_intrinsic_global_atomic_xor: - case nir_intrinsic_global_atomic_exchange: - case nir_intrinsic_global_atomic_comp_swap: - case nir_intrinsic_global_atomic_fadd: - case nir_intrinsic_global_atomic_fmin: - case nir_intrinsic_global_atomic_fmax: - case nir_intrinsic_global_atomic_fcomp_swap: case nir_intrinsic_global_atomic_amd: case nir_intrinsic_global_atomic_swap_amd: - case nir_intrinsic_global_atomic_add_amd: - case nir_intrinsic_global_atomic_imin_amd: - case nir_intrinsic_global_atomic_umin_amd: - case nir_intrinsic_global_atomic_imax_amd: - case nir_intrinsic_global_atomic_umax_amd: - case nir_intrinsic_global_atomic_and_amd: - case nir_intrinsic_global_atomic_or_amd: - case nir_intrinsic_global_atomic_xor_amd: - case nir_intrinsic_global_atomic_exchange_amd: - case nir_intrinsic_global_atomic_comp_swap_amd: - case nir_intrinsic_global_atomic_fadd_amd: - case nir_intrinsic_global_atomic_fmin_amd: - case nir_intrinsic_global_atomic_fmax_amd: - case nir_intrinsic_global_atomic_fcomp_swap_amd: case nir_intrinsic_global_atomic_2x32: case nir_intrinsic_global_atomic_swap_2x32: - case nir_intrinsic_global_atomic_add_2x32: - case nir_intrinsic_global_atomic_imin_2x32: - case nir_intrinsic_global_atomic_umin_2x32: - case nir_intrinsic_global_atomic_imax_2x32: - case nir_intrinsic_global_atomic_umax_2x32: - case nir_intrinsic_global_atomic_and_2x32: - case nir_intrinsic_global_atomic_or_2x32: - case nir_intrinsic_global_atomic_xor_2x32: - case nir_intrinsic_global_atomic_exchange_2x32: - case nir_intrinsic_global_atomic_comp_swap_2x32: - case nir_intrinsic_global_atomic_fadd_2x32: - case nir_intrinsic_global_atomic_fmin_2x32: - case nir_intrinsic_global_atomic_fmax_2x32: - case nir_intrinsic_global_atomic_fcomp_swap_2x32: case nir_intrinsic_atomic_counter_add: case nir_intrinsic_atomic_counter_min: case nir_intrinsic_atomic_counter_max: diff --git a/src/compiler/nir/nir_gather_info.c b/src/compiler/nir/nir_gather_info.c index 738b64d1317..e4e355e185a 100644 --- a/src/compiler/nir/nir_gather_info.c +++ b/src/compiler/nir/nir_gather_info.c @@ -342,69 +342,16 @@ nir_intrinsic_writes_external_memory(const nir_intrinsic_instr *instr) case nir_intrinsic_atomic_counter_comp_swap_deref: case nir_intrinsic_bindless_image_atomic: case nir_intrinsic_bindless_image_atomic_swap: - case nir_intrinsic_bindless_image_atomic_add: - case nir_intrinsic_bindless_image_atomic_and: - case nir_intrinsic_bindless_image_atomic_comp_swap: - case nir_intrinsic_bindless_image_atomic_dec_wrap: - case nir_intrinsic_bindless_image_atomic_exchange: - case nir_intrinsic_bindless_image_atomic_fadd: - case nir_intrinsic_bindless_image_atomic_imax: - case nir_intrinsic_bindless_image_atomic_imin: - case nir_intrinsic_bindless_image_atomic_inc_wrap: - case nir_intrinsic_bindless_image_atomic_or: - case nir_intrinsic_bindless_image_atomic_umax: - case nir_intrinsic_bindless_image_atomic_umin: - case nir_intrinsic_bindless_image_atomic_xor: case nir_intrinsic_bindless_image_store: case nir_intrinsic_bindless_image_store_raw_intel: case nir_intrinsic_global_atomic: case nir_intrinsic_global_atomic_swap: - case nir_intrinsic_global_atomic_add: - case nir_intrinsic_global_atomic_and: - case nir_intrinsic_global_atomic_comp_swap: - case nir_intrinsic_global_atomic_exchange: - case nir_intrinsic_global_atomic_fadd: - case nir_intrinsic_global_atomic_fcomp_swap: - case nir_intrinsic_global_atomic_fmax: - case nir_intrinsic_global_atomic_fmin: - case nir_intrinsic_global_atomic_imax: - case nir_intrinsic_global_atomic_imin: - case nir_intrinsic_global_atomic_or: - case nir_intrinsic_global_atomic_umax: - case nir_intrinsic_global_atomic_umin: - case nir_intrinsic_global_atomic_xor: case nir_intrinsic_global_atomic_ir3: case nir_intrinsic_global_atomic_swap_ir3: case nir_intrinsic_image_atomic: case nir_intrinsic_image_atomic_swap: - case nir_intrinsic_image_atomic_add: - case nir_intrinsic_image_atomic_and: - case nir_intrinsic_image_atomic_comp_swap: - case nir_intrinsic_image_atomic_dec_wrap: - case nir_intrinsic_image_atomic_exchange: - case nir_intrinsic_image_atomic_fadd: - case nir_intrinsic_image_atomic_imax: - case nir_intrinsic_image_atomic_imin: - case nir_intrinsic_image_atomic_inc_wrap: - case nir_intrinsic_image_atomic_or: - case nir_intrinsic_image_atomic_umax: - case nir_intrinsic_image_atomic_umin: - case nir_intrinsic_image_atomic_xor: case nir_intrinsic_image_deref_atomic: case nir_intrinsic_image_deref_atomic_swap: - case nir_intrinsic_image_deref_atomic_add: - case nir_intrinsic_image_deref_atomic_and: - case nir_intrinsic_image_deref_atomic_comp_swap: - case nir_intrinsic_image_deref_atomic_dec_wrap: - case nir_intrinsic_image_deref_atomic_exchange: - case nir_intrinsic_image_deref_atomic_fadd: - case nir_intrinsic_image_deref_atomic_imax: - case nir_intrinsic_image_deref_atomic_imin: - case nir_intrinsic_image_deref_atomic_inc_wrap: - case nir_intrinsic_image_deref_atomic_or: - case nir_intrinsic_image_deref_atomic_umax: - case nir_intrinsic_image_deref_atomic_umin: - case nir_intrinsic_image_deref_atomic_xor: case nir_intrinsic_image_deref_store: case nir_intrinsic_image_deref_store_raw_intel: case nir_intrinsic_image_store: @@ -413,20 +360,6 @@ nir_intrinsic_writes_external_memory(const nir_intrinsic_instr *instr) case nir_intrinsic_ssbo_atomic_swap: case nir_intrinsic_ssbo_atomic_ir3: case nir_intrinsic_ssbo_atomic_swap_ir3: - case nir_intrinsic_ssbo_atomic_add: - case nir_intrinsic_ssbo_atomic_and: - case nir_intrinsic_ssbo_atomic_comp_swap: - case nir_intrinsic_ssbo_atomic_exchange: - case nir_intrinsic_ssbo_atomic_fadd: - case nir_intrinsic_ssbo_atomic_fcomp_swap: - case nir_intrinsic_ssbo_atomic_fmax: - case nir_intrinsic_ssbo_atomic_fmin: - case nir_intrinsic_ssbo_atomic_imax: - case nir_intrinsic_ssbo_atomic_imin: - case nir_intrinsic_ssbo_atomic_or: - case nir_intrinsic_ssbo_atomic_umax: - case nir_intrinsic_ssbo_atomic_umin: - case nir_intrinsic_ssbo_atomic_xor: case nir_intrinsic_store_global: case nir_intrinsic_store_global_ir3: case nir_intrinsic_store_global_amd: @@ -437,20 +370,6 @@ nir_intrinsic_writes_external_memory(const nir_intrinsic_instr *instr) case nir_intrinsic_store_deref: case nir_intrinsic_deref_atomic: case nir_intrinsic_deref_atomic_swap: - case nir_intrinsic_deref_atomic_add: - case nir_intrinsic_deref_atomic_imin: - case nir_intrinsic_deref_atomic_umin: - case nir_intrinsic_deref_atomic_imax: - case nir_intrinsic_deref_atomic_umax: - case nir_intrinsic_deref_atomic_and: - case nir_intrinsic_deref_atomic_or: - case nir_intrinsic_deref_atomic_xor: - case nir_intrinsic_deref_atomic_exchange: - case nir_intrinsic_deref_atomic_comp_swap: - case nir_intrinsic_deref_atomic_fadd: - case nir_intrinsic_deref_atomic_fmin: - case nir_intrinsic_deref_atomic_fmax: - case nir_intrinsic_deref_atomic_fcomp_swap: return nir_deref_mode_may_be(nir_src_as_deref(instr->src[0]), nir_var_mem_ssbo | nir_var_mem_global); @@ -465,21 +384,6 @@ intrinsic_is_bindless(nir_intrinsic_instr *instr) switch (instr->intrinsic) { case nir_intrinsic_bindless_image_atomic: case nir_intrinsic_bindless_image_atomic_swap: - case nir_intrinsic_bindless_image_atomic_add: - case nir_intrinsic_bindless_image_atomic_and: - case nir_intrinsic_bindless_image_atomic_comp_swap: - case nir_intrinsic_bindless_image_atomic_dec_wrap: - case nir_intrinsic_bindless_image_atomic_exchange: - case nir_intrinsic_bindless_image_atomic_fadd: - case nir_intrinsic_bindless_image_atomic_fmax: - case nir_intrinsic_bindless_image_atomic_fmin: - case nir_intrinsic_bindless_image_atomic_imax: - case nir_intrinsic_bindless_image_atomic_imin: - case nir_intrinsic_bindless_image_atomic_inc_wrap: - case nir_intrinsic_bindless_image_atomic_or: - case nir_intrinsic_bindless_image_atomic_umax: - case nir_intrinsic_bindless_image_atomic_umin: - case nir_intrinsic_bindless_image_atomic_xor: case nir_intrinsic_bindless_image_descriptor_amd: case nir_intrinsic_bindless_image_format: case nir_intrinsic_bindless_image_load: diff --git a/src/compiler/nir/nir_lower_amul.c b/src/compiler/nir/nir_lower_amul.c index dfb8a0b42b0..8fffeb97f58 100644 --- a/src/compiler/nir/nir_lower_amul.c +++ b/src/compiler/nir/nir_lower_amul.c @@ -144,20 +144,6 @@ lower_intrinsic(lower_state *state, nir_intrinsic_instr *intr) case nir_intrinsic_ssbo_atomic: case nir_intrinsic_ssbo_atomic_swap: - case nir_intrinsic_ssbo_atomic_add: - case nir_intrinsic_ssbo_atomic_imin: - case nir_intrinsic_ssbo_atomic_umin: - case nir_intrinsic_ssbo_atomic_imax: - case nir_intrinsic_ssbo_atomic_umax: - case nir_intrinsic_ssbo_atomic_and: - case nir_intrinsic_ssbo_atomic_or: - case nir_intrinsic_ssbo_atomic_xor: - case nir_intrinsic_ssbo_atomic_exchange: - case nir_intrinsic_ssbo_atomic_comp_swap: - case nir_intrinsic_ssbo_atomic_fadd: - case nir_intrinsic_ssbo_atomic_fmin: - case nir_intrinsic_ssbo_atomic_fmax: - case nir_intrinsic_ssbo_atomic_fcomp_swap: /* 0: SSBO index * 1: offset */ @@ -167,20 +153,6 @@ lower_intrinsic(lower_state *state, nir_intrinsic_instr *intr) case nir_intrinsic_global_atomic: case nir_intrinsic_global_atomic_swap: - case nir_intrinsic_global_atomic_add: - case nir_intrinsic_global_atomic_imin: - case nir_intrinsic_global_atomic_umin: - case nir_intrinsic_global_atomic_imax: - case nir_intrinsic_global_atomic_umax: - case nir_intrinsic_global_atomic_and: - case nir_intrinsic_global_atomic_or: - case nir_intrinsic_global_atomic_xor: - case nir_intrinsic_global_atomic_exchange: - case nir_intrinsic_global_atomic_comp_swap: - case nir_intrinsic_global_atomic_fadd: - case nir_intrinsic_global_atomic_fmin: - case nir_intrinsic_global_atomic_fmax: - case nir_intrinsic_global_atomic_fcomp_swap: case nir_intrinsic_load_global_constant: case nir_intrinsic_load_global: /* just assume we that 24b is not sufficient: */ @@ -195,20 +167,6 @@ lower_intrinsic(lower_state *state, nir_intrinsic_instr *intr) /* These should all be small enough to unconditionally use imul24: */ case nir_intrinsic_shared_atomic: case nir_intrinsic_shared_atomic_swap: - case nir_intrinsic_shared_atomic_add: - case nir_intrinsic_shared_atomic_imin: - case nir_intrinsic_shared_atomic_umin: - case nir_intrinsic_shared_atomic_imax: - case nir_intrinsic_shared_atomic_umax: - case nir_intrinsic_shared_atomic_and: - case nir_intrinsic_shared_atomic_or: - case nir_intrinsic_shared_atomic_xor: - case nir_intrinsic_shared_atomic_exchange: - case nir_intrinsic_shared_atomic_comp_swap: - case nir_intrinsic_shared_atomic_fadd: - case nir_intrinsic_shared_atomic_fmin: - case nir_intrinsic_shared_atomic_fmax: - case nir_intrinsic_shared_atomic_fcomp_swap: case nir_intrinsic_load_uniform: case nir_intrinsic_load_input: case nir_intrinsic_load_output: diff --git a/src/compiler/nir/nir_lower_cl_images.c b/src/compiler/nir/nir_lower_cl_images.c index 275194784e0..d084d984230 100644 --- a/src/compiler/nir/nir_lower_cl_images.c +++ b/src/compiler/nir/nir_lower_cl_images.c @@ -250,19 +250,6 @@ nir_lower_cl_images(nir_shader *shader, bool lower_image_derefs, bool lower_samp case nir_intrinsic_image_deref_store: case nir_intrinsic_image_deref_atomic: case nir_intrinsic_image_deref_atomic_swap: - case nir_intrinsic_image_deref_atomic_add: - case nir_intrinsic_image_deref_atomic_imin: - case nir_intrinsic_image_deref_atomic_umin: - case nir_intrinsic_image_deref_atomic_imax: - case nir_intrinsic_image_deref_atomic_umax: - case nir_intrinsic_image_deref_atomic_and: - case nir_intrinsic_image_deref_atomic_or: - case nir_intrinsic_image_deref_atomic_xor: - case nir_intrinsic_image_deref_atomic_exchange: - case nir_intrinsic_image_deref_atomic_comp_swap: - case nir_intrinsic_image_deref_atomic_fadd: - case nir_intrinsic_image_deref_atomic_inc_wrap: - case nir_intrinsic_image_deref_atomic_dec_wrap: case nir_intrinsic_image_deref_size: case nir_intrinsic_image_deref_samples: { if (!lower_image_derefs) diff --git a/src/compiler/nir/nir_lower_helper_writes.c b/src/compiler/nir/nir_lower_helper_writes.c index cb828569f5a..49ffedc4234 100644 --- a/src/compiler/nir/nir_lower_helper_writes.c +++ b/src/compiler/nir/nir_lower_helper_writes.c @@ -37,35 +37,8 @@ lower(nir_builder *b, nir_instr *instr, void *data) switch (intr->intrinsic) { case nir_intrinsic_global_atomic: case nir_intrinsic_global_atomic_swap: - case nir_intrinsic_global_atomic_add: - case nir_intrinsic_global_atomic_and: - case nir_intrinsic_global_atomic_comp_swap: - case nir_intrinsic_global_atomic_exchange: - case nir_intrinsic_global_atomic_fadd: - case nir_intrinsic_global_atomic_fcomp_swap: - case nir_intrinsic_global_atomic_fmax: - case nir_intrinsic_global_atomic_fmin: - case nir_intrinsic_global_atomic_imax: - case nir_intrinsic_global_atomic_imin: - case nir_intrinsic_global_atomic_or: - case nir_intrinsic_global_atomic_umax: - case nir_intrinsic_global_atomic_umin: - case nir_intrinsic_global_atomic_xor: case nir_intrinsic_image_atomic: case nir_intrinsic_image_atomic_swap: - case nir_intrinsic_image_atomic_add: - case nir_intrinsic_image_atomic_and: - case nir_intrinsic_image_atomic_comp_swap: - case nir_intrinsic_image_atomic_dec_wrap: - case nir_intrinsic_image_atomic_exchange: - case nir_intrinsic_image_atomic_fadd: - case nir_intrinsic_image_atomic_imax: - case nir_intrinsic_image_atomic_imin: - case nir_intrinsic_image_atomic_inc_wrap: - case nir_intrinsic_image_atomic_or: - case nir_intrinsic_image_atomic_umax: - case nir_intrinsic_image_atomic_umin: - case nir_intrinsic_image_atomic_xor: break; case nir_intrinsic_store_global: case nir_intrinsic_image_store: diff --git a/src/compiler/nir/nir_lower_mediump.c b/src/compiler/nir/nir_lower_mediump.c index 6f61a3ee2f7..e97eb576146 100644 --- a/src/compiler/nir/nir_lower_mediump.c +++ b/src/compiler/nir/nir_lower_mediump.c @@ -569,21 +569,7 @@ nir_lower_mediump_vars(nir_shader *shader, nir_variable_mode modes) nir_intrinsic_instr *intr = nir_instr_as_intrinsic(instr); switch (intr->intrinsic) { case nir_intrinsic_deref_atomic: - case nir_intrinsic_deref_atomic_swap: - case nir_intrinsic_deref_atomic_add: - case nir_intrinsic_deref_atomic_imin: - case nir_intrinsic_deref_atomic_umin: - case nir_intrinsic_deref_atomic_imax: - case nir_intrinsic_deref_atomic_umax: - case nir_intrinsic_deref_atomic_and: - case nir_intrinsic_deref_atomic_or: - case nir_intrinsic_deref_atomic_xor: - case nir_intrinsic_deref_atomic_exchange: - case nir_intrinsic_deref_atomic_fadd: - case nir_intrinsic_deref_atomic_fmin: - case nir_intrinsic_deref_atomic_fmax: - case nir_intrinsic_deref_atomic_comp_swap: - case nir_intrinsic_deref_atomic_fcomp_swap: { + case nir_intrinsic_deref_atomic_swap: { nir_deref_instr *deref = nir_src_as_deref(intr->src[0]); nir_variable *var = nir_deref_instr_get_variable(deref); @@ -1051,55 +1037,10 @@ fold_16bit_tex_image(nir_builder *b, nir_instr *instr, void *params) break; case nir_intrinsic_bindless_image_atomic: case nir_intrinsic_bindless_image_atomic_swap: - case nir_intrinsic_bindless_image_atomic_add: - case nir_intrinsic_bindless_image_atomic_imin: - case nir_intrinsic_bindless_image_atomic_umin: - case nir_intrinsic_bindless_image_atomic_imax: - case nir_intrinsic_bindless_image_atomic_umax: - case nir_intrinsic_bindless_image_atomic_and: - case nir_intrinsic_bindless_image_atomic_or: - case nir_intrinsic_bindless_image_atomic_xor: - case nir_intrinsic_bindless_image_atomic_exchange: - case nir_intrinsic_bindless_image_atomic_comp_swap: - case nir_intrinsic_bindless_image_atomic_fadd: - case nir_intrinsic_bindless_image_atomic_fmin: - case nir_intrinsic_bindless_image_atomic_fmax: - case nir_intrinsic_bindless_image_atomic_inc_wrap: - case nir_intrinsic_bindless_image_atomic_dec_wrap: case nir_intrinsic_image_deref_atomic: case nir_intrinsic_image_deref_atomic_swap: - case nir_intrinsic_image_deref_atomic_add: - case nir_intrinsic_image_deref_atomic_umin: - case nir_intrinsic_image_deref_atomic_imin: - case nir_intrinsic_image_deref_atomic_umax: - case nir_intrinsic_image_deref_atomic_imax: - case nir_intrinsic_image_deref_atomic_and: - case nir_intrinsic_image_deref_atomic_or: - case nir_intrinsic_image_deref_atomic_xor: - case nir_intrinsic_image_deref_atomic_exchange: - case nir_intrinsic_image_deref_atomic_comp_swap: - case nir_intrinsic_image_deref_atomic_fadd: - case nir_intrinsic_image_deref_atomic_fmin: - case nir_intrinsic_image_deref_atomic_fmax: - case nir_intrinsic_image_deref_atomic_inc_wrap: - case nir_intrinsic_image_deref_atomic_dec_wrap: case nir_intrinsic_image_atomic: case nir_intrinsic_image_atomic_swap: - case nir_intrinsic_image_atomic_add: - case nir_intrinsic_image_atomic_imin: - case nir_intrinsic_image_atomic_umin: - case nir_intrinsic_image_atomic_imax: - case nir_intrinsic_image_atomic_umax: - case nir_intrinsic_image_atomic_and: - case nir_intrinsic_image_atomic_or: - case nir_intrinsic_image_atomic_xor: - case nir_intrinsic_image_atomic_exchange: - case nir_intrinsic_image_atomic_comp_swap: - case nir_intrinsic_image_atomic_fadd: - case nir_intrinsic_image_atomic_fmin: - case nir_intrinsic_image_atomic_fmax: - case nir_intrinsic_image_atomic_inc_wrap: - case nir_intrinsic_image_atomic_dec_wrap: if (options->fold_image_srcs) progress |= fold_16bit_image_srcs(b, intrinsic, -1); break; diff --git a/src/compiler/nir/nir_lower_memory_model.c b/src/compiler/nir/nir_lower_memory_model.c index a8c20e11e6c..15952e693ef 100644 --- a/src/compiler/nir/nir_lower_memory_model.c +++ b/src/compiler/nir/nir_lower_memory_model.c @@ -46,19 +46,6 @@ get_intrinsic_info(nir_intrinsic_instr *intrin, nir_variable_mode *modes, break; case nir_intrinsic_image_deref_atomic: case nir_intrinsic_image_deref_atomic_swap: - case nir_intrinsic_image_deref_atomic_add: - case nir_intrinsic_image_deref_atomic_fadd: - case nir_intrinsic_image_deref_atomic_umin: - case nir_intrinsic_image_deref_atomic_imin: - case nir_intrinsic_image_deref_atomic_umax: - case nir_intrinsic_image_deref_atomic_imax: - case nir_intrinsic_image_deref_atomic_fmin: - case nir_intrinsic_image_deref_atomic_fmax: - case nir_intrinsic_image_deref_atomic_and: - case nir_intrinsic_image_deref_atomic_or: - case nir_intrinsic_image_deref_atomic_xor: - case nir_intrinsic_image_deref_atomic_exchange: - case nir_intrinsic_image_deref_atomic_comp_swap: *modes = nir_src_as_deref(intrin->src[0])->modes; *reads = true; *writes = true; @@ -73,20 +60,6 @@ get_intrinsic_info(nir_intrinsic_instr *intrin, nir_variable_mode *modes, break; case nir_intrinsic_ssbo_atomic: case nir_intrinsic_ssbo_atomic_swap: - case nir_intrinsic_ssbo_atomic_add: - case nir_intrinsic_ssbo_atomic_imin: - case nir_intrinsic_ssbo_atomic_umin: - case nir_intrinsic_ssbo_atomic_imax: - case nir_intrinsic_ssbo_atomic_umax: - case nir_intrinsic_ssbo_atomic_and: - case nir_intrinsic_ssbo_atomic_or: - case nir_intrinsic_ssbo_atomic_xor: - case nir_intrinsic_ssbo_atomic_exchange: - case nir_intrinsic_ssbo_atomic_comp_swap: - case nir_intrinsic_ssbo_atomic_fadd: - case nir_intrinsic_ssbo_atomic_fcomp_swap: - case nir_intrinsic_ssbo_atomic_fmax: - case nir_intrinsic_ssbo_atomic_fmin: *modes = nir_var_mem_ssbo; *reads = true; *writes = true; @@ -101,20 +74,6 @@ get_intrinsic_info(nir_intrinsic_instr *intrin, nir_variable_mode *modes, break; case nir_intrinsic_global_atomic: case nir_intrinsic_global_atomic_swap: - case nir_intrinsic_global_atomic_add: - case nir_intrinsic_global_atomic_imin: - case nir_intrinsic_global_atomic_umin: - case nir_intrinsic_global_atomic_imax: - case nir_intrinsic_global_atomic_umax: - case nir_intrinsic_global_atomic_and: - case nir_intrinsic_global_atomic_or: - case nir_intrinsic_global_atomic_xor: - case nir_intrinsic_global_atomic_exchange: - case nir_intrinsic_global_atomic_comp_swap: - case nir_intrinsic_global_atomic_fadd: - case nir_intrinsic_global_atomic_fcomp_swap: - case nir_intrinsic_global_atomic_fmax: - case nir_intrinsic_global_atomic_fmin: *modes = nir_var_mem_global; *reads = true; *writes = true; @@ -129,20 +88,6 @@ get_intrinsic_info(nir_intrinsic_instr *intrin, nir_variable_mode *modes, break; case nir_intrinsic_deref_atomic: case nir_intrinsic_deref_atomic_swap: - case nir_intrinsic_deref_atomic_add: - case nir_intrinsic_deref_atomic_imin: - case nir_intrinsic_deref_atomic_umin: - case nir_intrinsic_deref_atomic_imax: - case nir_intrinsic_deref_atomic_umax: - case nir_intrinsic_deref_atomic_and: - case nir_intrinsic_deref_atomic_or: - case nir_intrinsic_deref_atomic_xor: - case nir_intrinsic_deref_atomic_exchange: - case nir_intrinsic_deref_atomic_comp_swap: - case nir_intrinsic_deref_atomic_fadd: - case nir_intrinsic_deref_atomic_fmin: - case nir_intrinsic_deref_atomic_fmax: - case nir_intrinsic_deref_atomic_fcomp_swap: *modes = nir_src_as_deref(intrin->src[0])->modes; *reads = true; *writes = true; diff --git a/src/compiler/nir/nir_lower_multiview.c b/src/compiler/nir/nir_lower_multiview.c index 3cf02e46c0c..7a7519cb063 100644 --- a/src/compiler/nir/nir_lower_multiview.c +++ b/src/compiler/nir/nir_lower_multiview.c @@ -57,75 +57,18 @@ shader_writes_to_memory(nir_shader *shader) switch (intrin->intrinsic) { case nir_intrinsic_deref_atomic: case nir_intrinsic_deref_atomic_swap: - case nir_intrinsic_deref_atomic_add: - case nir_intrinsic_deref_atomic_imin: - case nir_intrinsic_deref_atomic_umin: - case nir_intrinsic_deref_atomic_imax: - case nir_intrinsic_deref_atomic_umax: - case nir_intrinsic_deref_atomic_and: - case nir_intrinsic_deref_atomic_or: - case nir_intrinsic_deref_atomic_xor: - case nir_intrinsic_deref_atomic_exchange: - case nir_intrinsic_deref_atomic_comp_swap: case nir_intrinsic_store_ssbo: case nir_intrinsic_ssbo_atomic: case nir_intrinsic_ssbo_atomic_swap: - case nir_intrinsic_ssbo_atomic_add: - case nir_intrinsic_ssbo_atomic_imin: - case nir_intrinsic_ssbo_atomic_umin: - case nir_intrinsic_ssbo_atomic_imax: - case nir_intrinsic_ssbo_atomic_umax: - case nir_intrinsic_ssbo_atomic_and: - case nir_intrinsic_ssbo_atomic_or: - case nir_intrinsic_ssbo_atomic_xor: - case nir_intrinsic_ssbo_atomic_exchange: - case nir_intrinsic_ssbo_atomic_comp_swap: case nir_intrinsic_store_shared: case nir_intrinsic_store_shared2_amd: case nir_intrinsic_shared_atomic: case nir_intrinsic_shared_atomic_swap: - case nir_intrinsic_shared_atomic_add: - case nir_intrinsic_shared_atomic_imin: - case nir_intrinsic_shared_atomic_umin: - case nir_intrinsic_shared_atomic_imax: - case nir_intrinsic_shared_atomic_umax: - case nir_intrinsic_shared_atomic_and: - case nir_intrinsic_shared_atomic_or: - case nir_intrinsic_shared_atomic_xor: - case nir_intrinsic_shared_atomic_exchange: - case nir_intrinsic_shared_atomic_comp_swap: case nir_intrinsic_task_payload_atomic: case nir_intrinsic_task_payload_atomic_swap: - case nir_intrinsic_task_payload_atomic_add: - case nir_intrinsic_task_payload_atomic_imin: - case nir_intrinsic_task_payload_atomic_umin: - case nir_intrinsic_task_payload_atomic_imax: - case nir_intrinsic_task_payload_atomic_umax: - case nir_intrinsic_task_payload_atomic_and: - case nir_intrinsic_task_payload_atomic_or: - case nir_intrinsic_task_payload_atomic_xor: - case nir_intrinsic_task_payload_atomic_exchange: - case nir_intrinsic_task_payload_atomic_comp_swap: - case nir_intrinsic_task_payload_atomic_fadd: - case nir_intrinsic_task_payload_atomic_fmin: - case nir_intrinsic_task_payload_atomic_fmax: - case nir_intrinsic_task_payload_atomic_fcomp_swap: case nir_intrinsic_image_deref_store: case nir_intrinsic_image_deref_atomic: case nir_intrinsic_image_deref_atomic_swap: - case nir_intrinsic_image_deref_atomic_add: - case nir_intrinsic_image_deref_atomic_fadd: - case nir_intrinsic_image_deref_atomic_umin: - case nir_intrinsic_image_deref_atomic_umax: - case nir_intrinsic_image_deref_atomic_imin: - case nir_intrinsic_image_deref_atomic_imax: - case nir_intrinsic_image_deref_atomic_fmin: - case nir_intrinsic_image_deref_atomic_fmax: - case nir_intrinsic_image_deref_atomic_and: - case nir_intrinsic_image_deref_atomic_or: - case nir_intrinsic_image_deref_atomic_xor: - case nir_intrinsic_image_deref_atomic_exchange: - case nir_intrinsic_image_deref_atomic_comp_swap: return true; default: diff --git a/src/compiler/nir/nir_lower_non_uniform_access.c b/src/compiler/nir/nir_lower_non_uniform_access.c index 75a1ab782cc..4ab29cd98fc 100644 --- a/src/compiler/nir/nir_lower_non_uniform_access.c +++ b/src/compiler/nir/nir_lower_non_uniform_access.c @@ -230,20 +230,6 @@ nir_lower_non_uniform_access_impl(nir_function_impl *impl, case nir_intrinsic_load_ssbo: case nir_intrinsic_ssbo_atomic: case nir_intrinsic_ssbo_atomic_swap: - case nir_intrinsic_ssbo_atomic_add: - case nir_intrinsic_ssbo_atomic_imin: - case nir_intrinsic_ssbo_atomic_umin: - case nir_intrinsic_ssbo_atomic_imax: - case nir_intrinsic_ssbo_atomic_umax: - case nir_intrinsic_ssbo_atomic_and: - case nir_intrinsic_ssbo_atomic_or: - case nir_intrinsic_ssbo_atomic_xor: - case nir_intrinsic_ssbo_atomic_exchange: - case nir_intrinsic_ssbo_atomic_comp_swap: - case nir_intrinsic_ssbo_atomic_fadd: - case nir_intrinsic_ssbo_atomic_fmin: - case nir_intrinsic_ssbo_atomic_fmax: - case nir_intrinsic_ssbo_atomic_fcomp_swap: if ((options->types & nir_lower_non_uniform_ssbo_access) && lower_non_uniform_access_intrin(options, &b, intrin, 0)) progress = true; @@ -267,21 +253,6 @@ nir_lower_non_uniform_access_impl(nir_function_impl *impl, case nir_intrinsic_image_store: case nir_intrinsic_image_atomic: case nir_intrinsic_image_atomic_swap: - case nir_intrinsic_image_atomic_add: - case nir_intrinsic_image_atomic_imin: - case nir_intrinsic_image_atomic_umin: - case nir_intrinsic_image_atomic_imax: - case nir_intrinsic_image_atomic_umax: - case nir_intrinsic_image_atomic_and: - case nir_intrinsic_image_atomic_or: - case nir_intrinsic_image_atomic_xor: - case nir_intrinsic_image_atomic_exchange: - case nir_intrinsic_image_atomic_comp_swap: - case nir_intrinsic_image_atomic_inc_wrap: - case nir_intrinsic_image_atomic_dec_wrap: - case nir_intrinsic_image_atomic_fadd: - case nir_intrinsic_image_atomic_fmin: - case nir_intrinsic_image_atomic_fmax: case nir_intrinsic_image_size: case nir_intrinsic_image_samples: case nir_intrinsic_image_samples_identical: @@ -291,21 +262,6 @@ nir_lower_non_uniform_access_impl(nir_function_impl *impl, case nir_intrinsic_bindless_image_store: case nir_intrinsic_bindless_image_atomic: case nir_intrinsic_bindless_image_atomic_swap: - case nir_intrinsic_bindless_image_atomic_add: - case nir_intrinsic_bindless_image_atomic_imin: - case nir_intrinsic_bindless_image_atomic_umin: - case nir_intrinsic_bindless_image_atomic_imax: - case nir_intrinsic_bindless_image_atomic_umax: - case nir_intrinsic_bindless_image_atomic_and: - case nir_intrinsic_bindless_image_atomic_or: - case nir_intrinsic_bindless_image_atomic_xor: - case nir_intrinsic_bindless_image_atomic_exchange: - case nir_intrinsic_bindless_image_atomic_comp_swap: - case nir_intrinsic_bindless_image_atomic_inc_wrap: - case nir_intrinsic_bindless_image_atomic_dec_wrap: - case nir_intrinsic_bindless_image_atomic_fadd: - case nir_intrinsic_bindless_image_atomic_fmin: - case nir_intrinsic_bindless_image_atomic_fmax: case nir_intrinsic_bindless_image_size: case nir_intrinsic_bindless_image_samples: case nir_intrinsic_bindless_image_samples_identical: @@ -315,21 +271,6 @@ nir_lower_non_uniform_access_impl(nir_function_impl *impl, case nir_intrinsic_image_deref_store: case nir_intrinsic_image_deref_atomic: case nir_intrinsic_image_deref_atomic_swap: - case nir_intrinsic_image_deref_atomic_add: - case nir_intrinsic_image_deref_atomic_umin: - case nir_intrinsic_image_deref_atomic_imin: - case nir_intrinsic_image_deref_atomic_umax: - case nir_intrinsic_image_deref_atomic_imax: - case nir_intrinsic_image_deref_atomic_and: - case nir_intrinsic_image_deref_atomic_or: - case nir_intrinsic_image_deref_atomic_xor: - case nir_intrinsic_image_deref_atomic_exchange: - case nir_intrinsic_image_deref_atomic_comp_swap: - case nir_intrinsic_image_deref_atomic_inc_wrap: - case nir_intrinsic_image_deref_atomic_dec_wrap: - case nir_intrinsic_image_deref_atomic_fadd: - case nir_intrinsic_image_deref_atomic_fmin: - case nir_intrinsic_image_deref_atomic_fmax: case nir_intrinsic_image_deref_size: case nir_intrinsic_image_deref_samples: case nir_intrinsic_image_deref_samples_identical: diff --git a/src/compiler/nir/nir_lower_ssbo.c b/src/compiler/nir/nir_lower_ssbo.c index d9f03c71c16..54e2ed4c34b 100644 --- a/src/compiler/nir/nir_lower_ssbo.c +++ b/src/compiler/nir/nir_lower_ssbo.c @@ -50,35 +50,6 @@ lower_ssbo_op(nir_intrinsic_op op) return nir_intrinsic_global_atomic; case nir_intrinsic_ssbo_atomic_swap: return nir_intrinsic_global_atomic_swap; - case nir_intrinsic_ssbo_atomic_add: - return nir_intrinsic_global_atomic_add; - case nir_intrinsic_ssbo_atomic_imin: - return nir_intrinsic_global_atomic_imin; - case nir_intrinsic_ssbo_atomic_umin: - return nir_intrinsic_global_atomic_umin; - case nir_intrinsic_ssbo_atomic_imax: - return nir_intrinsic_global_atomic_imax; - case nir_intrinsic_ssbo_atomic_umax: - return nir_intrinsic_global_atomic_umax; - case nir_intrinsic_ssbo_atomic_and: - return nir_intrinsic_global_atomic_and; - case nir_intrinsic_ssbo_atomic_or: - return nir_intrinsic_global_atomic_or; - case nir_intrinsic_ssbo_atomic_xor: - return nir_intrinsic_global_atomic_xor; - case nir_intrinsic_ssbo_atomic_exchange: - return nir_intrinsic_global_atomic_exchange; - case nir_intrinsic_ssbo_atomic_comp_swap: - return nir_intrinsic_global_atomic_comp_swap; - - case nir_intrinsic_ssbo_atomic_fadd: - return nir_intrinsic_global_atomic_fadd; - case nir_intrinsic_ssbo_atomic_fmin: - return nir_intrinsic_global_atomic_fmin; - case nir_intrinsic_ssbo_atomic_fmax: - return nir_intrinsic_global_atomic_fmax; - case nir_intrinsic_ssbo_atomic_fcomp_swap: - return nir_intrinsic_global_atomic_fcomp_swap; default: unreachable("Invalid SSBO op"); @@ -172,20 +143,6 @@ should_lower_ssbo_instr(const nir_instr *instr) case nir_intrinsic_store_ssbo: case nir_intrinsic_ssbo_atomic: case nir_intrinsic_ssbo_atomic_swap: - case nir_intrinsic_ssbo_atomic_add: - case nir_intrinsic_ssbo_atomic_imin: - case nir_intrinsic_ssbo_atomic_umin: - case nir_intrinsic_ssbo_atomic_imax: - case nir_intrinsic_ssbo_atomic_umax: - case nir_intrinsic_ssbo_atomic_and: - case nir_intrinsic_ssbo_atomic_or: - case nir_intrinsic_ssbo_atomic_xor: - case nir_intrinsic_ssbo_atomic_exchange: - case nir_intrinsic_ssbo_atomic_comp_swap: - case nir_intrinsic_ssbo_atomic_fadd: - case nir_intrinsic_ssbo_atomic_fmin: - case nir_intrinsic_ssbo_atomic_fmax: - case nir_intrinsic_ssbo_atomic_fcomp_swap: return true; default: return false; diff --git a/src/compiler/nir/nir_opt_access.c b/src/compiler/nir/nir_opt_access.c index db0b4ebfa9e..39fd02d843e 100644 --- a/src/compiler/nir/nir_opt_access.c +++ b/src/compiler/nir/nir_opt_access.c @@ -85,21 +85,6 @@ gather_intrinsic(struct access_state *state, nir_intrinsic_instr *instr) case nir_intrinsic_image_deref_sparse_load: case nir_intrinsic_image_deref_atomic: case nir_intrinsic_image_deref_atomic_swap: - case nir_intrinsic_image_deref_atomic_add: - case nir_intrinsic_image_deref_atomic_imin: - case nir_intrinsic_image_deref_atomic_umin: - case nir_intrinsic_image_deref_atomic_imax: - case nir_intrinsic_image_deref_atomic_umax: - case nir_intrinsic_image_deref_atomic_and: - case nir_intrinsic_image_deref_atomic_or: - case nir_intrinsic_image_deref_atomic_xor: - case nir_intrinsic_image_deref_atomic_exchange: - case nir_intrinsic_image_deref_atomic_comp_swap: - case nir_intrinsic_image_deref_atomic_inc_wrap: - case nir_intrinsic_image_deref_atomic_dec_wrap: - case nir_intrinsic_image_deref_atomic_fadd: - case nir_intrinsic_image_deref_atomic_fmin: - case nir_intrinsic_image_deref_atomic_fmax: case nir_intrinsic_image_deref_samples_identical: var = nir_intrinsic_get_var(instr, 0); read = instr->intrinsic != nir_intrinsic_image_deref_store; @@ -132,21 +117,6 @@ gather_intrinsic(struct access_state *state, nir_intrinsic_instr *instr) case nir_intrinsic_bindless_image_sparse_load: case nir_intrinsic_bindless_image_atomic: case nir_intrinsic_bindless_image_atomic_swap: - case nir_intrinsic_bindless_image_atomic_add: - case nir_intrinsic_bindless_image_atomic_imin: - case nir_intrinsic_bindless_image_atomic_umin: - case nir_intrinsic_bindless_image_atomic_imax: - case nir_intrinsic_bindless_image_atomic_umax: - case nir_intrinsic_bindless_image_atomic_and: - case nir_intrinsic_bindless_image_atomic_or: - case nir_intrinsic_bindless_image_atomic_xor: - case nir_intrinsic_bindless_image_atomic_exchange: - case nir_intrinsic_bindless_image_atomic_comp_swap: - case nir_intrinsic_bindless_image_atomic_inc_wrap: - case nir_intrinsic_bindless_image_atomic_dec_wrap: - case nir_intrinsic_bindless_image_atomic_fadd: - case nir_intrinsic_bindless_image_atomic_fmin: - case nir_intrinsic_bindless_image_atomic_fmax: case nir_intrinsic_bindless_image_samples_identical: read = instr->intrinsic != nir_intrinsic_bindless_image_store; write = instr->intrinsic != nir_intrinsic_bindless_image_load && @@ -164,21 +134,7 @@ gather_intrinsic(struct access_state *state, nir_intrinsic_instr *instr) case nir_intrinsic_load_deref: case nir_intrinsic_store_deref: case nir_intrinsic_deref_atomic: - case nir_intrinsic_deref_atomic_swap: - case nir_intrinsic_deref_atomic_add: - case nir_intrinsic_deref_atomic_imin: - case nir_intrinsic_deref_atomic_umin: - case nir_intrinsic_deref_atomic_imax: - case nir_intrinsic_deref_atomic_umax: - case nir_intrinsic_deref_atomic_and: - case nir_intrinsic_deref_atomic_or: - case nir_intrinsic_deref_atomic_xor: - case nir_intrinsic_deref_atomic_exchange: - case nir_intrinsic_deref_atomic_comp_swap: - case nir_intrinsic_deref_atomic_fadd: - case nir_intrinsic_deref_atomic_fmin: - case nir_intrinsic_deref_atomic_fmax: - case nir_intrinsic_deref_atomic_fcomp_swap: { + case nir_intrinsic_deref_atomic_swap: { nir_deref_instr *deref = nir_src_as_deref(instr->src[0]); if (!nir_deref_mode_may_be(deref, nir_var_mem_ssbo | nir_var_mem_global)) break; diff --git a/src/compiler/nir/nir_opt_combine_stores.c b/src/compiler/nir/nir_opt_combine_stores.c index 87d4cc1273d..3473f2f88eb 100644 --- a/src/compiler/nir/nir_opt_combine_stores.c +++ b/src/compiler/nir/nir_opt_combine_stores.c @@ -403,17 +403,7 @@ combine_stores_block(struct combine_stores_state *state, nir_block *block) } case nir_intrinsic_deref_atomic: - case nir_intrinsic_deref_atomic_swap: - case nir_intrinsic_deref_atomic_add: - case nir_intrinsic_deref_atomic_imin: - case nir_intrinsic_deref_atomic_umin: - case nir_intrinsic_deref_atomic_imax: - case nir_intrinsic_deref_atomic_umax: - case nir_intrinsic_deref_atomic_and: - case nir_intrinsic_deref_atomic_or: - case nir_intrinsic_deref_atomic_xor: - case nir_intrinsic_deref_atomic_exchange: - case nir_intrinsic_deref_atomic_comp_swap: { + case nir_intrinsic_deref_atomic_swap: { nir_deref_instr *dst = nir_src_as_deref(intrin->src[0]); combine_stores_with_deref(state, dst); break; diff --git a/src/compiler/nir/nir_opt_copy_prop_vars.c b/src/compiler/nir/nir_opt_copy_prop_vars.c index 9fdb4c63834..9bcee846b60 100644 --- a/src/compiler/nir/nir_opt_copy_prop_vars.c +++ b/src/compiler/nir/nir_opt_copy_prop_vars.c @@ -241,20 +241,6 @@ gather_vars_written(struct copy_prop_var_state *state, case nir_intrinsic_deref_atomic: case nir_intrinsic_deref_atomic_swap: - case nir_intrinsic_deref_atomic_add: - case nir_intrinsic_deref_atomic_fadd: - case nir_intrinsic_deref_atomic_imin: - case nir_intrinsic_deref_atomic_umin: - case nir_intrinsic_deref_atomic_fmin: - case nir_intrinsic_deref_atomic_imax: - case nir_intrinsic_deref_atomic_umax: - case nir_intrinsic_deref_atomic_fmax: - case nir_intrinsic_deref_atomic_and: - case nir_intrinsic_deref_atomic_or: - case nir_intrinsic_deref_atomic_xor: - case nir_intrinsic_deref_atomic_exchange: - case nir_intrinsic_deref_atomic_comp_swap: - case nir_intrinsic_deref_atomic_fcomp_swap: case nir_intrinsic_store_deref: case nir_intrinsic_copy_deref: case nir_intrinsic_memcpy_deref: { @@ -1316,20 +1302,6 @@ copy_prop_vars_block(struct copy_prop_var_state *state, case nir_intrinsic_memcpy_deref: case nir_intrinsic_deref_atomic: case nir_intrinsic_deref_atomic_swap: - case nir_intrinsic_deref_atomic_add: - case nir_intrinsic_deref_atomic_fadd: - case nir_intrinsic_deref_atomic_imin: - case nir_intrinsic_deref_atomic_umin: - case nir_intrinsic_deref_atomic_fmin: - case nir_intrinsic_deref_atomic_imax: - case nir_intrinsic_deref_atomic_umax: - case nir_intrinsic_deref_atomic_fmax: - case nir_intrinsic_deref_atomic_and: - case nir_intrinsic_deref_atomic_or: - case nir_intrinsic_deref_atomic_xor: - case nir_intrinsic_deref_atomic_exchange: - case nir_intrinsic_deref_atomic_comp_swap: - case nir_intrinsic_deref_atomic_fcomp_swap: if (debug) dump_instr(instr); nir_deref_and_path dst = {nir_src_as_deref(intrin->src[0]), NULL}; diff --git a/src/compiler/nir/nir_opt_load_store_vectorize.c b/src/compiler/nir/nir_opt_load_store_vectorize.c index a95f576ffb0..2b653200661 100644 --- a/src/compiler/nir/nir_opt_load_store_vectorize.c +++ b/src/compiler/nir/nir_opt_load_store_vectorize.c @@ -88,80 +88,10 @@ case nir_intrinsic_##op: {\ STORE(nir_var_mem_global, global, -1, 1, -1, 0) LOAD(nir_var_mem_task_payload, task_payload, -1, 0, -1) STORE(nir_var_mem_task_payload, task_payload, -1, 1, -1, 0) - ATOMIC(nir_var_mem_ssbo, ssbo, add, 0, 1, -1, 2) - ATOMIC(nir_var_mem_ssbo, ssbo, imin, 0, 1, -1, 2) - ATOMIC(nir_var_mem_ssbo, ssbo, umin, 0, 1, -1, 2) - ATOMIC(nir_var_mem_ssbo, ssbo, imax, 0, 1, -1, 2) - ATOMIC(nir_var_mem_ssbo, ssbo, umax, 0, 1, -1, 2) - ATOMIC(nir_var_mem_ssbo, ssbo, and, 0, 1, -1, 2) - ATOMIC(nir_var_mem_ssbo, ssbo, or, 0, 1, -1, 2) - ATOMIC(nir_var_mem_ssbo, ssbo, xor, 0, 1, -1, 2) - ATOMIC(nir_var_mem_ssbo, ssbo, exchange, 0, 1, -1, 2) - ATOMIC(nir_var_mem_ssbo, ssbo, comp_swap, 0, 1, -1, 2) - ATOMIC(nir_var_mem_ssbo, ssbo, fadd, 0, 1, -1, 2) - ATOMIC(nir_var_mem_ssbo, ssbo, fmin, 0, 1, -1, 2) - ATOMIC(nir_var_mem_ssbo, ssbo, fmax, 0, 1, -1, 2) - ATOMIC(nir_var_mem_ssbo, ssbo, fcomp_swap, 0, 1, -1, 2) NEW_ATOMIC(nir_var_mem_ssbo, ssbo, 0, 1, -1, 2) - ATOMIC(0, deref, add, -1, -1, 0, 1) - ATOMIC(0, deref, imin, -1, -1, 0, 1) - ATOMIC(0, deref, umin, -1, -1, 0, 1) - ATOMIC(0, deref, imax, -1, -1, 0, 1) - ATOMIC(0, deref, umax, -1, -1, 0, 1) - ATOMIC(0, deref, and, -1, -1, 0, 1) - ATOMIC(0, deref, or, -1, -1, 0, 1) - ATOMIC(0, deref, xor, -1, -1, 0, 1) - ATOMIC(0, deref, exchange, -1, -1, 0, 1) - ATOMIC(0, deref, comp_swap, -1, -1, 0, 1) - ATOMIC(0, deref, fadd, -1, -1, 0, 1) - ATOMIC(0, deref, fmin, -1, -1, 0, 1) - ATOMIC(0, deref, fmax, -1, -1, 0, 1) - ATOMIC(0, deref, fcomp_swap, -1, -1, 0, 1) NEW_ATOMIC(0, deref, -1, -1, 0, 1) - ATOMIC(nir_var_mem_shared, shared, add, -1, 0, -1, 1) - ATOMIC(nir_var_mem_shared, shared, imin, -1, 0, -1, 1) - ATOMIC(nir_var_mem_shared, shared, umin, -1, 0, -1, 1) - ATOMIC(nir_var_mem_shared, shared, imax, -1, 0, -1, 1) - ATOMIC(nir_var_mem_shared, shared, umax, -1, 0, -1, 1) - ATOMIC(nir_var_mem_shared, shared, and, -1, 0, -1, 1) - ATOMIC(nir_var_mem_shared, shared, or, -1, 0, -1, 1) - ATOMIC(nir_var_mem_shared, shared, xor, -1, 0, -1, 1) - ATOMIC(nir_var_mem_shared, shared, exchange, -1, 0, -1, 1) - ATOMIC(nir_var_mem_shared, shared, comp_swap, -1, 0, -1, 1) - ATOMIC(nir_var_mem_shared, shared, fadd, -1, 0, -1, 1) - ATOMIC(nir_var_mem_shared, shared, fmin, -1, 0, -1, 1) - ATOMIC(nir_var_mem_shared, shared, fmax, -1, 0, -1, 1) - ATOMIC(nir_var_mem_shared, shared, fcomp_swap, -1, 0, -1, 1) NEW_ATOMIC(nir_var_mem_shared, shared, -1, 0, -1, 1) - ATOMIC(nir_var_mem_global, global, add, -1, 0, -1, 1) - ATOMIC(nir_var_mem_global, global, imin, -1, 0, -1, 1) - ATOMIC(nir_var_mem_global, global, umin, -1, 0, -1, 1) - ATOMIC(nir_var_mem_global, global, imax, -1, 0, -1, 1) - ATOMIC(nir_var_mem_global, global, umax, -1, 0, -1, 1) - ATOMIC(nir_var_mem_global, global, and, -1, 0, -1, 1) - ATOMIC(nir_var_mem_global, global, or, -1, 0, -1, 1) - ATOMIC(nir_var_mem_global, global, xor, -1, 0, -1, 1) - ATOMIC(nir_var_mem_global, global, exchange, -1, 0, -1, 1) - ATOMIC(nir_var_mem_global, global, comp_swap, -1, 0, -1, 1) - ATOMIC(nir_var_mem_global, global, fadd, -1, 0, -1, 1) - ATOMIC(nir_var_mem_global, global, fmin, -1, 0, -1, 1) - ATOMIC(nir_var_mem_global, global, fmax, -1, 0, -1, 1) - ATOMIC(nir_var_mem_global, global, fcomp_swap, -1, 0, -1, 1) NEW_ATOMIC(nir_var_mem_global, global, -1, 0, -1, 1) - ATOMIC(nir_var_mem_task_payload, task_payload, add, -1, 0, -1, 1) - ATOMIC(nir_var_mem_task_payload, task_payload, imin, -1, 0, -1, 1) - ATOMIC(nir_var_mem_task_payload, task_payload, umin, -1, 0, -1, 1) - ATOMIC(nir_var_mem_task_payload, task_payload, imax, -1, 0, -1, 1) - ATOMIC(nir_var_mem_task_payload, task_payload, umax, -1, 0, -1, 1) - ATOMIC(nir_var_mem_task_payload, task_payload, and, -1, 0, -1, 1) - ATOMIC(nir_var_mem_task_payload, task_payload, or, -1, 0, -1, 1) - ATOMIC(nir_var_mem_task_payload, task_payload, xor, -1, 0, -1, 1) - ATOMIC(nir_var_mem_task_payload, task_payload, exchange, -1, 0, -1, 1) - ATOMIC(nir_var_mem_task_payload, task_payload, comp_swap, -1, 0, -1, 1) - ATOMIC(nir_var_mem_task_payload, task_payload, fadd, -1, 0, -1, 1) - ATOMIC(nir_var_mem_task_payload, task_payload, fmin, -1, 0, -1, 1) - ATOMIC(nir_var_mem_task_payload, task_payload, fmax, -1, 0, -1, 1) - ATOMIC(nir_var_mem_task_payload, task_payload, fcomp_swap, -1, 0, -1, 1) NEW_ATOMIC(nir_var_mem_task_payload, task_payload, -1, 0, -1, 1) LOAD(nir_var_shader_temp, stack, -1, -1, -1) STORE(nir_var_shader_temp, stack, -1, -1, -1, 0) diff --git a/src/compiler/nir/nir_opt_non_uniform_access.c b/src/compiler/nir/nir_opt_non_uniform_access.c index 0aadf1846d0..84e380810d1 100644 --- a/src/compiler/nir/nir_opt_non_uniform_access.c +++ b/src/compiler/nir/nir_opt_non_uniform_access.c @@ -38,20 +38,6 @@ is_ssbo_intrinsic(nir_intrinsic_instr *intrin) case nir_intrinsic_store_ssbo: case nir_intrinsic_ssbo_atomic: case nir_intrinsic_ssbo_atomic_swap: - case nir_intrinsic_ssbo_atomic_add: - case nir_intrinsic_ssbo_atomic_imin: - case nir_intrinsic_ssbo_atomic_umin: - case nir_intrinsic_ssbo_atomic_imax: - case nir_intrinsic_ssbo_atomic_umax: - case nir_intrinsic_ssbo_atomic_and: - case nir_intrinsic_ssbo_atomic_or: - case nir_intrinsic_ssbo_atomic_xor: - case nir_intrinsic_ssbo_atomic_exchange: - case nir_intrinsic_ssbo_atomic_comp_swap: - case nir_intrinsic_ssbo_atomic_fadd: - case nir_intrinsic_ssbo_atomic_fmin: - case nir_intrinsic_ssbo_atomic_fmax: - case nir_intrinsic_ssbo_atomic_fcomp_swap: return true; default: @@ -68,21 +54,6 @@ is_image_intrinsic(nir_intrinsic_instr *intrin) case nir_intrinsic_image_store: case nir_intrinsic_image_atomic: case nir_intrinsic_image_atomic_swap: - case nir_intrinsic_image_atomic_add: - case nir_intrinsic_image_atomic_imin: - case nir_intrinsic_image_atomic_umin: - case nir_intrinsic_image_atomic_imax: - case nir_intrinsic_image_atomic_umax: - case nir_intrinsic_image_atomic_and: - case nir_intrinsic_image_atomic_or: - case nir_intrinsic_image_atomic_xor: - case nir_intrinsic_image_atomic_exchange: - case nir_intrinsic_image_atomic_comp_swap: - case nir_intrinsic_image_atomic_inc_wrap: - case nir_intrinsic_image_atomic_dec_wrap: - case nir_intrinsic_image_atomic_fadd: - case nir_intrinsic_image_atomic_fmin: - case nir_intrinsic_image_atomic_fmax: case nir_intrinsic_image_size: case nir_intrinsic_image_samples: case nir_intrinsic_image_fragment_mask_load_amd: @@ -91,21 +62,6 @@ is_image_intrinsic(nir_intrinsic_instr *intrin) case nir_intrinsic_bindless_image_store: case nir_intrinsic_bindless_image_atomic: case nir_intrinsic_bindless_image_atomic_swap: - case nir_intrinsic_bindless_image_atomic_add: - case nir_intrinsic_bindless_image_atomic_imin: - case nir_intrinsic_bindless_image_atomic_umin: - case nir_intrinsic_bindless_image_atomic_imax: - case nir_intrinsic_bindless_image_atomic_umax: - case nir_intrinsic_bindless_image_atomic_and: - case nir_intrinsic_bindless_image_atomic_or: - case nir_intrinsic_bindless_image_atomic_xor: - case nir_intrinsic_bindless_image_atomic_exchange: - case nir_intrinsic_bindless_image_atomic_comp_swap: - case nir_intrinsic_bindless_image_atomic_inc_wrap: - case nir_intrinsic_bindless_image_atomic_dec_wrap: - case nir_intrinsic_bindless_image_atomic_fadd: - case nir_intrinsic_bindless_image_atomic_fmin: - case nir_intrinsic_bindless_image_atomic_fmax: case nir_intrinsic_bindless_image_size: case nir_intrinsic_bindless_image_samples: case nir_intrinsic_bindless_image_fragment_mask_load_amd: @@ -114,21 +70,6 @@ is_image_intrinsic(nir_intrinsic_instr *intrin) case nir_intrinsic_image_deref_store: case nir_intrinsic_image_deref_atomic: case nir_intrinsic_image_deref_atomic_swap: - case nir_intrinsic_image_deref_atomic_add: - case nir_intrinsic_image_deref_atomic_umin: - case nir_intrinsic_image_deref_atomic_imin: - case nir_intrinsic_image_deref_atomic_umax: - case nir_intrinsic_image_deref_atomic_imax: - case nir_intrinsic_image_deref_atomic_and: - case nir_intrinsic_image_deref_atomic_or: - case nir_intrinsic_image_deref_atomic_xor: - case nir_intrinsic_image_deref_atomic_exchange: - case nir_intrinsic_image_deref_atomic_comp_swap: - case nir_intrinsic_image_deref_atomic_inc_wrap: - case nir_intrinsic_image_deref_atomic_dec_wrap: - case nir_intrinsic_image_deref_atomic_fadd: - case nir_intrinsic_image_deref_atomic_fmin: - case nir_intrinsic_image_deref_atomic_fmax: case nir_intrinsic_image_deref_size: case nir_intrinsic_image_deref_samples: case nir_intrinsic_image_deref_fragment_mask_load_amd: |