summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2011-09-06 12:32:33 -0700
committerEric Anholt <[email protected]>2011-09-20 11:28:56 -0700
commit0502db1eabad23a90d658cbf5cd65305b9e0c077 (patch)
tree2828b9295fd0c44add59b9fc28e4a272c8d74514 /src
parent65d46c96c2540f8181293c318b412446a953faef (diff)
i965/vs: Do VUE writes using the MRF file instead of hardware register.
We'll only do compute-to-MRF on accesses to this file.
Diffstat (limited to 'src')
-rw-r--r--src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp10
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 83f543f6f41..833349a1264 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
@@ -1831,13 +1831,15 @@ vec4_visitor::emit_clip_distances(struct brw_reg reg, int offset)
void
vec4_visitor::emit_urb_slot(int mrf, int vert_result)
{
- struct brw_reg reg = brw_message_reg(mrf);
+ struct brw_reg hw_reg = brw_message_reg(mrf);
+ dst_reg reg = dst_reg(MRF, mrf);
+ reg.type = BRW_REGISTER_TYPE_F;
switch (vert_result) {
case VERT_RESULT_PSIZ:
/* PSIZ is always in slot 0, and is coupled with other flags. */
current_annotation = "indices, point width, clip flags";
- emit_psiz_and_flags(reg);
+ emit_psiz_and_flags(hw_reg);
break;
case BRW_VERT_RESULT_NDC:
current_annotation = "NDC";
@@ -1850,11 +1852,11 @@ vec4_visitor::emit_urb_slot(int mrf, int vert_result)
break;
case BRW_VERT_RESULT_CLIP0:
current_annotation = "user clip distances";
- emit_clip_distances(reg, 0);
+ emit_clip_distances(hw_reg, 0);
break;
case BRW_VERT_RESULT_CLIP1:
current_annotation = "user clip distances";
- emit_clip_distances(reg, 4);
+ emit_clip_distances(hw_reg, 4);
break;
case BRW_VERT_RESULT_PAD:
/* No need to write to this slot */