Repository navigation
ShadPS4 Mindro Update 5
Uncharted Custom Build — September 25 Update
This update includes rendering, memory-management, shader-cache, video-playback and audio-decoder changes for the Uncharted-focused custom branch.
This remains a development build. Several reported problems remain unresolved, and stable 60 FPS is not guaranteed.
Rendering and upstream fixes
- Integrated upstream #5092: GPU writes through raw storage buffers now invalidate overlapping cached images, rather than limiting invalidation to formatted writes.
- Integrated upstream #5081: compatible textures differing only in power-of-two padding can reuse an existing cached image, avoiding unnecessary expansion.
- Includes the compute LDS allocation lifetime correction associated with #5070.
- Includes instruction-aware comparison-sampler handling associated with #5020.
- Includes tile-manager pipeline-key corrections that distinguish sample counts and previously conflicting pixel formats. This is not the full #5062 host-shader migration.
These changes address specific correctness problems; they do not establish that every Uncharted rendering issue is fixed.
Hair and character rendering - Retains hair-shading workarounds developed through U1, U2 and U3 testing.
- Users confirmed improvements in several tested scenes, including hair responding more naturally to sunlight.
- Coverage remains incomplete: different chapters, characters and shader variants can still behave differently.
- Facial lighting, eyes, eyelashes and facial hair may still display incorrectly in some scenes.
Texture-cache corrections - GPU-dirty images can no longer incorrectly bypass refresh solely because their CPU-side contents appear unchanged.
- Image-change detection now uses a consistent full-image hashing range.
Known limitation: these corrections did not resolve the reported brightly coloured objects appearing after cinematics. Reloading a save can temporarily clear the corruption, but this is not a permanent fix.
Memory and stability - Retains existing allocation safeguards, cache-pressure handling and resource-lifetime changes.
- Includes additional safety checks around video-frame copying and image-copy bounds.
RAM/VRAM exhaustion remains possible. This build does not guarantee a 6 GB working set or reliable operation on 4 GB GPUs.
The upstream #5047 sparse-buffer arena architecture is not included in this checkpoint.
ATRAC9 audio decoder
Added checks for: - Decoder initialization failure.
- Short input before reading a RIFF header.
- Insufficient data after header processing.
- Invalid decoded-byte counts.
- Decode failures while draining trailing audio frames.
- Format queries before successful initialization.
Error messages now include additional decoding context.
Known limitation: the reported ATRAC9 decoding errors remain unresolved. These checks improve failure handling and diagnostics; they are not a confirmed audio-playback fix.
Shader caching and performance - Retains persistent shader/pipeline-cache work.
- Identified a settings mismatch where archive mode could ignore an existing loose-file cache.
A shader cache can reduce repeated compilation, but it does not eliminate GPU synchronization waits, scene-streaming stalls or all frame-time spikes.
No verified across-the-board FPS improvement or stable 60 FPS claim is made for this update.
Remaining known issues - U3 shirt and sleeve spikes, stretching and excessive scarf deformation.
- Coloured or corrupted textures after cinematics.
- Excessive sunlight brightness in some areas.
- Incorrect face, eye and hair shading in some scenes.
- Cinematic-entry, skip and scene-transition pauses.
- ATRAC9 audio decoding errors.
- Memory-pressure crashes and uneven frame pacing.
Validation - Source compiled successfully.
- Relevant automated checks passed during development.
- Some hair improvements were confirmed through user testing.
- The latest texture-refresh and audio-guard trials did not resolve the reported symptoms.
- Full gameplay regression testing across U1, U2, U3 and all Nathan Drake Collection variants is not complete.