mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 19:30:11 +01:00
nir: Drop nir_lower_legacy_atomics
No more users. Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Reviewed-by: Emma Anholt <emma@anholt.net> Reviewed-by: Jesse Natalie <jenatali@microsoft.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23036>
This commit is contained in:
parent
c323762f9f
commit
0a4c31003d
3 changed files with 0 additions and 88 deletions
|
|
@ -163,7 +163,6 @@ files_libnir = files(
|
|||
'nir_lower_goto_ifs.c',
|
||||
'nir_lower_gs_intrinsics.c',
|
||||
'nir_lower_helper_writes.c',
|
||||
'nir_lower_legacy_atomics.c',
|
||||
'nir_lower_load_const_to_scalar.c',
|
||||
'nir_lower_locals_to_regs.c',
|
||||
'nir_lower_idiv.c',
|
||||
|
|
|
|||
|
|
@ -5639,7 +5639,6 @@ typedef struct nir_lower_bitmap_options {
|
|||
void nir_lower_bitmap(nir_shader *shader, const nir_lower_bitmap_options *options);
|
||||
|
||||
bool nir_lower_atomics_to_ssbo(nir_shader *shader, unsigned offset_align_state);
|
||||
bool nir_lower_legacy_atomics(nir_shader *shader);
|
||||
|
||||
typedef enum {
|
||||
nir_lower_int_source_mods = 1 << 0,
|
||||
|
|
|
|||
|
|
@ -1,86 +0,0 @@
|
|||
/*
|
||||
* Copyright 2023 Valve Corporation
|
||||
* Copyright 2023 Collabora, Ltd.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include "compiler/nir/nir_builder.h"
|
||||
|
||||
static bool
|
||||
get_atomic_op(const nir_intrinsic_instr *atomic, nir_intrinsic_op *out_intr,
|
||||
nir_atomic_op *out_op)
|
||||
{
|
||||
#define CASE(prefix, suffix, atom, op, swap) \
|
||||
case nir_intrinsic_##prefix##_atomic_##atom##suffix: \
|
||||
*out_op = nir_atomic_op_##op; \
|
||||
*out_intr = swap ? nir_intrinsic_##prefix##_atomic_swap##suffix : \
|
||||
nir_intrinsic_##prefix##_atomic##suffix; \
|
||||
return true;
|
||||
|
||||
#define CASES_NO_IMAGE(atom, op, swap) \
|
||||
CASE(deref,, atom, op, swap) \
|
||||
CASE(ssbo,, atom, op, swap) \
|
||||
CASE(shared,, atom, op, swap) \
|
||||
CASE(task_payload,, atom, op, swap) \
|
||||
CASE(global,, atom, op, swap) \
|
||||
CASE(global, _2x32, atom, op, swap) \
|
||||
CASE(global, _amd, atom, op, swap)
|
||||
|
||||
#define CASES_IMAGE(atom, op, swap) \
|
||||
CASE(image,, atom, op, swap) \
|
||||
CASE(image_deref,, atom, op, swap) \
|
||||
CASE(bindless_image,, atom, op, swap)
|
||||
|
||||
#define CASES(atom, op, swap) \
|
||||
CASES_NO_IMAGE(atom, op, swap) \
|
||||
CASES_IMAGE(atom, op, swap) \
|
||||
|
||||
switch (atomic->intrinsic) {
|
||||
CASES(add, iadd, false);
|
||||
CASES(imin, imin, false);
|
||||
CASES(umin, umin, false);
|
||||
CASES(imax, imax, false);
|
||||
CASES(umax, umax, false);
|
||||
CASES(and, iand, false);
|
||||
CASES(or, ior, false);
|
||||
CASES(xor, ixor, false);
|
||||
CASES(exchange, xchg, false);
|
||||
CASES(fadd, fadd, false);
|
||||
CASES(fmin, fmin, false);
|
||||
CASES(fmax, fmax, false);
|
||||
CASES(comp_swap, cmpxchg, true);
|
||||
CASES_NO_IMAGE(fcomp_swap, fcmpxchg, true);
|
||||
CASES_IMAGE(inc_wrap, inc_wrap, false);
|
||||
CASES_IMAGE(dec_wrap, dec_wrap, false);
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
#undef CASE
|
||||
#undef CASES_NO_IMAGE
|
||||
#undef CASES
|
||||
}
|
||||
|
||||
static bool
|
||||
pass(nir_builder *b, nir_instr *instr, UNUSED void *data)
|
||||
{
|
||||
if (instr->type != nir_instr_type_intrinsic)
|
||||
return false;
|
||||
|
||||
nir_intrinsic_instr *intr = nir_instr_as_intrinsic(instr);
|
||||
nir_intrinsic_op intr_op;
|
||||
nir_atomic_op op;
|
||||
if (!get_atomic_op(intr, &intr_op, &op))
|
||||
return false;
|
||||
|
||||
intr->intrinsic = intr_op;
|
||||
nir_intrinsic_set_atomic_op(intr, op);
|
||||
return false;
|
||||
}
|
||||
|
||||
bool
|
||||
nir_lower_legacy_atomics(nir_shader *shader)
|
||||
{
|
||||
return nir_shader_instructions_pass(
|
||||
shader, pass, nir_metadata_block_index | nir_metadata_dominance, NULL);
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue