r600/sfn: Add support for texture_samples
[mesa.git] / src / gallium / drivers / r600 / sfn / sfn_emitssboinstruction.h
1 #ifndef SFN_EMITSSBOINSTRUCTION_H
2 #define SFN_EMITSSBOINSTRUCTION_H
3
4 #include "sfn_emitinstruction.h"
5
6 namespace r600 {
7
8 class EmitSSBOInstruction: public EmitInstruction {
9 public:
10 using EmitInstruction::EmitInstruction;
11 private:
12 bool do_emit(nir_instr *instr);
13
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);
19
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);
23
24 GPRVector make_dest(const nir_intrinsic_instr* instr);
25
26 PValue m_atomic_limit;
27 };
28
29 }
30
31 #endif // SFN_EMITSSBOINSTRUCTION_H