intel/fs: Uniformize the index in readInvocation

The index is any value provided by the shader and this can be called in
non-uniform control flow so we can't just take component 0.  Found by
inspection.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
This commit is contained in:
Jason Ekstrand
2017-09-01 22:35:43 -07:00
parent b67230de63
commit ebaee9da4a

View File

@@ -4305,7 +4305,7 @@ fs_visitor::nir_emit_intrinsic(const fs_builder &bld, nir_intrinsic_instr *instr
fs_reg tmp = bld.vgrf(value.type);
bld.exec_all().emit(SHADER_OPCODE_BROADCAST, tmp, value,
component(invocation, 0));
bld.emit_uniformize(invocation));
bld.MOV(retype(dest, BRW_REGISTER_TYPE_D),
fs_reg(component(tmp, 0)));