diff options
| author | Takoroka <137927095+Takoroka@users.noreply.github.com> | 2026-10-29 02:06:56 -0400 |
|---|---|---|
| committer | Takoroka <137927095+Takoroka@users.noreply.github.com> | 2026-10-29 02:06:56 -0400 |
| commit | 0380b0628d4be15fb3eec4e32585c39e507c3851 (patch) | |
| tree | 731ccf6e7e7ec389dc82f67e312233ae62202dad /src/video_core/gpu_thread.cpp | |
| parent | 9deafb484abc0c286a78b48bd52830c652687339 (diff) | |
shader_recompiler: linear-time breadth-first search; cache storage buffer tracking
Translating title 1's 28,102-instruction compute shader took 3.4 s on
the GPU thread (a freeze the first time it runs), three quarters of it
in GlobalMemoryToStorageBufferPass:
- BreadthFirstSearch checked "visited" with a linear scan per argument,
quadratic once a search walks thousands of instructions; past 64 it
now uses a hash set (same visit order, same result).
- The pass searched again for every global memory access; accesses
through the same address now share the result (the IR does not
change while storage buffers are collected).
That shader now takes 0.85 s; other new pipelines also cost less.
Diffstat (limited to 'src/video_core/gpu_thread.cpp')
0 files changed, 0 insertions, 0 deletions
