aco/gfx115: consider point sample acceleration
Like 15428e0d786939a5c7629a9978947c8a9112ce96 in LLVM. fossil-db (gfx1150): Totals from 909 (1.14% of 79653) affected shaders: Instrs: 5840489 -> 5840705 (+0.00%); split: -0.00%, +0.00% CodeSize: 31133460 -> 31134296 (+0.00%); split: -0.00%, +0.00% Latency: 52982280 -> 53438577 (+0.86%); split: -0.00%, +0.86% InvThroughput: 10841454 -> 10942682 (+0.93%); split: -0.00%, +0.93% Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Backport-to: 25.0 Reviewed-by: Georg Lehmann <dadschoorse@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34935>
This commit is contained in:
@@ -287,8 +287,13 @@ check_instr(wait_ctx& ctx, wait_imm& wait, Instruction* instr)
|
||||
if (vmem_type && ctx.gfx_level < GFX12) {
|
||||
wait_event event = get_vmem_event(ctx, instr, vmem_type);
|
||||
wait_type type = (wait_type)(ffs(ctx.info->get_counters_for_event(event)) - 1);
|
||||
if ((it->second.events & ctx.info->events[type]) == event &&
|
||||
(type != wait_type_vm || it->second.vmem_types == vmem_type))
|
||||
|
||||
bool event_matches = (it->second.events & ctx.info->events[type]) == event;
|
||||
/* wait_type_vm/counter_vm can have several different vmem_types */
|
||||
bool type_matches = type != wait_type_vm || (it->second.vmem_types == vmem_type &&
|
||||
util_bitcount(vmem_type) == 1);
|
||||
|
||||
if (event_matches && type_matches)
|
||||
reg_imm[type] = wait_imm::unset_counter;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user