This repository was archived by the owner on Oct 28, 2026. It is now read-only.
Repository navigation
Conversation
…y as reused memory Engines alias transient targets, so a compute pass can bind a storage image over memory that a depth surface used before: Taxi Chaos 2 binds a 2048x2048 R11G11B10 storage image at the address of a 512x512 D32S8 surface in its first menu frame. cachedStorageTexture refused any storage view whose address matched a depth or stencil plane and the frame aborted with "storage image access to depth/stencil surface ... is not implemented". A storage view with another extent than the depth surface at its address is now memory reuse and takes the ordinary storage path, as boykopovar#1495 does for sampled views. A view with the surface's own extent keeps throwing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
agc_driver_depth_surface_storage_reuse registers a 128x128 D16 surface on a Vulkan device and looks up storage images at its address. A 512x1024 R32F view is made as an ordinary storage image; a 128x128 R32F view still throws "storage image access to depth/stencil surface". With the address-only check the first lookup throws. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Owner
Author
|
Covered by boykopovar#2904, which handles the other extent and the format. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Taxi Chaos 2 (PPSA30279 v01.007.000, Unreal Engine) ends in its first menu frame:
The compute pass binds a 2048x2048 R11G11B10 storage image at the address of a 512x512 D32S8 surface the title rendered earlier. Engines alias transient targets, so this is the memory being reused, not a storage view of the depth plane.
cachedStorageTexturerefused every storage view whose address matched a depth or stencil plane.A storage view whose extent differs from the newest depth surface at its address (same device) now takes the ordinary storage path. That is the rule boykopovar#1495 applies to sampled views. A view with the surface's own extent keeps throwing, as before.
The same shape is reported for 007 First Light in boykopovar#2523: a 512x1024 R16G16B16A16_SFLOAT storage view over a 128x128 D16 surface. A 128x128 R32_SFLOAT view of that surface, also reported there, has the surface's extent and still throws.
Related:
SeedStorageFromDepth. The two change the same lines incachedStorageTextureandDepthSurface.cpp.Tested
Windows 11, WinLibs GCC 15.2.0 r7, Ninja Release, RTX 5070 Laptop (NVIDIA 616.92).
agc_driver_depth_surface_storage_reuse(Vulkan): on a 128x128 D16 surface, a 512x1024 R32F storage view at its address is made as an ordinary storage image, and a 128x128 R32F view still throws. With the source change reverted, it fails with the original error:storage image access to depth/stencil surface 0x13cc4de0000 is not implemented.agc_driver_graphics,agc_driver_depth_bias_per_face,agc_driver_pending_exact_surface,agc_driver_prepared_graphics,agc_driver_cmask_fast_clear,agc_pass_hazards): 6/6.check_conventions.pypasses.ANYPS5_GPU=AMD) and fix(libkernel): map direct memory as write-watched private pages until it is aliased boykopovar/AnyPS5#2054 applied: the change gets the title past the stop above to the depth-cube sample feat(agc): depth planes sampled as 2D arrays, cubes and integer views boykopovar/AnyPS5#425 covers. That run used a local build with other patches, not this branch.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed in TechnicalDebt.mdfiles or images added to the repository🤖 Generated with Claude Code