1 #ifndef SFN_EMITSSBOINSTRUCTION_H
2 #define SFN_EMITSSBOINSTRUCTION_H
4 #include "sfn_emitinstruction.h"
8 class EmitSSBOInstruction
: public EmitInstruction
{
10 using EmitInstruction::EmitInstruction
;
12 bool do_emit(nir_instr
*instr
);
14 bool emit_atomic(const nir_intrinsic_instr
* instr
);
15 bool emit_unary_atomic(const nir_intrinsic_instr
* instr
);
16 bool emit_atomic_add(const nir_intrinsic_instr
* instr
);
17 bool emit_atomic_inc(const nir_intrinsic_instr
* instr
);
18 bool emit_atomic_pre_dec(const nir_intrinsic_instr
* instr
);
20 bool emit_load_ssbo(const nir_intrinsic_instr
* instr
);
21 bool emit_store_ssbo(const nir_intrinsic_instr
* instr
);
22 ESDOp
get_opcode(nir_intrinsic_op opcode
);
24 GPRVector
make_dest(const nir_intrinsic_instr
* instr
);
26 PValue m_atomic_limit
;
31 #endif // SFN_EMITSSBOINSTRUCTION_H