Module: Mesa Branch: master Commit: 0a811e1d1e5b23ecefda3f4569f68198e2612f3f URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0a811e1d1e5b23ecefda3f4569f68198e2612f3f
Author: Iago Toral Quiroga <[email protected]> Date: Fri Feb 13 08:29:32 2015 +0100 i965: Fix a crash in the texture gradient lowering pass with cube samplers We need to swizzle the rhs to match the number of components in the writemask, otherwise we'll hit an assertion in ir_assignment. Reviewed-by: Ian Romanick <[email protected]> --- src/mesa/drivers/dri/i965/brw_lower_texture_gradients.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/mesa/drivers/dri/i965/brw_lower_texture_gradients.cpp b/src/mesa/drivers/dri/i965/brw_lower_texture_gradients.cpp index 9679d28..0424003 100644 --- a/src/mesa/drivers/dri/i965/brw_lower_texture_gradients.cpp +++ b/src/mesa/drivers/dri/i965/brw_lower_texture_gradients.cpp @@ -124,7 +124,9 @@ lower_texture_grad_visitor::visit_leave(ir_texture *ir) new(mem_ctx) ir_variable(grad_type, "size", ir_var_temporary); if (ir->sampler->type->sampler_dimensionality == GLSL_SAMPLER_DIM_CUBE) { base_ir->insert_before(size); - base_ir->insert_before(assign(size, expr(ir_unop_i2f, txs), WRITEMASK_XY)); + base_ir->insert_before(assign(size, + swizzle_for_size(expr(ir_unop_i2f, txs), 2), + WRITEMASK_XY)); base_ir->insert_before(assign(size, new(mem_ctx) ir_constant(1.0f), WRITEMASK_Z)); } else { emit(size, expr(ir_unop_i2f, _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
