+ int type_size(const struct glsl_type *type);
+ bool is_high_sampler(src_reg sampler);
+
+ virtual void emit_nir_code();
+ virtual void nir_setup_inputs(nir_shader *shader);
+ virtual void nir_setup_uniforms(nir_shader *shader);
+ virtual void nir_setup_uniform(nir_variable *var);
+ virtual void nir_setup_builtin_uniform(nir_variable *var);
+ virtual void nir_setup_system_value_intrinsic(nir_intrinsic_instr *instr);
+ virtual void nir_setup_system_values(nir_shader *shader);
+ virtual void nir_emit_impl(nir_function_impl *impl);
+ virtual void nir_emit_cf_list(exec_list *list);
+ virtual void nir_emit_if(nir_if *if_stmt);
+ virtual void nir_emit_loop(nir_loop *loop);
+ virtual void nir_emit_block(nir_block *block);
+ virtual void nir_emit_instr(nir_instr *instr);
+ virtual void nir_emit_load_const(nir_load_const_instr *instr);
+ virtual void nir_emit_intrinsic(nir_intrinsic_instr *instr);
+ virtual void nir_emit_alu(nir_alu_instr *instr);
+ virtual void nir_emit_jump(nir_jump_instr *instr);
+ virtual void nir_emit_texture(nir_tex_instr *instr);
+
+ dst_reg get_nir_dest(nir_dest dest, enum brw_reg_type type);
+ dst_reg get_nir_dest(nir_dest dest, nir_alu_type type);
+ dst_reg get_nir_dest(nir_dest dest);
+ src_reg get_nir_src(nir_src src, enum brw_reg_type type,
+ unsigned num_components = 4);
+ src_reg get_nir_src(nir_src src, nir_alu_type type,
+ unsigned num_components = 4);
+ src_reg get_nir_src(nir_src src,
+ unsigned num_components = 4);
+
+ virtual dst_reg *make_reg_for_system_value(int location,
+ const glsl_type *type) = 0;
+
+ dst_reg *nir_locals;
+ dst_reg *nir_ssa_values;
+ src_reg *nir_inputs;
+ unsigned *nir_uniform_driver_location;
+ dst_reg *nir_system_values;
+