• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef TCSSHADERFROMNIR_H
2 #define TCSSHADERFROMNIR_H
3 
4 #include "sfn_shader_base.h"
5 
6 namespace r600 {
7 
8 class TcsShaderFromNir : public ShaderFromNirProcessor
9 {
10 public:
11    TcsShaderFromNir(r600_pipe_shader *sh, r600_pipe_shader_selector& sel, const r600_shader_key& key, enum chip_class chip_class);
12    bool scan_sysvalue_access(nir_instr *instr) override;
13 
14 private:
15    bool do_allocate_reserved_registers() override;
16    bool emit_intrinsic_instruction_override(nir_intrinsic_instr* instr) override;
17    bool store_tess_factor(nir_intrinsic_instr* instr);
18 
do_process_inputs(nir_variable * input)19    bool do_process_inputs(nir_variable *input) override { return true;}
20    bool do_process_outputs(nir_variable *output) override;
do_emit_load_deref(const nir_variable * in_var,nir_intrinsic_instr * instr)21    bool do_emit_load_deref(const nir_variable *in_var, nir_intrinsic_instr* instr) override { return true;}
do_emit_store_deref(const nir_variable * out_var,nir_intrinsic_instr * instr)22    bool do_emit_store_deref(const nir_variable *out_var, nir_intrinsic_instr* instr) override { return true;}
do_finalize()23    void do_finalize() override {}
24 
25    int m_reserved_registers;
26    PValue m_patch_id;
27    PValue m_rel_patch_id;
28    PValue m_invocation_id;
29    PValue m_primitive_id;
30    PValue m_tess_factor_base;
31 
32 
33 };
34 
35 }
36 
37 #endif // TCSSHADERFROMNIR_H
38