Kenneth Graunke <[email protected]> writes: > On Tuesday, February 27, 2018 1:38:25 PM PST Francisco Jerez wrote: >> This shouldn't cause any functional change at this point, it changes >> SHADER_OPCODE_FIND_LIVE_CHANNEL to use the flag register specified at >> the IR level instead of the hard-coded f1.0, now that it can be >> represented in backend_instruction::flag_subreg. This will be >> necessary for scheduling to behave correctly once more things start >> making use of f1.0. >> --- >> src/intel/compiler/brw_eu_emit.c | 5 +++-- >> src/intel/compiler/brw_fs.cpp | 3 ++- >> src/intel/compiler/brw_fs_builder.h | 2 +- >> 3 files changed, 6 insertions(+), 4 deletions(-) >> >> diff --git a/src/intel/compiler/brw_fs.cpp b/src/intel/compiler/brw_fs.cpp >> index 6c86b1592fd..0b87d8ab14e 100644 >> --- a/src/intel/compiler/brw_fs.cpp >> +++ b/src/intel/compiler/brw_fs.cpp >> @@ -931,7 +931,8 @@ fs_inst::flags_written() const >> if ((conditional_mod && (opcode != BRW_OPCODE_SEL && >> opcode != BRW_OPCODE_IF && >> opcode != BRW_OPCODE_WHILE)) || >> - opcode == FS_OPCODE_MOV_DISPATCH_TO_FLAGS) { >> + opcode == FS_OPCODE_MOV_DISPATCH_TO_FLAGS || >> + opcode == SHADER_OPCODE_FIND_LIVE_CHANNEL) { > > Looks like an unrelated fix? It's probably fine here though. >
The purpose of this change is to make the flag write visible to the
scheduler, because with this patch we start specifying the flag
subregister that is to be used as scratch predicate internally by
SHADER_OPCODE_FIND_LIVE_CHANNEL as backend_instruction::flag_subreg, but
because SHADER_OPCODE_FIND_LIVE_CHANNEL shouldn't ever have a predicate
nor a conditional mod, the instruction wouldn't be considered to write
the flag register if it wasn't because of this change.
>> return flag_mask(this);
>> } else {
>> return flag_mask(dst, size_written);
signature.asc
Description: PGP signature
_______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
