From 8f9a339c10c6a0904c0fbdfdcc7a65696d7246e9 Mon Sep 17 00:00:00 2001 From: Paul Berry Date: Sat, 31 Aug 2013 20:40:47 -0700 Subject: [PATCH] i965/vs: Move vs-specific code out of brw_vec4.h. Now brw_vec4.h contains only code that is shared between the vertex and geometry shaders. Acked-by: Kenneth Graunke --- src/mesa/drivers/dri/i965/brw_vec4.h | 32 ----------------------- src/mesa/drivers/dri/i965/brw_vs.h | 38 ++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 32 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_vec4.h b/src/mesa/drivers/dri/i965/brw_vec4.h index e9701629340..8cb884f8f2d 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4.h +++ b/src/mesa/drivers/dri/i965/brw_vec4.h @@ -43,8 +43,6 @@ extern "C" { #include "glsl/ir.h" -struct brw_vs_compile; - struct brw_vec4_compile { GLuint last_scratch; /**< measured in 32-byte (register size) units */ @@ -552,36 +550,6 @@ protected: const bool debug_flag; }; -class vec4_vs_visitor : public vec4_visitor -{ -public: - vec4_vs_visitor(struct brw_context *brw, - struct brw_vs_compile *vs_compile, - struct brw_vs_prog_data *vs_prog_data, - struct gl_shader_program *prog, - struct brw_shader *shader, - void *mem_ctx); - -protected: - virtual dst_reg *make_reg_for_system_value(ir_variable *ir); - virtual void setup_payload(); - virtual void emit_prolog(); - virtual void emit_program_code(); - virtual void emit_thread_end(); - virtual void emit_urb_write_header(int mrf); - virtual vec4_instruction *emit_urb_write_opcode(bool complete); - -private: - int setup_attributes(int payload_reg); - void setup_vp_regs(); - dst_reg get_vp_dst_reg(const prog_dst_register &dst); - src_reg get_vp_src_reg(const prog_src_register &src); - - struct brw_vs_compile * const vs_compile; - struct brw_vs_prog_data * const vs_prog_data; - src_reg *vp_temp_regs; - src_reg vp_addr_reg; -}; /** * The vertex shader code generator. diff --git a/src/mesa/drivers/dri/i965/brw_vs.h b/src/mesa/drivers/dri/i965/brw_vs.h index 90c96b607ce..747ba6caa72 100644 --- a/src/mesa/drivers/dri/i965/brw_vs.h +++ b/src/mesa/drivers/dri/i965/brw_vs.h @@ -99,6 +99,44 @@ void brw_vs_prog_data_free(const void *in_prog_data); #ifdef __cplusplus } /* extern "C" */ + + +namespace brw { + +class vec4_vs_visitor : public vec4_visitor +{ +public: + vec4_vs_visitor(struct brw_context *brw, + struct brw_vs_compile *vs_compile, + struct brw_vs_prog_data *vs_prog_data, + struct gl_shader_program *prog, + struct brw_shader *shader, + void *mem_ctx); + +protected: + virtual dst_reg *make_reg_for_system_value(ir_variable *ir); + virtual void setup_payload(); + virtual void emit_prolog(); + virtual void emit_program_code(); + virtual void emit_thread_end(); + virtual void emit_urb_write_header(int mrf); + virtual vec4_instruction *emit_urb_write_opcode(bool complete); + +private: + int setup_attributes(int payload_reg); + void setup_vp_regs(); + dst_reg get_vp_dst_reg(const prog_dst_register &dst); + src_reg get_vp_src_reg(const prog_src_register &src); + + struct brw_vs_compile * const vs_compile; + struct brw_vs_prog_data * const vs_prog_data; + src_reg *vp_temp_regs; + src_reg vp_addr_reg; +}; + +} /* namespace brw */ + + #endif #endif -- 2.30.2