mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-22 16:43:05 -05:00
The resource tracker refused a program's 33rd distinct V# with "buffer resource limit exceeded". The 32 was a recompiler constant, not a Vulkan limit: every buffer is one constant-indexed element of the guest buffers binding, which ShaderResources checks against the device's storage-buffer limits. Drop ShaderInfo::MaxBuffers and the tracker's refusal, and size the SPIR-V emitter's per-buffer offset list from the binding layout. When the user data and offsets do not fit in the push constants, they all go to the shader data buffer as before. ShaderResources counted only storage buffers against maxPerStageResources (200 on Intel UHD) and now adds the stage's sampled and storage images. agc_driver_many_buffers reads and writes 52 and 124 buffers, and agc_driver_graphics rejects buffers plus an image above the limit.