glsl: remove interpolateAt* instructions for demoted inputs

This fixes 8 fs-interpolateat* piglit crashes on radeonsi, because it can't
handle non-input operands in interpolateAt*.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
Marek Olšák
2016-09-09 02:04:00 +02:00
parent d58a3906cb
commit ae0a4a1299
2 changed files with 15 additions and 0 deletions

View File

@@ -961,6 +961,16 @@ ir_algebraic_visitor::handle_expression(ir_expression *ir)
return ir->operands[2];
break;
/* Remove interpolateAt* instructions for demoted inputs. They are
* assigned a constant expression to facilitate this.
*/
case ir_unop_interpolate_at_centroid:
case ir_binop_interpolate_at_offset:
case ir_binop_interpolate_at_sample:
if (op_const[0])
return ir->operands[0];
break;
default:
break;
}