Fixes glsl-vs-point-size. --- src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp index 22f8763..f33442b 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp @@ -1742,14 +1742,15 @@ vec4_visitor::emit_vue_header_gen4(int header_mrf) emit(MOV(header1, 0u)); if (c->prog_data.outputs_written & BITFIELD64_BIT(VERT_RESULT_PSIZ)) { - assert(!"finishme: psiz"); - src_reg psiz; + src_reg psiz = src_reg(output_reg[VERT_RESULT_PSIZ]); + current_annotation = "Point size"; header1.writemask = WRITEMASK_W; - emit(MUL(header1, psiz, 1u << 11)); + emit(MUL(header1, psiz, src_reg((float)(1 << 11)))); emit(AND(header1, src_reg(header1), 0x7ff << 8)); } + current_annotation = "Clipping flags"; for (i = 0; i < c->key.nr_userclip; i++) { vec4_instruction *inst; @@ -1785,7 +1786,8 @@ vec4_visitor::emit_vue_header_gen4(int header_mrf) } header1.writemask = WRITEMASK_XYZW; - emit(MOV(brw_message_reg(header_mrf++), src_reg(header1))); + emit(MOV(retype(brw_message_reg(header_mrf++), + BRW_REGISTER_TYPE_UD), src_reg(header1))); } else { emit(MOV(retype(brw_message_reg(header_mrf++), BRW_REGISTER_TYPE_UD), 0u)); -- 1.7.5.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev