mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-27 06:40:38 +02:00
i965/vec4: Only zero out unused message components when there are any.
Otherwise, coordinates with four components would result in a MOV
with a destination writemask that has no channels enabled:
mov(8) g115<1>.F 0D { align16 WE_normal NoDDChk 1Q };
At best, this is stupid: we emit code that shouldn't do anything.
Worse, it apparently causes GPU hangs (observable with Chris's
textureGather test on CubeArrays.)
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Cc: Chris Forbes <chrisf@ijw.co.nz>
Cc: mesa-stable@lists.freedesktop.org
This commit is contained in:
parent
2924b5f73b
commit
6c3db2167c
1 changed files with 4 additions and 2 deletions
|
|
@ -2245,8 +2245,10 @@ vec4_visitor::visit(ir_texture *ir)
|
|||
emit(MOV(dst_reg(MRF, param_base, ir->coordinate->type, coord_mask),
|
||||
coordinate));
|
||||
}
|
||||
emit(MOV(dst_reg(MRF, param_base, ir->coordinate->type, zero_mask),
|
||||
src_reg(0)));
|
||||
if (zero_mask != 0) {
|
||||
emit(MOV(dst_reg(MRF, param_base, ir->coordinate->type, zero_mask),
|
||||
src_reg(0)));
|
||||
}
|
||||
/* Load the shadow comparitor */
|
||||
if (ir->shadow_comparitor && ir->op != ir_txd) {
|
||||
emit(MOV(dst_reg(MRF, param_base + 1, ir->shadow_comparitor->type,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue