[Mesa-dev] [PATCH V2 2/7] i965: vs: Add fixup for textureSize with cube array samplers
Chris Forbes
chrisf at ijw.co.nz
Wed Nov 28 12:08:26 PST 2012
Signed-off-by: Chris Forbes <chrisf at ijw.co.nz>
---
src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
index edb66ea..59b6758 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
@@ -2124,6 +2124,17 @@ vec4_visitor::visit(ir_texture *ir)
emit(inst);
+ /* fixup num layers (z) for cube arrays: hardware returns faces * layers;
+ * spec requires layers. */
+ if (ir->op == ir_txs) {
+ glsl_type const * type = ir->sampler->variable_referenced()->type;
+ if (type->sampler_dimensionality == GLSL_SAMPLER_DIM_CUBE &&
+ type->sampler_array)
+ emit_math(SHADER_OPCODE_INT_QUOTIENT,
+ with_writemask(inst->dst, WRITEMASK_Z),
+ src_reg(inst->dst), src_reg(6));
+ }
+
swizzle_result(ir, src_reg(inst->dst), sampler);
}
--
1.8.0.1
More information about the mesa-dev
mailing list