mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 09:08:10 +02:00
intel/fs: Retype dest to match value in read[First]Invocation
This is what we really wanted all along. Always retyping to D works because that's what get_nir_src() always gives us, at least for 32-bit types. The SPIR-V variants of these operations accept arbitrary types and we need this if we're going to handle 64 or 16-bit values. Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
This commit is contained in:
parent
ebaee9da4a
commit
103081c9a9
1 changed files with 2 additions and 4 deletions
|
|
@ -4307,15 +4307,13 @@ fs_visitor::nir_emit_intrinsic(const fs_builder &bld, nir_intrinsic_instr *instr
|
|||
bld.exec_all().emit(SHADER_OPCODE_BROADCAST, tmp, value,
|
||||
bld.emit_uniformize(invocation));
|
||||
|
||||
bld.MOV(retype(dest, BRW_REGISTER_TYPE_D),
|
||||
fs_reg(component(tmp, 0)));
|
||||
bld.MOV(retype(dest, value.type), fs_reg(component(tmp, 0)));
|
||||
break;
|
||||
}
|
||||
|
||||
case nir_intrinsic_read_first_invocation: {
|
||||
const fs_reg value = get_nir_src(instr->src[0]);
|
||||
bld.MOV(retype(dest, BRW_REGISTER_TYPE_D),
|
||||
bld.emit_uniformize(value));
|
||||
bld.MOV(retype(dest, value.type), bld.emit_uniformize(value));
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue