mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 15:20:10 +01:00
aco: don't move acquire barriers before interlock begin
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Georg Lehmann <dadschoorse@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36491>
This commit is contained in:
parent
0ee1c137f9
commit
21332609b9
2 changed files with 7 additions and 1 deletions
|
|
@ -293,6 +293,11 @@ is_atomic_or_control_instr(Program* program, const Instruction* instr, memory_sy
|
|||
}
|
||||
|
||||
uint16_t cls = BITFIELD_MASK(storage_count);
|
||||
if (is_acquire) {
|
||||
if (is_wait_export_ready(program->gfx_level, instr) ||
|
||||
instr->opcode == aco_opcode::p_pops_gfx9_add_exiting_wave_id)
|
||||
return cls & ~storage_shared;
|
||||
}
|
||||
if (is_release) {
|
||||
if (is_done_sendmsg(program->gfx_level, instr) ||
|
||||
is_pos_prim_export(program->gfx_level, instr))
|
||||
|
|
|
|||
|
|
@ -64,7 +64,8 @@ enum memory_semantics : uint8_t {
|
|||
semantic_none = 0x0,
|
||||
/* for loads: don't move any access after this load to before this load (even other loads)
|
||||
* for barriers: don't move any access after the barrier to before any
|
||||
* atomic_loads/control_barriers before the barrier */
|
||||
* atomic_loads/control_barriers/p_pops_gfx9_add_exiting_wave_id or
|
||||
* certain s_wait_event before the barrier */
|
||||
semantic_acquire = 0x1,
|
||||
/* for stores: don't move any access before this store to after this store
|
||||
* for barriers: don't move any access before the barrier to after any
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue