Mesa (master): i965/vs: Create a 'lod_type' temporary for ir->lod_info.lod- >type.
Kenneth Graunke
kwg at kemper.freedesktop.org
Fri Jan 18 19:46:53 UTC 2013
Module: Mesa
Branch: master
Commit: 56ce55d198af65d4a9de7119eb9e2417296c54ea
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=56ce55d198af65d4a9de7119eb9e2417296c54ea
Author: Kenneth Graunke <kenneth at whitecape.org>
Date: Wed Jan 16 19:08:12 2013 -0800
i965/vs: Create a 'lod_type' temporary for ir->lod_info.lod->type.
This is purely a refactor. However, in a moment, we'll want to set
lod_type to float for ir_tex, where ir->lod_info.lod is NULL.
NOTE: This is a candidate for stable branches (for the next patch).
Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Ian Romanick <idr at freedesktop.org>
---
src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp | 13 ++++++++-----
1 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
index 02feff6..594f927 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
@@ -1953,6 +1953,7 @@ vec4_visitor::visit(ir_texture *ir)
shadow_comparitor = this->result;
}
+ const glsl_type *lod_type;
src_reg lod, dPdx, dPdy;
switch (ir->op) {
case ir_txf:
@@ -1960,6 +1961,7 @@ vec4_visitor::visit(ir_texture *ir)
case ir_txs:
ir->lod_info.lod->accept(this);
lod = this->result;
+ lod_type = ir->lod_info.lod->type;
break;
case ir_txd:
ir->lod_info.grad.dPdx->accept(this);
@@ -1967,6 +1969,8 @@ vec4_visitor::visit(ir_texture *ir)
ir->lod_info.grad.dPdy->accept(this);
dPdy = this->result;
+
+ lod_type = ir->lod_info.grad.dPdx->type;
break;
case ir_tex:
case ir_txb:
@@ -2008,8 +2012,7 @@ vec4_visitor::visit(ir_texture *ir)
if (ir->op == ir_txs) {
int writemask = intel->gen == 4 ? WRITEMASK_W : WRITEMASK_X;
- emit(MOV(dst_reg(MRF, param_base, ir->lod_info.lod->type, writemask),
- lod));
+ emit(MOV(dst_reg(MRF, param_base, lod_type, writemask), lod));
} else {
int i, coord_mask = 0, zero_mask = 0;
/* Load the coordinate */
@@ -2067,12 +2070,12 @@ vec4_visitor::visit(ir_texture *ir)
mrf = param_base;
writemask = WRITEMASK_Z;
}
- emit(MOV(dst_reg(MRF, mrf, ir->lod_info.lod->type, writemask), lod));
+ emit(MOV(dst_reg(MRF, mrf, lod_type, writemask), lod));
} else if (ir->op == ir_txf) {
- emit(MOV(dst_reg(MRF, param_base, ir->lod_info.lod->type, WRITEMASK_W),
+ emit(MOV(dst_reg(MRF, param_base, lod_type, WRITEMASK_W),
lod));
} else if (ir->op == ir_txd) {
- const glsl_type *type = ir->lod_info.grad.dPdx->type;
+ const glsl_type *type = lod_type;
if (intel->gen >= 5) {
dPdx.swizzle = BRW_SWIZZLE4(SWIZZLE_X,SWIZZLE_X,SWIZZLE_Y,SWIZZLE_Y);
More information about the mesa-commit
mailing list