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:
Rhys Perry
2025-05-08 18:17:41 +01:00
committed by Marge Bot
parent cbd85acf9a
commit 171920ceed
3 changed files with 94 additions and 8 deletions
+7 -2
View File
@@ -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;
}