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