AnyPS5/core/libs/prx/libSceAgcDriver/Execution/include
XairRrR 94cffec3a7 perf(agc-driver): prepare shader ABI variants before taking the preparation lock
A shader preparation transaction took the global writers lock when it
was constructed and kept it to its end. ResolveShaderAbi, reached from
sceAgcCreateInterpolantMapping and sceAgcLinkShaders, compiled its
variants inside such a transaction, so every game thread creating or
linking shaders waited behind one compile: Uncharted's stalled frames
spent about half a second each in shader registration.

The root transaction now takes the lock on its first Read, Edit or
Hold. ResolveShaderAbi prepares the variants before reading the
prepared state when its ABI was not committed yet. Registry
publication holds the lock as before: PublishRegisteredShader holds
it, and RegisterShader holds it before the driver mutex, so the lock
order is unchanged. Commit takes no lock: a transaction with changes
already holds it.
2026-10-11 14:54:48 +02:00
..
Driver fix(agc): select the registered back half for a fused hull header 2026-10-11 12:36:01 +02:00
AspectFit.hpp feat(video): add resizable aspect-ratio-aware window 2026-09-23 14:27:47 +03:00
BdaFeatures.hpp feat(shader): implement checked BDA reads and GPU fault reporting 2026-09-21 19:26:09 +03:00
CaptureTrace.hpp debug(agc): detect gpu input buffer changes between recording and execution 2026-09-28 13:27:14 +03:00
DisplayBuffer.hpp feat(agc): present 16-bit float display buffers 2026-10-11 00:38:12 +02:00
DisplayFormat.hpp feat(agc): present 16-bit float display buffers 2026-10-11 00:38:12 +02:00
Driver.hpp feat(agc): opt-in raised priority for the queue workers and the presenter 2026-10-10 04:13:57 -06:00
FragmentBarycentric.hpp fix(agc): do not use fragment barycentric on MoltenVK 2026-10-08 17:31:20 +02:00
GuestMemory.hpp perf(memory): write tracked direct memory through backing views 2026-10-10 00:53:29 +02:00
MemoryAccessScope.hpp perf(agc): keep render targets on gpu across draws 2026-09-24 21:30:00 +03:00
PerformanceTimer.hpp perf(shader): cache registered state + reduce preparation transaction overhead 2026-10-08 17:37:03 +03:00
PipelineLinkOptimization.hpp fix(agc): skip the background pipeline relink on NVIDIA's proprietary driver 2026-10-11 12:44:46 +02:00
Pm4.hpp fix(agc): depth fast clears through the HTILE metadata 2026-10-11 10:19:53 +02:00
Pm4Opcodes.hpp feat(libSceAgcDriver): execute COND_WRITE 2026-10-06 18:06:22 -03:00
Presentation.hpp fix(videoout): create the window and the device when VideoOut starts 2026-10-08 05:54:05 +05:30
PresentationScaler.hpp feat(agc): present DCC display buffers whose keys are uncompressed or fast-cleared 2026-10-05 23:45:15 +02:00
ProfileOutput.hpp Merge pull request #1549 from LeandroLP23/fix/gcc-warnings 2026-10-10 17:39:38 +13:00
QueueState.hpp Merge pull request #3420 from gookie-dev/perf/agc-lazy-constant-ram 2026-10-11 12:23:06 +02:00
Recipe.hpp perf(agc): dispatch and draw recipes, data-only cache hits, unit shadows, bindless image tables 2026-09-26 19:00:40 -07:00
ShaderDeviceProfile.hpp feat(shader): add fixed runtime abi + typed descriptor heaps 2026-10-08 17:26:04 +03:00
ShaderMemory.hpp feat(agc): implement deferred faults for reads through null SRT pointers 2026-10-09 00:20:59 +02:00
ShaderPreparation.hpp perf(agc-driver): prepare shader ABI variants before taking the preparation lock 2026-10-11 14:54:48 +02:00
ShaderPreparationScope.hpp fix(agc): use nid postfix for shader preparation transactions exports 2026-10-08 17:28:31 +03:00
SubgroupClock.hpp fix(agc): detect narrow clock on tested AMD device 2026-10-09 22:02:13 +00:00
ThreadPriority.hpp test(agc): unit-test APS5_THREAD_PRIORITY parsing and the RLIMIT_RTTIME plan 2026-10-10 04:14:02 -06:00
VideoOutput.hpp style: drop the branch's code comments per CONVENTIONS.md 2026-09-29 21:25:29 +03:00
VulkanDevice.hpp fix(agc): split a compute dispatch over the workgroup count limit 2026-10-11 05:58:29 -05:00
WorkerSampler.hpp fix(kernel): orderly shutdown when closing the display window 2026-09-28 18:30:34 +03:00
WriteWatchCoverage.hpp fix(memory): restore write tracking for fresh private backing 2026-10-08 15:32:42 +02:00