From: Paul Berry Date: Tue, 23 Aug 2011 17:26:15 +0000 (-0700) Subject: i965: new VS: move NDC computation (GEN4-5) to a separate function. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f86d1976f81811aec0a555946e263295ed1403db;p=mesa.git i965: new VS: move NDC computation (GEN4-5) to a separate function. Reviewed-by: Eric Anholt --- diff --git a/src/mesa/drivers/dri/i965/brw_vec4.h b/src/mesa/drivers/dri/i965/brw_vec4.h index dfe9c025e82..9b932960589 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4.h +++ b/src/mesa/drivers/dri/i965/brw_vec4.h @@ -463,6 +463,7 @@ public: void emit_math2_gen4(enum opcode opcode, dst_reg dst, src_reg src0, src_reg src1); void emit_math(enum opcode opcode, dst_reg dst, src_reg src0, src_reg src1); + void emit_ndc_computation(); int emit_vue_header_gen6(int header_mrf); int emit_vue_header_gen4(int header_mrf); void emit_urb_writes(void); diff --git a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp index 71d8b395d55..3335ea246fb 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp @@ -1698,8 +1698,8 @@ vec4_visitor::visit(ir_if *ir) emit(BRW_OPCODE_ENDIF); } -int -vec4_visitor::emit_vue_header_gen4(int header_mrf) +void +vec4_visitor::emit_ndc_computation() { /* Get the position */ src_reg pos = src_reg(output_reg[VERT_RESULT_HPOS]); @@ -1719,6 +1719,12 @@ vec4_visitor::emit_vue_header_gen4(int header_mrf) ndc_xyz.writemask = WRITEMASK_XYZ; emit(MUL(ndc_xyz, pos, src_reg(ndc_w))); +} + +int +vec4_visitor::emit_vue_header_gen4(int header_mrf) +{ + emit_ndc_computation(); if ((c->prog_data.outputs_written & BITFIELD64_BIT(VERT_RESULT_PSIZ)) || c->key.nr_userclip || brw->has_negative_rhw_bug) {