[Mesa-dev] [PATCH 10/10] i965/vs: Fix point size handling on gen4.
Eric Anholt
eric at anholt.net
Fri Sep 2 18:37:20 PDT 2011
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
More information about the mesa-dev
mailing list