Skip to content

feat(agc): test the depth bounds in the pixel program when the device lacks the depthBounds feature - #11551

Open
imellag wants to merge 9 commits into
boykopovar:mainfrom
imellag:feat/agc-depth-bounds-prologue
Open

imellag wants to merge 9 commits into
boykopovar:mainfrom
imellag:feat/agc-depth-bounds-prologue

Conversation

@imellag

@imellag imellag commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

What

#9737 emulates the depth bounds test on a device without the depthBounds feature (MoltenVK has none) only when one bound is at 0 or 1 and the draw neither tests nor writes depth. Every other depth bounds draw still stops with needs the depthBounds feature. UE4 deferred lights are such draws: both bounds inside (0, 1) and a GREATER_OR_EQUAL depth test without depth writes. A local counter in Stray (PPSA02100) on macOS, on a tree with unmerged PRs, counted 54 to 417 of them per 10 s in the intro (3840x2160 D32, one sample, no stencil) and 6 to 24 per 10 s in gameplay (no depth test, both bounds inside (0, 1)).

This change tests the bounds in the pixel program for those draws. The depth bounds test passes a pixel when its stored depth Zs is within [min, max]. When the draw writes neither depth nor stencil, Zs does not change during the draw, so the pixel program can read it and do the compare itself:

  • ApplyDepthBoundsEmulation (Graphics/src/State.cpp) still prefers the one-sided depth test of feat(agc): emulate a one-sided depth bounds test without the depthBounds feature #9737. Otherwise it clears depthBoundsTest and sets depthBoundsDiscard.
  • decodeDraw passes pixel.depthBoundsDiscard to the recompiler: a flag and the T# words of a sampled view of the depth target (DepthBoundsSourceWords, the depth copy view with an identity swizzle).
  • The recompiler adds that image to the pixel program, like the color target merge image, and two fragment push dwords after the stencil reference dword (specialization constant DepthBoundsOffset). Its prologue fetches Zs at FragCoord.xy, and demotes the fragment to a helper invocation, or kills it where demote is not available, when Zs < min or Zs > max. This runs before the rest of the program, so a fragment outside the bounds has no side effects.
  • The driver writes {min, max} as floats into those dwords for every draw, next to the depth remap push.
  • When the pixel program's shader data fills its push range, so the two bounds dwords (and the stencil reference, if any) do not fit beside it, the shader data goes to its storage buffer and the driver dwords start at the stage start. A stencil replay without the depth bounds test keeps main's rule.
  • The flag is part of the shader cache key, and the flag and the T# are part of the draw lookup key and of the serialized request (version 55: main is at 54). The disk cache format goes to 57 (main is at 56), since the compiled result and the image records gain a field. The depth bounds offset is specialization constant 8239 (main took 8237 and 8238 for mesh layers).

It throws, with its own message, when this would not be exact:

  • a normalized depth target: only the 32-bit float target is checked here;
  • a multisampled depth target: one fetch per pixel cannot test each sample;
  • a draw that writes depth, since the program would read the target it writes;
  • a draw that writes stencil on a pass or a failed test, since with early fragment tests the stencil operations would run before the program discards;
  • a draw without a pixel program;
  • a pixel program that also merges into a color target: the color target merge images and the depth image are not combined in one program yet;
  • a pixel program that reads neighbouring lanes on a device without demote, since a killed lane would change what they read.

Devices with depthBounds are unchanged, and so is the one-sided path. The debt entry in docs/dev/debt/libSceAgcDriver.md now describes both paths.

Tested

Current head 1d0c7b6904: main 6ed10ccd1f merged in. #11351 took request serialization 54 on main (two trailing f16 NaN flags, read from 54), the number this PR used for the depth bounds discard, with a different layout (found by @Amoenus). Git merged the serializer without a conflict, so this PR now writes request 55: main's f16 flags stay where main reads them from 54, and the depth bounds discard in the pixel section is read from 55. The disk cache format stays 57 (main is still at 56). In the serializer tests a request below 55 drops the depth bounds bytes, then follows main's steps below 54. New checks read a version 54 request with both f16 flags set and no depth bounds bytes: the flags survive, the discard is off, and it is written back as the same version 55 bytes. With the decode gate put back at 54, request_serializer and agc_shader_memory fail (RequestSerializer: unexpected trailing data).

macOS 27.2, Apple M4 Pro, MoltenVK 1.4.2 (Vulkan SDK 1.4.363.0), x86-64 Release under Rosetta 2. Base (local): support/macos-boot-1103 merged with main 6ed10ccd1f, plus two local fixes for code on main that does not build on macOS with libc++ (std::thread without <thread> in RunReport.cpp, which #15973 adds to RunReport.hpp; ::environ in VulkanDevice.cpp). The change side is that tree + this head. With ANYPS5_REQUIRE_VULKAN=1 ANYPS5_NO_SHADER_CACHE=1 VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation VK_LOADER_DEBUG=layer, the same 7 focused tests pass 7 of 7 on both sides; agc_driver_depth_bounds_emulation_draw runs 12 cases on the base and 20 with this PR. Neither log has a VUID- line or was not found but was requested by env var VK_INSTANCE_LAYERS.

Previous head 0baa4668cb: main b11c7bf84f merged in. Since b2cf782aa4, main took request serialization 53 (a trailing shaderImageMinLod byte) and disk cache format 56, and added a field to ImageResource (50 fields), which conflicted with this PR's format lines. This PR now writes request 54 (the depth bounds discard in the pixel section, read from 54) and disk cache 57, and its ImageResource count is 51. In the serializer tests, a request taken below 54 drops the depth bounds bytes and below 53 the trailing minimum LOD byte, following main's new steps; that adds one pop_back to the merged-hull chain and to the version 52 checks, and main's new minimum LOD check now starts from 54. #10351's head still writes disk cache 53 and #7085's 56; whichever lands after this one takes the next number, as agreed.

macOS 27.2, Apple M4 Pro, MoltenVK 1.4.2 (Vulkan SDK 1.4.363.0), x86-64 Release under Rosetta 2. Base: support/macos-boot-1103 merged with main b11c7bf84f, plus #15700 (tests on macOS) and two local fixes for code that reached main today and does not build on macOS (libSceAppContent quota type, a const vtable cast in GuestNpCommonRuntime.cpp; I'm opening both as PRs). The change side is that tree + this head. With ANYPS5_REQUIRE_VULKAN=1 ANYPS5_NO_SHADER_CACHE=1 VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation VK_LOADER_DEBUG=layer, the 7 focused tests (request_serializer, agc_shader_memory, agc_shader_disk_cache, agc_driver_depth_bounds_state, agc_driver_depth_bounds_emulation_draw, agc_driver_graphics, agc_driver_pixel_barycentric_emulation) pass 7 of 7 on both sides; agc_driver_depth_bounds_emulation_draw runs 12 cases on the base and 20 with this PR. Neither log has a VUID- line or was not found but was requested by env var VK_INSTANCE_LAYERS.

Previous head b2cf782aa4: main b28bb77217 merged in. Since cb3e417e4e, #10547 took request serialization 52 (a trailing hostInterpolationFirst byte), #12662 (open, ahead in the queue) writes 53, #10351 (open, agreed to go first) takes disk cache 52, and #12246 put the RecompileResult size check under __cpp_lib_atomic_shared_ptr and raised the ImageResource field count to 49. So this head writes request 54 and reads the depth bounds discard from 54. Disk cache format is 53. fieldCount<ImageResource>() is 50, and the guarded RecompileResult check is 560. The specialization constant stays 8239. The serializer tests replay a version 52 request without the discard, and main's hostInterpolationFirst step drops the discard bytes before going to 51. @B-Howell worked out the resolution on Linux (comment); this head follows it with 54 in place of 53, as @oneandonlydean pointed out.

macOS 27.2, Apple M4 Pro, MoltenVK 1.4.2, x86-64 Release under Rosetta 2. Local support branch (not pushed): main b28bb77217 + #11554, #7631, #7804, #4630, #14883, #15002, plus two local build fixes for code that reached main today (atomic_ref<const std::uint32_t> in SyncOnAddress.cpp; a const void* to function pointer cast in GuestBadOptionalAccess.cpp). The change side is that branch + this head. Same 7 focused tests and environment as below (VK_LOADER_DEBUG=layer added):

  • base: 7 of 7, agc_driver_depth_bounds_emulation_draw with 12 cases, 0 compared with the native test;
  • change: 7 of 7, with 20 cases, 12 by a depth test, all in the pixel program, 0 compared with the native test;
  • the validation layer is inserted in both logs, neither has was not found but was requested by env var VK_INSTANCE_LAYERS, and neither has a VUID- line.

Previous head cb3e417e4e (main 88e804b0a7): request 52, disk cache 52, spec constant 8239. The same 7 tests passed on both sides, with no VUID-.

Previous head e8871dc8c6: main 21a556f567 merged in, disk cache format 51. #12561 merged with disk cache format 50 and a new ImageResource field (adjustedSample). Git merged the previous head onto main without a conflict, because both sides changed 45 to 46 and 49 to 50, but the merged tree stopped at fieldCount<ImageResource>() == 46 (found by @jotitadev; the Windows build here failed the same way). This head merges main into the branch, with no conflict, and the last commit sets the field count to 47 and the disk cache format to 51, so caches written by main at 50 are not read with this layout. The request format stays 50: main is still at 49. The tree is the same as the three commits rebased onto 21a556f567.

macOS 27.2, Apple M4 Pro, MoltenVK 1.4.2 (Vulkan SDK 1.4.363.0), x86-64 Release under Rosetta 2. Support branch, not main: support/macos-boot-1030b (d90dad6690) = the support branch described below merged with main 21a556f567, the DirectMemory.cpp conflict with main's Emscripten branches resolved, plus one local line that keeps its unsupported-host #else after that merge. Change: support/macos-boot-1030b-pr11551 (967890c4e0) = that branch + this head. The same 7 focused tests and environment as below: base 7 of 7 (12 cases, 0 compared with the native test), change 7 of 7 (20 cases, 12 by a depth test, all in the pixel program, 0 compared with the native test). The loader adds VK_LAYER_KHRONOS_validation from VK_INSTANCE_LAYERS in both logs, neither has was not found but was requested by env var VK_INSTANCE_LAYERS, and neither has a VUID- line.

Previous head cce9f5c317. Stray (PPSA02100) on macOS loads a level with a pixel program whose shader data fills its 128-byte push range, so the previous head threw the depth bounds test in the pixel program requires two unused push constant dwords there. The third commit moves the shader data to its storage buffer in that case (above); MatchesPreparedShader uses the same rule. agc_driver_graphics gains the case with and without stencil replay, the prepared-artifact match and a range that is still too small: it fails on the previous head with that message and passes on this one. On the same support branch as below, now support/macos-boot-1030-pr11551 (f37b423626, the support branch + the three commits), the same 7 focused tests pass with the validation layer loaded and no VUID-. With this commit Stray gets past the level load into gameplay on a bench tree (that support branch + this PR + #9356), where the previous head stopped.

Head 47e4256594, rebased onto main 98ddd9c179. main still uses request format 49 and disk cache format 49, so this PR keeps request 50 and disk cache 50 (the next free ones; whichever of the open claims lands second takes the next number). The conflicts came from #11684, which turned the single color target merge into targetMerges with blend state. Resolved by keeping all of main's merge and blend fields, key hashes, emitter helpers and tests and adding the depth bounds parts next to them:

  • DrawLookup.cpp and DrawRegisterKey.cpp: both draw keys hash and compare every targetMerges entry as on main, then depthBoundsDiscard;
  • Recompiler.cpp: the variant key mixes main's merges and then the depth bounds flag and T#; mergeTargetImage returns main's merge path unchanged and handles the depth bounds image first, in its own branch;
  • ShaderInfoCollector.cpp: AddTargetMerge for main's merges, then AddDepthBoundsSource;
  • SpirvModuleEmitter.cpp: main's blend helpers and the depth bounds prologue helpers both kept;
  • ShaderMemory.cpp: main's blend and two-target serialization checks kept; the version 43 replay fixture still strips the 40 merge bytes and this PR's 33 depth bounds bytes. The version 49 depth export clamp and version 48 barycentric replay checks are unchanged.

ShaderStageInputInfo keeps main's merge fields and adds depthBoundsDiscard. The Linux-only size checks stay at 296 and 560 (main's 288 and 552 plus 8): measured on macOS with libc++, CompiledShaderArtifact goes 288 to 296 and RecompileResult 616 to 624 with this PR. The only change besides the conflict resolution is one more refusal in the debt entry: a pixel program that has both a color target merge and the depth bounds image throws (the depth bounds source image cannot join the prepared images), as it did with the single merge before.

With #10351 (head 760860ecc4) the only conflict is one line in Recompiler.cpp: #10351's stencilMode lines stay, and bindingAllocator.Allocate takes this PR's depthBounds argument after its stencilReplay. #10351 also takes disk cache format 50, which main now uses too (pointed out on #10351); in the agreed order it takes 51 and this PR moves to 52.

macOS 27.2, Apple M4 Pro, MoltenVK 1.4.2 (Vulkan SDK 1.4.363.0), x86-64 Release under Rosetta 2. Support branch, not main: fork branch support/macos-boot-1030 (6747733e89) = main 98ddd9c179 + only the open macOS PRs #11447 #11554 #10552 #7631 #7804 #4630 and #13220 (the duplicate write_watch test registration that stops main's CMake on macOS), plus one local line that reads environ through _NSGetEnviron() in HostReportSources.cpp (main doesn't compile it on macOS; no open PR covers it yet). The conflicts of #11554, #10552, #7631, #7804 and #4630 with main are resolved in the merge commits. Change: that branch + the two commits of this PR (eca8ce338a, now replaced on the fork by the three-commit branch above). The tests ran on 7290fdb49d, which differs from it only by the debt entry line above.

With ANYPS5_REQUIRE_VULKAN=1 ANYPS5_NO_SHADER_CACHE=1 VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation VK_LOADER_DEBUG=layer, ctest -R '^(request_serializer|agc_shader_memory|agc_shader_disk_cache|agc_driver_depth_bounds_state|agc_driver_depth_bounds_emulation_draw|agc_driver_graphics|agc_driver_pixel_barycentric_emulation)$' -V:

  • base: 6 of 7 pass; agc_driver_graphics failed at two ranges under a budget for two were not imported. agc_driver_depth_bounds_emulation_draw passes with 12 cases, 0 compared with the native test;
  • change: 7 of 7 pass; agc_driver_depth_bounds_emulation_draw passes with 20 cases, 12 by a depth test, all in the pixel program, 0 compared with the native test;
  • agc_driver_graphics 3 more runs on each: base 3 of 3 pass, change 2 of 3 (the failed run stops at the same two ranges under a budget for two were not imported). So 3 of 4 on each side; the message comes from the host import budget test, outside this PR's paths;
  • in every log the loader lists VK_LAYER_KHRONOS_validation as enabled by VK_INSTANCE_LAYERS, there is no was not found but was requested by env var VK_INSTANCE_LAYERS, and no VUID- line.

Logs attached.

Previous head 5a15547d39, rebased onto main 750cf6cf48. Request format 50 and disk cache format 50 after main took 49 for both. On support branch support/macos-boot-1028 (eca446163e) and support/macos-boot-1028-pr11551 (4e4aade74a), the same 7 tests passed on both, no VUID-; agc_driver_graphics failed once in the first change run at the same two ranges under a budget for two were not imported and passed in the 3 runs after.

Previous head 39d5e816b1, rebased onto main e0cd1259a9 after #9193 merged with request format 48. This PR now uses request format 49 and keeps #9193's barycentric flag at the end of the request; the disk cache format stays 49. On macOS (main e0cd1259a9 with the open macOS boot PRs), request_serializer, agc_shader_memory, agc_shader_disk_cache, agc_driver_depth_bounds_state, agc_driver_depth_bounds_emulation_draw, agc_driver_graphics and #9193's agc_driver_pixel_barycentric_emulation pass with the validation layer loaded and no VUID- lines.

Previous head b7acb0da81, rebased onto main fe2b52c7e4. main meanwhile took request format 47 (#10515) and disk cache format 48 (#8077, which also adds a field to CompiledShaderArtifact and RecompileResult). So this PR now uses request format 48 and disk cache format 49, and the Linux-only size checks in ShaderDiskCache.cpp are 296 and 560: main's 288 and 552 plus this PR's 8 bytes. @jotitadev found the missing size update on the previous head. macOS doesn't compile those checks, so I checked the difference there: both structs grow by 8 bytes. On macOS, on current main with the macOS PRs listed below merged in, request_serializer, agc_shader_memory, agc_shader_disk_cache, agc_driver_depth_bounds_state and agc_driver_depth_bounds_emulation_draw (20 cases, 12 by a depth test, all in the pixel program) pass at this head with the validation layer loaded and no VUID- lines.

Linux (@jotitadev, previous head 1e2ff2603 on main cb45ae2dd with the size checks fixed, Ubuntu 26.04, GCC 15.2): the focused tests pass 3 of 3 on an NVIDIA RTX 3070 and on lavapipe, and agc_driver_depth_bounds_emulation_draw compares all 20 cases with the native depth bounds test on both. ^agc gives no new failures on either device.

The runs below are on the first head:

macOS (Apple M4 Pro, macOS 27.0.1, MoltenVK 1.4.2 from Vulkan SDK 1.4.363.0, x86-64 Release under Rosetta 2). main does not build and run on macOS, so this ran on main 035ac96edd + #10366 #10552 #7631 #7804 #11249 #10669 #10540 #11447 #11047 #11048 #10876 #9263 and a local patch that loads libvulkan.1.dylib, without and with this commit. ANYPS5_REQUIRE_VULKAN=1 ANYPS5_NO_SHADER_CACHE=1 VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation, and neither log contains was not found but was requested:

  • agc_driver_depth_bounds_emulation_draw passes with 20 cases, 12 by a depth test, all in the pixel program. The 8 new cases have both bounds inside (0, 1), around the stored depth and one float step past it, two of them under a GREATER_OR_EQUAL depth test. Every case also runs through the pixel program, and the 12 one-sided ones through the depth test as well. MoltenVK has no depthBounds, so none was compared with the native test; on a device with the feature the test compares every case.
  • request_serializer, agc_shader_memory, agc_shader_replay_requests, agc_shader_disk_cache, agc_shader_disk_cache_large_file, agc_driver_depth_bounds_state, agc_driver_stencil_replay, agc_driver_stencil_replay_no_gpl and agc_driver_quad_pixel_mask pass, with no validation errors.
  • DepthBoundsEmulationTests in agc_driver_graphics pass: which draws take the pixel program, which keep the depth test and each refusal. The test binary then hangs in RunBdaResourceTests (releaseParkedImports), on the base without this commit too.
  • ^agc_ without agc_driver_graphics, 1025 tests on each side: the same results apart from 9 tests (agc_driver_prepared_shaders_*deferred*, agc_driver_prepared_shaders_lazy, agc_driver_layered_volume_submit, agc_driver_linear_target_completion_points_sync_flip). They stop with deferred destruction found two different device resolvers on both sides and change from run to run: in three reruns each, they failed every time on the base and failed or passed on this commit. The same 11 validation error kinds appear on both sides, all on the base. The count differences are in those tests and in agc_driver_color1555_target, which logs 2 or 4 between reruns on the base alone.
  • Not run in a title.

tools/check_conventions.py --base upstream/main (21a556f567) passes. tools/pr_overlap.py finds no shared exports and none of the overlapping pull requests implements the depth bounds test. Its conflicting lines are the format version lines that many open pull requests raise (disk cache format in ShaderDiskCache.hpp, request format in RequestSerializer.cpp and the serializer tests: #10359, #10846, #11483, #12662, #12980 and others), the size checks (#9852, #12250: B-Howell proposed this PR first, then #12250 keeps its guard around the new numbers), the stencilReplay line of #10351 (above), and #9508 in Draw.cpp and ShaderResources.cpp. Whichever lands second takes the next format number.

Checklist

  • Based on current main; no other open PR implements the same functions
  • One topic per PR; follow-ups go in a new PR
  • No comments in code except technical debt
  • Unimplemented paths throw (NotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file
  • No notes, investigation .md files or images added to the repository (attach them to this PR)
  • New third-party code is a submodule built from source
  • Generic behaviour, not specific to one title
  • Depends on: feat(agc): export stencil operation values through an attachment #10351 (agreed order feat(agc): export stencil operation values through an attachment #10351 → this PR for the disk cache format; whichever lands second takes the next number)
  • Fixes: none
  • Unblocks: none
  • GPUs tested: Apple M4 Pro, MoltenVK 1.4.2, macOS 27.2; by @jotitadev: lavapipe (Mesa 26.0.3), Ubuntu 26.04, on cce9f5c317 with the field count and disk cache format changed to 47 and 51 as in this head, and NVIDIA GeForce RTX 3070 (595.99.02) on an earlier head (1e2ff2603); by @bunbeans2-arch on cce9f5c317: AMD Radeon RX 9070 XT (amdvlk), Windows 11
  • AI-assisted: yes

@MarcZX10 MarcZX10 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The reported functional and platform evidence is unusually thorough, and the new guard/refusal cases plus cache/serializer updates are well covered. One repository merge-order requirement remains unresolved: this PR explicitly says it shares the Recompiler.cpp stencil-replay hunk and disk-cache version with still-open #10351, and that whichever lands second must advance the format to 49. CONTRIBUTING.md requires authors to agree on the order for overlapping PRs and declare it with Depends on; this checklist currently says none. Please coordinate with #10351’s author, record which PR goes first in the dependency field, and keep the second format bump in the merge/rebase plan before approval.

@github-actions

github-actions Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.

Pull request Shared files not compared
PR 907 core/shader/recompiler/Optimization/src/ResourceMaterializer.cpp
PR 1368 core/libs/prx/libSceAgcDriver/Graphics/include/DepthSurface.hpp
core/libs/prx/libSceAgcDriver/Graphics/include/State.hpp
core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
PR 1395 core/libs/prx/libSceAgcDriver/Graphics/include/DepthSurface.hpp
core/libs/prx/libSceAgcDriver/Graphics/include/State.hpp
core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 2434 docs/dev/debt/libSceAgcDriver.md
PR 4040 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 4448 docs/dev/debt/libSceAgcDriver.md
PR 5021 core/shader/recompiler/Recompiler.cpp
PR 5315 core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
PR 5371 core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/IntermediateRepresentation/include/IntermediateRepresentation/IrMetadata/Resources.hpp
core/shader/recompiler/Optimization/src/ResourceMaterializer.cpp
core/shader/recompiler/PipelineSpecialization.hpp
PR 5372 docs/dev/debt/libSceAgcDriver.md
PR 5609 core/libs/prx/libSceAgcDriver/Execution/src/Driver/Draw/DrawLookup.cpp
core/libs/prx/libSceAgcDriver/Execution/src/Driver/Draw/DrawRegisterKey.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/shader/recompiler/Optimization/include/Optimization/BindingAllocator.hpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/Recompiler.hpp
core/shader/recompiler/ShaderDiskCache.cpp
PR 5925 core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
core/shader/recompiler/Recompiler.hpp
core/shader/recompiler/ShaderDiskCache.cpp
core/shader/recompiler/ShaderDiskCache.hpp
docs/dev/debt/libSceAgcDriver.md
PR 6146 core/libs/prx/libSceAgcDriver/Graphics/include/DepthSurface.hpp
core/libs/prx/libSceAgcDriver/Graphics/include/State.hpp
core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
docs/dev/debt/libSceAgcDriver.md
PR 6186 docs/dev/debt/libSceAgcDriver.md
PR 6188 core/libs/prx/libSceAgcDriver/Execution/src/Driver/Draw/DrawDecode.cpp
core/libs/prx/libSceAgcDriver/Execution/src/Driver/Draw/DrawLookup.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
core/shader/recompiler/Recompiler.hpp
PR 6192 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
PR 6194 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
docs/dev/debt/libSceAgcDriver.md
PR 6223 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
docs/dev/debt/libSceAgcDriver.md
PR 6235 core/libs/prx/libSceAgcDriver/Execution/src/Driver/Draw/DrawDecode.cpp
core/libs/prx/libSceAgcDriver/Execution/src/Driver/Draw/DrawLookup.cpp
core/libs/prx/libSceAgcDriver/Execution/src/Driver/Draw/DrawRegisterKey.cpp
core/libs/prx/libSceAgcDriver/Graphics/include/State.hpp
core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/CacheKey.hpp
core/shader/recompiler/ControlFlow/src/RequestSerializer.cpp
core/shader/recompiler/Optimization/include/Optimization/ShaderStageInputInfo.hpp
core/shader/recompiler/Recompiler.hpp
core/shader/recompiler/SpirvBackend/src/SpirvMemory/SpirvEmitterHelpers.cpp
core/shader/recompiler/SpirvBackend/src/SpirvModuleEmitter.cpp
core/shader/recompiler/Translation/src/ShaderInputInfoBuilder.cpp
core/shader/recompiler/tests/RequestSerializerTests.cpp
PR 6280 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/shader/recompiler/IntermediateRepresentation/include/IntermediateRepresentation/IrMetadata/Resources.hpp
core/shader/recompiler/Optimization/src/ResourceMaterializer.cpp
core/shader/recompiler/PipelineSpecialization.hpp
core/shader/recompiler/ShaderDiskCache.cpp
core/shader/recompiler/ShaderDiskCache.hpp
docs/dev/debt/libSceAgcDriver.md
PR 6290 core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
PR 6340 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
PR 6412 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/IntermediateRepresentation/include/IntermediateRepresentation/IrMetadata/Resources.hpp
core/shader/recompiler/Optimization/src/ResourceMaterializer.cpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/Recompiler.hpp
core/shader/recompiler/ShaderDiskCache.cpp
core/shader/recompiler/ShaderDiskCache.hpp
docs/dev/debt/libSceAgcDriver.md
PR 6416 core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/ShaderDiskCache.hpp
PR 6481 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
docs/dev/debt/libSceAgcDriver.md
PR 6488 core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/Optimization/src/ResourceMaterializer.cpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/ShaderDiskCache.cpp
core/shader/recompiler/ShaderDiskCache.hpp
PR 6548 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
docs/dev/debt/libSceAgcDriver.md
PR 6549 docs/dev/debt/libSceAgcDriver.md
PR 6743 docs/dev/debt/libSceAgcDriver.md
PR 6804 core/libs/prx/libSceAgcDriver/Graphics/include/State.hpp
core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
docs/dev/debt/libSceAgcDriver.md
PR 6808 core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
docs/dev/debt/libSceAgcDriver.md
PR 6858 core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/ShaderDiskCache.cpp
core/shader/recompiler/ShaderDiskCache.hpp
PR 6867 docs/dev/debt/libSceAgcDriver.md
PR 6924 core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/ShaderDiskCache.cpp
core/shader/recompiler/ShaderDiskCache.hpp
PR 6926 docs/dev/debt/libSceAgcDriver.md
PR 6970 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/Recompiler.hpp
core/shader/recompiler/ShaderDiskCache.cpp
PR 6987 docs/dev/debt/libSceAgcDriver.md
PR 6989 docs/dev/debt/libSceAgcDriver.md
PR 6995 docs/dev/debt/libSceAgcDriver.md
PR 7002 core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
docs/dev/debt/libSceAgcDriver.md
PR 7085 core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/shader/recompiler/IntermediateRepresentation/include/IntermediateRepresentation/IrMetadata/Resources.hpp
core/shader/recompiler/Optimization/src/ResourceMaterializer.cpp
core/shader/recompiler/PipelineSpecialization.hpp
core/shader/recompiler/ShaderDiskCache.cpp
core/shader/recompiler/ShaderDiskCache.hpp
docs/dev/debt/libSceAgcDriver.md
PR 7256 core/libs/prx/libSceAgcDriver/Graphics/include/State.hpp
core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
docs/dev/debt/libSceAgcDriver.md
PR 7275 core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
PR 7369 core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
PR 7395 core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/Optimization/src/ResourceMaterializer.cpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/ShaderDiskCache.cpp
core/shader/recompiler/ShaderDiskCache.hpp
PR 7410 core/libs/prx/libSceAgcDriver/Execution/src/Driver/Draw/DrawDecode.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/CacheKey.hpp
core/shader/recompiler/ControlFlow/src/RequestSerializer.cpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/Recompiler.hpp
core/shader/recompiler/tests/RequestSerializerTests.cpp
PR 7449 core/libs/prx/libSceAgcDriver/Graphics/include/DepthSurface.hpp
core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
docs/dev/debt/libSceAgcDriver.md
PR 7504 core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
PR 7522 core/shader/recompiler/Recompiler.cpp
PR 7604 docs/dev/debt/libSceAgcDriver.md
PR 7622 core/shader/recompiler/ShaderDiskCache.cpp
PR 7642 core/libs/prx/libSceAgcDriver/Execution/src/Driver/Draw/DrawLookup.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/CacheKey.hpp
core/shader/recompiler/ControlFlow/src/RequestSerializer.cpp
core/shader/recompiler/IntermediateRepresentation/include/IntermediateRepresentation/IrMetadata/DescriptorBinding.hpp
core/shader/recompiler/IntermediateRepresentation/include/IntermediateRepresentation/IrMetadata/Resources.hpp
core/shader/recompiler/Optimization/include/Optimization/BindingAllocator.hpp
core/shader/recompiler/Optimization/src/BindingAllocator.cpp
core/shader/recompiler/Optimization/src/ResourceMaterializer.cpp
core/shader/recompiler/PipelineSpecialization.hpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/Recompiler.hpp
core/shader/recompiler/ShaderDiskCache.cpp
core/shader/recompiler/ShaderDiskCache.hpp
core/shader/recompiler/SpirvBackend/src/SpirvMemory/SpirvEmitterHelpers.cpp
core/shader/recompiler/SpirvBackend/src/SpirvModuleEmitter.cpp
core/shader/recompiler/tests/RequestSerializerTests.cpp
docs/dev/debt/libSceAgcDriver.md
PR 7668 core/libs/prx/libSceAgcDriver/Graphics/include/State.hpp
core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
docs/dev/debt/libSceAgcDriver.md
PR 7684 core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/Optimization/src/ResourceMaterializer.cpp
core/shader/recompiler/ShaderDiskCache.cpp
core/shader/recompiler/ShaderDiskCache.hpp
PR 7689 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
core/shader/recompiler/Optimization/src/ResourceMaterializer.cpp
core/shader/recompiler/Recompiler.hpp
core/shader/recompiler/ShaderDiskCache.cpp
PR 8004 core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/CacheKey.hpp
core/shader/recompiler/ControlFlow/src/RequestSerializer.cpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/Recompiler.hpp
core/shader/recompiler/tests/RequestSerializerTests.cpp
PR 8212 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 8246 core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 8592 docs/dev/debt/libSceAgcDriver.md
PR 8707 docs/dev/debt/libSceAgcDriver.md
PR 8939 core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/Optimization/src/ResourceMaterializer.cpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/ShaderDiskCache.cpp
core/shader/recompiler/ShaderDiskCache.hpp
PR 9335 core/libs/prx/libSceAgcDriver/Graphics/include/State.hpp
core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
docs/dev/debt/libSceAgcDriver.md
PR 9356 core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/CacheKey.hpp
core/shader/recompiler/ControlFlow/src/RequestSerializer.cpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/Recompiler.hpp
core/shader/recompiler/ShaderDiskCache.cpp
core/shader/recompiler/ShaderDiskCache.hpp
core/shader/recompiler/SpirvBackend/src/SpirvMemory/SpirvEmitterHelpers.cpp
core/shader/recompiler/SpirvBackend/src/SpirvModuleEmitter.cpp
core/shader/recompiler/tests/RequestSerializerTests.cpp
docs/dev/debt/libSceAgcDriver.md
PR 9387 core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/CacheKey.hpp
core/shader/recompiler/ControlFlow/src/RequestSerializer.cpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/Recompiler.hpp
core/shader/recompiler/ShaderDiskCache.cpp
core/shader/recompiler/ShaderDiskCache.hpp
core/shader/recompiler/SpirvBackend/src/SpirvMemory/SpirvEmitterHelpers.cpp
core/shader/recompiler/SpirvBackend/src/SpirvModuleEmitter.cpp
core/shader/recompiler/tests/RequestSerializerTests.cpp
docs/dev/debt/libSceAgcDriver.md
PR 9457 core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/Optimization/src/ResourceMaterializer.cpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/ShaderDiskCache.cpp
core/shader/recompiler/ShaderDiskCache.hpp
PR 9508 core/libs/prx/libSceAgcDriver/Execution/src/Driver/Draw/DrawLookup.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/CacheKey.hpp
core/shader/recompiler/ControlFlow/src/RequestSerializer.cpp
core/shader/recompiler/IntermediateRepresentation/include/IntermediateRepresentation/IrMetadata/DescriptorBinding.hpp
core/shader/recompiler/IntermediateRepresentation/include/IntermediateRepresentation/IrMetadata/Resources.hpp
core/shader/recompiler/Optimization/include/Optimization/BindingAllocator.hpp
core/shader/recompiler/Optimization/src/BindingAllocator.cpp
core/shader/recompiler/Optimization/src/ShaderInfoCollector.cpp
core/shader/recompiler/PipelineSpecialization.hpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/Recompiler.hpp
core/shader/recompiler/ShaderDiskCache.cpp
core/shader/recompiler/ShaderDiskCache.hpp
core/shader/recompiler/SpirvBackend/src/SpirvMemory/SpirvEmitterHelpers.cpp
core/shader/recompiler/SpirvBackend/src/SpirvModuleEmitter.cpp
core/shader/recompiler/tests/RequestSerializerTests.cpp
docs/dev/debt/libSceAgcDriver.md
PR 9592 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
docs/dev/debt/libSceAgcDriver.md
PR 9604 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 9633 core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/Optimization/src/ResourceMaterializer.cpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/ShaderDiskCache.cpp
core/shader/recompiler/ShaderDiskCache.hpp
PR 9712 core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 9748 core/libs/prx/libSceAgcDriver/Execution/src/Driver/Draw/DrawLookup.cpp
core/libs/prx/libSceAgcDriver/Execution/src/Driver/Draw/DrawRegisterKey.cpp
core/libs/prx/libSceAgcDriver/Graphics/include/State.hpp
core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/CacheKey.hpp
core/shader/recompiler/ControlFlow/src/RequestSerializer.cpp
core/shader/recompiler/Optimization/src/ShaderInfoCollector.cpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/Recompiler.hpp
core/shader/recompiler/ShaderDiskCache.hpp
core/shader/recompiler/SpirvBackend/src/SpirvModuleEmitter.cpp
core/shader/recompiler/Translation/src/ShaderInputInfoBuilder.cpp
core/shader/recompiler/tests/RequestSerializerTests.cpp
docs/dev/debt/libSceAgcDriver.md
PR 9749 core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/Optimization/src/ResourceMaterializer.cpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/ShaderDiskCache.cpp
core/shader/recompiler/ShaderDiskCache.hpp
PR 9790 core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/Optimization/src/ResourceMaterializer.cpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/ShaderDiskCache.cpp
core/shader/recompiler/ShaderDiskCache.hpp
PR 9852 core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/shader/recompiler/IntermediateRepresentation/include/IntermediateRepresentation/IrMetadata/Resources.hpp
core/shader/recompiler/Recompiler.hpp
core/shader/recompiler/ShaderDiskCache.cpp
core/shader/recompiler/ShaderDiskCache.hpp
PR 9875 core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 9884 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
PR 9889 core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/IntermediateRepresentation/include/IntermediateRepresentation/IrMetadata/Resources.hpp
core/shader/recompiler/Optimization/src/ResourceMaterializer.cpp
core/shader/recompiler/ShaderDiskCache.cpp
PR 9893 docs/dev/debt/libSceAgcDriver.md
PR 9895 core/libs/prx/libSceAgcDriver/Graphics/include/State.hpp
core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
docs/dev/debt/libSceAgcDriver.md
PR 9897 core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/IntermediateRepresentation/include/IntermediateRepresentation/IrMetadata/Resources.hpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/Recompiler.hpp
core/shader/recompiler/ShaderDiskCache.cpp
PR 9915 core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
docs/dev/debt/libSceAgcDriver.md
PR 9950 core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
docs/dev/debt/libSceAgcDriver.md
PR 9969 core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/Optimization/src/ResourceMaterializer.cpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/ShaderDiskCache.cpp
core/shader/recompiler/ShaderDiskCache.hpp
PR 9999 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
PR 10049 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/shader/recompiler/Recompiler.hpp
core/shader/recompiler/ShaderDiskCache.cpp
core/shader/recompiler/ShaderDiskCache.hpp
docs/dev/debt/libSceAgcDriver.md
PR 10064 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
docs/dev/debt/libSceAgcDriver.md
PR 10141 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 10193 core/libs/prx/libSceAgcDriver/Execution/src/Driver/Draw/DrawLookup.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/CacheKey.hpp
core/shader/recompiler/ControlFlow/src/RequestSerializer.cpp
core/shader/recompiler/IntermediateRepresentation/include/IntermediateRepresentation/IrMetadata/DescriptorBinding.hpp
core/shader/recompiler/IntermediateRepresentation/include/IntermediateRepresentation/IrMetadata/Resources.hpp
core/shader/recompiler/Optimization/include/Optimization/BindingAllocator.hpp
core/shader/recompiler/Optimization/src/BindingAllocator.cpp
core/shader/recompiler/Optimization/src/ResourceMaterializer.cpp
core/shader/recompiler/PipelineSpecialization.hpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/Recompiler.hpp
core/shader/recompiler/ShaderDiskCache.cpp
core/shader/recompiler/ShaderDiskCache.hpp
core/shader/recompiler/SpirvBackend/src/SpirvMemory/SpirvEmitterHelpers.cpp
core/shader/recompiler/SpirvBackend/src/SpirvModuleEmitter.cpp
core/shader/recompiler/tests/RequestSerializerTests.cpp
docs/dev/debt/libSceAgcDriver.md
PR 10233 core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/Optimization/src/ResourceMaterializer.cpp
docs/dev/debt/libSceAgcDriver.md
PR 10249 core/libs/prx/libSceAgcDriver/Graphics/include/State.hpp
core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
PR 10359 core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/CacheKey.hpp
core/shader/recompiler/ControlFlow/src/RequestSerializer.cpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/Recompiler.hpp
core/shader/recompiler/tests/RequestSerializerTests.cpp
docs/dev/debt/libSceAgcDriver.md
PR 10442 core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
PR 10469 core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
docs/dev/debt/libSceAgcDriver.md
PR 10489 core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/PipelineSpecialization.hpp
core/shader/recompiler/ShaderDiskCache.hpp
PR 10492 core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
docs/dev/debt/libSceAgcDriver.md
PR 10497 core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
docs/dev/debt/libSceAgcDriver.md
PR 10652 core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/shader/recompiler/CacheKey.hpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/Recompiler.hpp
PR 10678 core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
PR 10743 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
docs/dev/debt/libSceAgcDriver.md
PR 10757 core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/Recompiler.hpp
PR 10867 core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/IntermediateRepresentation/include/IntermediateRepresentation/IrMetadata/Resources.hpp
core/shader/recompiler/Optimization/src/ResourceMaterializer.cpp
core/shader/recompiler/SpirvBackend/src/SpirvMemory/SpirvEmitterHelpers.cpp
PR 10894 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
PR 11346 docs/dev/debt/libSceAgcDriver.md
PR 11444 core/libs/prx/libSceAgcDriver/Graphics/include/DepthSurface.hpp
core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
PR 11452 core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
PR 11483 core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/CacheKey.hpp
core/shader/recompiler/ControlFlow/src/RequestSerializer.cpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/Recompiler.hpp
core/shader/recompiler/SpirvBackend/src/SpirvModuleEmitter.cpp
core/shader/recompiler/tests/RequestSerializerTests.cpp
PR 11825 core/libs/prx/libSceAgcDriver/Graphics/include/State.hpp
core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
docs/dev/debt/libSceAgcDriver.md
PR 12324 core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/Recompiler.cpp
PR 12452 docs/dev/debt/libSceAgcDriver.md
PR 12565 docs/dev/debt/libSceAgcDriver.md
PR 12567 docs/dev/debt/libSceAgcDriver.md
PR 12568 docs/dev/debt/libSceAgcDriver.md
PR 12575 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
PR 12619 core/shader/recompiler/Optimization/src/ShaderInfoCollector.cpp
core/shader/recompiler/SpirvBackend/src/SpirvMemory/SpirvEmitterHelpers.cpp
PR 12745 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
PR 12790 core/shader/recompiler/IntermediateRepresentation/include/IntermediateRepresentation/IrMetadata/Resources.hpp
core/shader/recompiler/Optimization/src/ShaderInfoCollector.cpp
core/shader/recompiler/PipelineSpecialization.hpp
core/shader/recompiler/Recompiler.cpp
PR 12792 docs/dev/debt/libSceAgcDriver.md
PR 12828 core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/Recompiler.hpp
PR 12840 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
core/shader/recompiler/PipelineSpecialization.hpp
core/shader/recompiler/Recompiler.cpp
docs/dev/debt/libSceAgcDriver.md
PR 12855 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
docs/dev/debt/libSceAgcDriver.md
PR 12904 docs/dev/debt/libSceAgcDriver.md
PR 12944 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/Recompiler.hpp
core/shader/recompiler/ShaderDiskCache.cpp
core/shader/recompiler/SpirvBackend/src/SpirvMemory/SpirvEmitterHelpers.cpp
core/shader/recompiler/SpirvBackend/src/SpirvModuleEmitter.cpp
PR 13023 core/libs/prx/libSceAgcDriver/Graphics/include/DepthSurface.hpp
core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
PR 13147 core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
docs/dev/debt/libSceAgcDriver.md
PR 13148 core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
PR 13248 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
docs/dev/debt/libSceAgcDriver.md
PR 13599 docs/dev/debt/libSceAgcDriver.md
PR 13707 docs/dev/debt/libSceAgcDriver.md
PR 13793 core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
docs/dev/debt/libSceAgcDriver.md
PR 13796 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
PR 13809 core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
docs/dev/debt/libSceAgcDriver.md
PR 13863 core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
docs/dev/debt/libSceAgcDriver.md
PR 13920 core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
docs/dev/debt/libSceAgcDriver.md
PR 13928 core/libs/prx/libSceAgcDriver/Execution/src/Driver/Draw/DrawLookup.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/CacheKey.hpp
core/shader/recompiler/ControlFlow/src/RequestSerializer.cpp
core/shader/recompiler/IntermediateRepresentation/include/IntermediateRepresentation/IrMetadata/DescriptorBinding.hpp
core/shader/recompiler/IntermediateRepresentation/include/IntermediateRepresentation/IrMetadata/Resources.hpp
core/shader/recompiler/Optimization/include/Optimization/BindingAllocator.hpp
core/shader/recompiler/Optimization/src/BindingAllocator.cpp
core/shader/recompiler/Optimization/src/ResourceMaterializer.cpp
core/shader/recompiler/PipelineSpecialization.hpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/Recompiler.hpp
core/shader/recompiler/ShaderDiskCache.cpp
core/shader/recompiler/ShaderDiskCache.hpp
core/shader/recompiler/SpirvBackend/src/SpirvMemory/SpirvEmitterHelpers.cpp
core/shader/recompiler/SpirvBackend/src/SpirvModuleEmitter.cpp
core/shader/recompiler/tests/RequestSerializerTests.cpp
docs/dev/debt/libSceAgcDriver.md
PR 13929 core/libs/prx/libSceAgcDriver/Execution/src/Driver/Draw/DrawLookup.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/CacheKey.hpp
core/shader/recompiler/ControlFlow/src/RequestSerializer.cpp
core/shader/recompiler/IntermediateRepresentation/include/IntermediateRepresentation/IrMetadata/DescriptorBinding.hpp
core/shader/recompiler/IntermediateRepresentation/include/IntermediateRepresentation/IrMetadata/Resources.hpp
core/shader/recompiler/Optimization/include/Optimization/BindingAllocator.hpp
core/shader/recompiler/Optimization/src/BindingAllocator.cpp
core/shader/recompiler/Optimization/src/ResourceMaterializer.cpp
core/shader/recompiler/PipelineSpecialization.hpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/Recompiler.hpp
core/shader/recompiler/ShaderDiskCache.cpp
core/shader/recompiler/ShaderDiskCache.hpp
core/shader/recompiler/SpirvBackend/src/SpirvMemory/SpirvEmitterHelpers.cpp
core/shader/recompiler/SpirvBackend/src/SpirvModuleEmitter.cpp
core/shader/recompiler/tests/RequestSerializerTests.cpp
docs/dev/debt/libSceAgcDriver.md
PR 13963 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
docs/dev/debt/libSceAgcDriver.md
PR 13991 core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
docs/dev/debt/libSceAgcDriver.md
PR 14032 core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/IntermediateRepresentation/include/IntermediateRepresentation/IrMetadata/Resources.hpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/Recompiler.hpp
core/shader/recompiler/ShaderDiskCache.cpp
core/shader/recompiler/ShaderDiskCache.hpp
PR 14051 core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
PR 14072 core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
PR 14076 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 14084 core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
PR 14137 docs/dev/debt/libSceAgcDriver.md
PR 14212 docs/dev/debt/libSceAgcDriver.md
PR 14217 core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/shader/recompiler/CacheKey.hpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/Recompiler.hpp
PR 14218 core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/shader/recompiler/CacheKey.hpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/Recompiler.hpp
PR 14219 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
PR 14262 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
PR 14296 docs/dev/debt/libSceAgcDriver.md
PR 14341 core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/SpirvBackend/src/SpirvModuleEmitter.cpp
PR 14344 core/libs/prx/libSceAgcDriver/Graphics/include/DepthSurface.hpp
core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
docs/dev/debt/libSceAgcDriver.md
PR 14367 core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/Recompiler.hpp
core/shader/recompiler/ShaderDiskCache.cpp
PR 14473 core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 14561 core/libs/prx/libSceAgcDriver/Execution/src/Driver/Draw/DrawDecode.cpp
core/libs/prx/libSceAgcDriver/Execution/src/Driver/Draw/DrawLookup.cpp
core/libs/prx/libSceAgcDriver/Execution/src/Driver/Draw/DrawRegisterKey.cpp
core/libs/prx/libSceAgcDriver/Graphics/include/State.hpp
core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/CacheKey.hpp
core/shader/recompiler/ControlFlow/src/RequestSerializer.cpp
core/shader/recompiler/Optimization/include/Optimization/ShaderStageInputInfo.hpp
core/shader/recompiler/Recompiler.hpp
core/shader/recompiler/SpirvBackend/src/SpirvModuleEmitter.cpp
core/shader/recompiler/Translation/src/ShaderInputInfoBuilder.cpp
core/shader/recompiler/tests/RequestSerializerTests.cpp
docs/dev/debt/libSceAgcDriver.md
PR 14628 core/shader/recompiler/Optimization/src/ResourceMaterializer.cpp
docs/dev/debt/libSceAgcDriver.md
PR 14636 core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/ShaderDiskCache.hpp
PR 14853 core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/Optimization/src/ResourceMaterializer.cpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/ShaderDiskCache.cpp
core/shader/recompiler/ShaderDiskCache.hpp
PR 14870 core/shader/recompiler/SpirvBackend/src/SpirvMemory/SpirvEmitterHelpers.cpp
PR 14871 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
core/shader/recompiler/IntermediateRepresentation/include/IntermediateRepresentation/IrMetadata/Resources.hpp
core/shader/recompiler/Optimization/src/BindingAllocator.cpp
core/shader/recompiler/Optimization/src/ResourceMaterializer.cpp
core/shader/recompiler/Optimization/src/ShaderInfoCollector.cpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/Recompiler.hpp
core/shader/recompiler/ShaderDiskCache.cpp
core/shader/recompiler/ShaderDiskCache.hpp
core/shader/recompiler/SpirvBackend/src/SpirvMemory/SpirvEmitterHelpers.cpp
PR 14904 core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
PR 14944 core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/IntermediateRepresentation/include/IntermediateRepresentation/IrMetadata/Resources.hpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/Recompiler.hpp
core/shader/recompiler/ShaderDiskCache.cpp
core/shader/recompiler/ShaderDiskCache.hpp
docs/dev/debt/libSceAgcDriver.md
PR 14950 docs/dev/debt/libSceAgcDriver.md
PR 14963 docs/dev/debt/libSceAgcDriver.md
PR 14964 core/shader/recompiler/PipelineSpecialization.hpp
docs/dev/debt/libSceAgcDriver.md
PR 14969 core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
docs/dev/debt/libSceAgcDriver.md
PR 14982 docs/dev/debt/libSceAgcDriver.md
PR 15015 core/libs/prx/libSceAgcDriver/Graphics/include/DepthSurface.hpp
core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
PR 15058 core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
docs/dev/debt/libSceAgcDriver.md
PR 15059 core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
PR 15136 docs/dev/debt/libSceAgcDriver.md
PR 15169 docs/dev/debt/libSceAgcDriver.md
PR 15302 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
PR 15327 core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
docs/dev/debt/libSceAgcDriver.md
PR 15338 core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/Optimization/src/ResourceMaterializer.cpp
PR 15343 core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/CacheKey.hpp
core/shader/recompiler/ControlFlow/src/RequestSerializer.cpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/Recompiler.hpp
core/shader/recompiler/ShaderDiskCache.hpp
core/shader/recompiler/tests/RequestSerializerTests.cpp
PR 15404 core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
PR 15416 core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
PR 15443 core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
PR 15450 core/shader/recompiler/Optimization/src/ResourceMaterializer.cpp
docs/dev/debt/libSceAgcDriver.md
PR 15456 core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
docs/dev/debt/libSceAgcDriver.md
PR 15458 core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/ControlFlow/src/RequestSerializer.cpp
core/shader/recompiler/tests/RequestSerializerTests.cpp
PR 15487 docs/dev/debt/libSceAgcDriver.md
PR 15529 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
docs/dev/debt/libSceAgcDriver.md
PR 15548 core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/CacheKey.hpp
core/shader/recompiler/ControlFlow/src/RequestSerializer.cpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/Recompiler.hpp
core/shader/recompiler/ShaderDiskCache.cpp
core/shader/recompiler/ShaderDiskCache.hpp
core/shader/recompiler/SpirvBackend/src/SpirvMemory/SpirvEmitterHelpers.cpp
core/shader/recompiler/SpirvBackend/src/SpirvModuleEmitter.cpp
core/shader/recompiler/tests/RequestSerializerTests.cpp
docs/dev/debt/libSceAgcDriver.md
PR 15555 core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/Optimization/src/ResourceMaterializer.cpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/ShaderDiskCache.cpp
core/shader/recompiler/ShaderDiskCache.hpp
PR 15563 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
PR 15570 core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 15572 core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
PR 15608 core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/Optimization/src/ResourceMaterializer.cpp
PR 15611 core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/Optimization/src/ResourceMaterializer.cpp
PR 15621 core/libs/prx/libSceAgcDriver/Graphics/include/DepthSurface.hpp
core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
docs/dev/debt/libSceAgcDriver.md
PR 15658 docs/dev/debt/libSceAgcDriver.md
PR 15659 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
PR 15668 core/shader/recompiler/SpirvBackend/src/SpirvMemory/SpirvEmitterHelpers.cpp
PR 15670 core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
docs/dev/debt/libSceAgcDriver.md
PR 15688 core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
docs/dev/debt/libSceAgcDriver.md
PR 15690 core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
docs/dev/debt/libSceAgcDriver.md
PR 15693 core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
core/shader/recompiler/ControlFlow/src/RequestSerializer.cpp
core/shader/recompiler/Recompiler.hpp
core/shader/recompiler/SpirvBackend/src/SpirvModuleEmitter.cpp
docs/dev/debt/libSceAgcDriver.md
PR 15703 core/libs/prx/libSceAgcDriver/Execution/src/Driver/Draw/DrawLookup.cpp
PR 15707 core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
docs/dev/debt/libSceAgcDriver.md
PR 15710 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
docs/dev/debt/libSceAgcDriver.md
PR 15719 core/shader/recompiler/CacheKey.hpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/Recompiler.hpp
PR 15750 core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
PR 15845 docs/dev/debt/libSceAgcDriver.md
PR 15868 docs/dev/debt/libSceAgcDriver.md
PR 15883 docs/dev/debt/libSceAgcDriver.md
PR 15917 core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/shader/recompiler/CacheKey.hpp
core/shader/recompiler/Recompiler.cpp
core/shader/recompiler/Recompiler.hpp
PR 15936 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
PR 15941 core/libs/prx/libSceAgcDriver/Graphics/include/DepthSurface.hpp
core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
docs/dev/debt/libSceAgcDriver.md
PR 15948 core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/Optimization/src/ResourceMaterializer.cpp
PR 16011 docs/dev/debt/libSceAgcDriver.md
PR 16025 core/libs/prx/libSceAgcDriver/Execution/src/Driver/Draw/DrawDecode.cpp
core/libs/prx/libSceAgcDriver/Graphics/include/DepthSurface.hpp
core/libs/prx/libSceAgcDriver/Graphics/include/State.hpp
core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 16053 core/libs/prx/libSceAgcDriver/Graphics/src/State.cpp
core/libs/prx/libSceAgcDriver/tests/Graphics.cpp
PR 16088 core/shader/recompiler/ShaderDiskCache.cpp
PR 16115 core/libs/prx/libSceAgcDriver/Graphics/src/Draw.cpp
PR 16116 core/libs/prx/libSceAgcDriver/Graphics/src/DepthSurface.cpp
PR 16184 docs/dev/debt/libSceAgcDriver.md
PR 16213 core/libs/prx/libSceAgcDriver/tests/ShaderDiskCache.cpp
core/shader/recompiler/ShaderDiskCache.cpp
PR 16253 docs/dev/debt/libSceAgcDriver.md
PR 16260 core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
core/shader/recompiler/IntermediateRepresentation/include/IntermediateRepresentation/IrMetadata/Resources.hpp
core/shader/recompiler/Optimization/src/ResourceMaterializer.cpp
core/shader/recompiler/ShaderDiskCache.cpp
docs/dev/debt/libSceAgcDriver.md
PR 16286 core/libs/prx/libSceAgcDriver/Graphics/src/ShaderResources.cpp
Report truncated: 32 more lines omitted.

@imellag

imellag commented Oct 26, 2026

Copy link
Copy Markdown
Contributor Author

@MarcZX10 Thanks. I proposed the order to Ondra97 on #10351: #10351 first, since it is approved and older, then this PR. Depends on now names #10351, and once it merges I'll rebase and move the disk cache format to 49.

@MarcZX10

Copy link
Copy Markdown
Contributor

One additional open overlap to coordinate: #11507 also changes ShaderDiskCache format 47 to 48, for a separate serialized shader-image field. The overlap bot lists the shared cache-version line and the related disk-cache test file. Both PRs currently propose 47→48, so whichever follows the other must preserve both serialization changes and advance the format to 49. Please coordinate the merge order with #11507’s author and reflect the dependency/order in the checklist; this is separate from the already-noted #10351 stencil-replay overlap.

@hugodearaujo

Copy link
Copy Markdown
Contributor

@imellag @Ondra97 #11507 is the other PR moving the shader disk cache format from 47 to 48 (for its new sampledOnly image field). It has no dependency and this order is its only open request, while #10351 still waits for #6782. Would #11507 → #10351 → #11551 work for you, so it doesn't wait for #6782? #10351 would then take 49 and #11551 50, each keeping the other serialization changes. If you'd rather keep your order, I'll set Depends on: #11551 on #11507 and take 50 after it instead.

@github-actions github-actions Bot added shader core/shader docs agc libSceAgc* labels Oct 27, 2026

@jotitadev jotitadev left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Linux run of head 1e2ff2603: the build breaks on Linux/GCC, and with that fixed the emulation matches the native depth bounds test on NVIDIA and lavapipe.

Linux build

Merged onto main cb45ae2dd (no conflicts), the shader recompiler stops compiling:

core/shader/recompiler/ShaderDiskCache.cpp:88:46: error: static assertion failed: CompiledShaderArtifact changed: update the artifact encoder
note: the comparison reduces to '(288 == 280)'
core/shader/recompiler/ShaderDiskCache.cpp:90:39: error: static assertion failed: RecompileResult changed: update EncodeResult and DecodeResult
note: the comparison reduces to '(552 == 544)'

These size checks sit under #if defined(__linux__) && defined(__x86_64__) && defined(__GLIBCXX__), so a macOS build doesn't see them, and the linux CI job is skipped on this PR. The new CompiledShaderArtifact::depthBoundsDword adds 8 bytes to both structs. The encoder and decoder already write and read it, so only the two numbers need to change: 280 to 288 and 544 to 552. I changed them locally for the runs below.

Tested

Ubuntu 26.04, GCC 15.2.0, Release, ANYPS5_NO_SHADER_CACHE=1, ANYPS5_REQUIRE_VULKAN=1, device chosen with VK_ICD_FILENAMES, -j1. This PR merged onto main cb45ae2dd, plus the two static_assert sizes above.

Focused tests (agc_driver_depth_bounds_emulation_draw, agc_driver_depth_bounds_state, agc_driver_graphics, agc_shader_disk_cache), --repeat until-fail:3: all pass 3/3 on both devices. The draw test forces context.depthBounds = false, so it takes the new pixel-program path here too. Both devices also have the native depthBounds feature, so every case is compared against the hardware test, which MoltenVK can't do:

device agc_driver_depth_bounds_emulation_draw
NVIDIA RTX 3070 (595.99.02) 20 cases, 12 by a depth test, all in the pixel program, 20 compared with the native test
lavapipe (Mesa 26.0.3, LLVM 21.1.8) 20 cases, 12 by a depth test, all in the pixel program, 20 compared with the native test

ctest -R "^agc" without display/flip/lds_atomics64, --timeout 30:

NVIDIA RTX 3070 lavapipe
main cb45ae2dd 1029/1030 1028/1030
this PR (+ size fix) 1030/1030 1029/1030

No new failures. On main, NVIDIA's only failure is agc_driver_sgpr_pattern_fill_keys, which passed on the later runs, so it looks flaky here. lavapipe's are agc_driver_multisample_retirement, which fails on main and with this PR, and a single agc_driver_pipeline_journal timeout on main.

I didn't run a negative control. The updated draw test uses the new depthBoundsDiscard fields, so it doesn't build against main's sources.

GPUs tested: NVIDIA GeForce RTX 3070 (595.99.02, Linux) and lavapipe (Mesa 26.0.3, LLVM 21.1.8), Ubuntu 26.04.

Written with AI assistance (Claude Code). I ran the builds and tests above on my machine.

@github-actions github-actions Bot added the needs rebase Conflicts with main, rebase needed label Oct 27, 2026
@imellag

imellag commented Oct 27, 2026

Copy link
Copy Markdown
Contributor Author

@hugodearaujo @Ondra97 #11507 → #10351 → #11551 works for me: #11507 has no dependency, and this PR comes last in either order.

One thing to check: main already moved the shader disk cache format to 48 in #8077 (ec06ba2973), and #11507 and #10351 still set 48. Git sees the same line on both sides, so both still show as mergeable, but each one now needs its own number. With this order, #11507 takes 49, #10351 takes 50 and this PR 51. Each PR keeps the others' serialization changes. I'll move this PR's number each time one of them lands, and I'll set Depends on: #10351, #11507 here.

@imellag
imellag force-pushed the feat/agc-depth-bounds-prologue branch from 1e2ff26 to b7acb0d Compare October 27, 2026 06:34
@imellag

imellag commented Oct 27, 2026

Copy link
Copy Markdown
Contributor Author

@jotitadev Thanks for the Linux run, and for the comparison with the native depth bounds test on NVIDIA and lavapipe, which MoltenVK can't do. You were right about the size checks.

I rebased onto main fe2b52c7e4 as b7acb0da81. In the meantime main took request format 47 (#10515) and disk cache format 48 (#8077), and #8077 also adds a field to CompiledShaderArtifact and RecompileResult. So the checks are now 296 and 560, which is main's 288 and 552 plus this PR's 8 bytes. macOS doesn't compile them, so I checked the difference there: both structs grow by 8 bytes. The request format is now 48 and the disk cache format 49. On macOS the five focused tests pass at the new head with the validation layer and no VUID- lines. If you have time to rebuild on Linux at this head, that would confirm the sizes on GCC.

Tested now also carries your results, and GPUs tested names your two devices.

@github-actions github-actions Bot removed the needs rebase Conflicts with main, rebase needed label Oct 27, 2026
@oneandonlydean oneandonlydean self-assigned this Oct 27, 2026

@jotitadev jotitadev left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@imellag Linux rebuild of head b7acb0da81: it compiles on GCC with the new sizes, and the results match the previous head.

Machine: Ubuntu 26.04, GCC 15.2, Release, ninja of all plus every *_tests target. Head merged onto current main 801d5b9bc with no conflicts.

  • Build: clean. The Linux-only checks in ShaderDiskCache.cpp hold at sizeof(CompiledShaderArtifact) == 296 and sizeof(RecompileResult) == 560, and fieldCount<ImageResource>() == 45 holds. PipelineJournal.cpp (State 912) compiles unchanged. public_headers passes 65 of 65.
  • Focused tests, 3 runs each, with the Khronos validation layer (1.4.341) loaded, ANYPS5_REQUIRE_VULKAN=1 and ANYPS5_NO_SHADER_CACHE=1. The 11 tests are request_serializer, agc_shader_memory, agc_shader_replay_requests, agc_shader_disk_cache, agc_shader_disk_cache_large_file, agc_driver_depth_bounds_state, agc_driver_depth_bounds_emulation_draw, agc_driver_stencil_replay, agc_driver_stencil_replay_no_gpl, agc_driver_quad_pixel_mask and agc_driver_graphics.
    • NVIDIA RTX 3070 (595.99.02): 33 of 33 pass, with no VUID- lines.
    • lavapipe (Mesa 26.0.3): 33 of 33 pass, with no VUID- lines.
    • On both devices, agc_driver_depth_bounds_emulation_draw reports 20 cases, 12 by a depth test, all in the pixel program, 20 compared with the native test.
  • Control: the new tests use depthBoundsDiscard and DepthBoundsSourceWords, so they don't build on main. To check that the draw test catches a broken prologue, I made the prologue drop only the Zs > max side. The test then fails on both devices with stored 0.25, upper bound one step below it (emulated in the pixel program): 2048 of 2048 pixels passed, expected none.
  • ^agc on lavapipe (without display, flip and lds_atomics64): 1053 of 1054 pass. The one failure, agc_driver_multisample_retirement, also fails on main on this machine.

On the format order: #11507 at b9f4f6590 also moves the disk cache to 49 and also adds an ImageResource field (fieldCount 45). So whichever of the two lands second needs fieldCount<ImageResource>() == 46 as well as the next format number. That fits the #11507 → #10351 → this PR order you agreed on.

GPUs tested: NVIDIA GeForce RTX 3070 (595.99.02), lavapipe (Mesa 26.0.3), Ubuntu 26.04

Written with AI assistance (Claude Code). I ran the builds and tests above on my machine.

@oneandonlydean

Copy link
Copy Markdown
Collaborator

Thanks, the depth-bounds emulation is carefully done, and the external validation runs are strong evidence. One change, please: Graphics.cpp DepthBoundsEmulationTests pins rejection of valid multisampled depth targets, depth writes and stencil writes. Please remove only those newly added unsupported-but-valid rejection assertions. Keep the production limitations, the debt entry, the malformed-bound checks and the positive/native comparisons. (The normalized-depth rejection predates this PR and can stay.)

Heads-up: since this touches draw keys, push constants and the disk/request schema, a maintainer will also weigh in on the design before merge.

@imellag

imellag commented Oct 27, 2026

Copy link
Copy Markdown
Contributor Author

@oneandonlydean Done in 873e799a4b: I removed the three refusal checks this PR had added to DepthBoundsEmulationTests (multisampled depth target, depth write, back-face stencil write). The production limits, the debt entry, the malformed-bound check and the positive and native comparisons stay. I kept the front-face stencil case with failOp = REPLACE: it was already on main as "writes on a failed test", and this PR only changed its expected message. If you want that one gone too, I'll remove it. On macOS (current main with the open macOS PRs), agc_driver_graphics, which runs DepthBoundsEmulationTests, passes with the validation layer and no VUID- lines.

@jotitadev Thanks for the rebuild at b7acb0da81: it confirms the sizes on GCC, and the 20 native comparisons on both devices.

@github-actions github-actions Bot added the needs rebase Conflicts with main, rebase needed label Oct 27, 2026
@imellag
imellag force-pushed the feat/agc-depth-bounds-prologue branch from 873e799 to 39d5e81 Compare October 27, 2026 16:06
@github-actions github-actions Bot removed the needs rebase Conflicts with main, rebase needed label Oct 27, 2026
@github-actions github-actions Bot added the needs rebase Conflicts with main, rebase needed label Oct 27, 2026
@imellag
imellag force-pushed the feat/agc-depth-bounds-prologue branch from 39d5e81 to 5a15547 Compare October 28, 2026 13:18
@github-actions github-actions Bot removed the needs rebase Conflicts with main, rebase needed label Oct 28, 2026
@github-actions github-actions Bot removed the needs rebase Conflicts with main, rebase needed label Nov 2, 2026
@Amoenus

Amoenus commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

@imellag Updated cache coordination: #7085 at e67130c58b now uses 61, explicitly reserved by @oneandonlydean in comment6638527658. The earlier55 reservation is superseded; main 9f35c937da06b9e05b994439ad4428c0232f608e uses56. Compiled/plan regressions reject51–60; current-source55/56 controls fail and61 restoration passes, preserving the51-field targetMerge/levelUses record. Evidence and separate #15855 build-prerequisite qualification. This does not ask your branch to change; request-serializer versions remain separate. Recheck reservations at landing. AI-assisted: yes (Codex).

@imellag

imellag commented Nov 2, 2026

Copy link
Copy Markdown
Contributor Author

@B-Howell I ran the Linux check you asked for. GCC 13.5.0 (the gcc:13 image, linux/amd64), libstdc++ with __cpp_lib_atomic_shared_ptr = 201711, so the __linux__ && __x86_64__ && __GLIBCXX__ block and the guarded line are both compiled. I compiled core/shader/recompiler/ShaderDiskCache.cpp with -std=c++20 -O2 -fsyntax-only on two trees:

  • main b28bb77217: compiles. A sizeof probe gives RecompileResult 552 and CompiledShaderArtifact 288;
  • this head b2cf782aa4: compiles, so RecompileResult == 560 and CompiledShaderArtifact == 296 hold. The probe gives 560 and 296;
  • negative control: the same head with the assert edited to 561 fails at ShaderDiskCache.cpp:91 with static assertion failed: RecompileResult changed. So the line really is evaluated there.

This is a syntax-only compile of that one file, not a Linux build or test run.

@Amoenus thanks, noted: #7085 has disk cache 54, after #10351's 52 and this PR's 53.

The failed relinker (windows-latest, g++) job on this head is unrelated: it's the 30 s timeouts of the check_compile_modes_test_* tooling tests, as on #13927.

AI-assisted: yes

@github-actions github-actions Bot added the needs rebase Conflicts with main, rebase needed label Nov 2, 2026
@TechLevelZero

Copy link
Copy Markdown
Contributor

✅ NVIDIA GPU test: passed

PR head b2cf782 merged onto main 9090972 · tested 2026-11-03 01:28 UTC · 31 min

GPU NVIDIA RTX 2000 Ada Generation, driver 595.99.02, Vulkan 1.4.329
Host Ubuntu 26.04.1 LTS, kernel 7.0.0-38-generic, container ubuntu:24.04
Logs build and test logs for this run
Build ✅ passed (Release, -DANYPS5_ENABLE_SPIRV_TOOLS=ON)
Tests ✅ 2,649 passed · 4 failed (0 new, 2 also fail on main, 2 unstable on main) · 44 skipped (ANYPS5_REQUIRE_VULKAN=1)
Test setup CPU-only tests without a GPU; GPU tests (and any CPU-only test that failed or skipped without one) once on the GPU with VK_LAYER_KHRONOS_validation and ANYPS5_NO_SHADER_CACHE=1; main ran the same way
Test selection 2,697 of 3,607 tests run: the ones this change can reach, chosen by tools/select_tests.py from main's build graph
Vulkan validation ✅ no new validation IDs vs main (976 tests run on the GPU)
Slow tests (>30 s, GPU tests timed with validation layers) ⚠️ agc_driver_pipeline_journal 120.1 s, ⚠️ agc_driver_graphics_maps_fallback 30.9 s
Unstable on main (2, these also failed in recent main runs on this machine; not counted against this PR)
agc_driver_pipeline_journal: failed in 3 of the last 10 main runs
agc_submit_progress: failed in 7 of the last 10 main runs
Failing on main too (2, not counted against this PR)
agc_driver_image_table
guest_socket_options_multicast
Validation IDs already present on main (4 IDs in 517 tests)
VUID-VkDeviceCreateInfo-pNext-pNext (517 tests): agc_driver, agc_driver_address_passes, agc_driver_alias_copy_label, agc_driver_alpha_to_coverage, agc_driver_array_layer_target, agc_driver_bc_block_copy, agc_driver_bda_anchor_reads, agc_driver_bda_span_reads, and 509 more
VUID-vkCmdCopyImage-srcImage-01548 (7 tests): agc_driver_depth_clear_hle, agc_driver_depth_plane_buffer_memory, agc_driver_depth_plane_partial_store, agc_driver_depth_plane_sampling, agc_driver_depth_storage_dispatch, agc_driver_depth_surface_from_storage, agc_driver_dispatch_move_depth
VUID-vkCmdCopyImage-srcImage-01551 (7 tests): agc_driver_depth_clear_hle, agc_driver_depth_plane_buffer_memory, agc_driver_depth_plane_partial_store, agc_driver_depth_plane_sampling, agc_driver_depth_storage_dispatch, agc_driver_depth_surface_from_storage, agc_driver_dispatch_move_depth
VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605 (1 test): agc_driver_prepared_exports
Skipped (44)
agc_driver_bda_reads_shadowed_results: skipped, the device reports watched host memory written when it imports or reads it
agc_driver_bda_reads_shadowed_results_per_build: skipped, the device reports watched host memory written when it imports or reads it
agc_driver_sample_order_grid_reference: skipped, the device does not keep depth drawn at custom sample locations at those locations, even after a transition that names them: the composite of uniform renders holds the guest's depth in 0 of 3005 sloped samples, so no path can be compared with it bit for bit
agc_host_import_sparse: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_import_settle_initial_dcc: skipped, the device has no deferred settle of host imports: imports under 1 MiB wait for one only on Windows
agc_unit_shadow_completion_store: skipped, the device reports watched host memory written when it imports or reads it
guest_http_uri_locale: 
guest_video_out_color_space: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_hdr: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_high_frame_rate: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_output_mode: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_resolution_status: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_wqhd_detection: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
video_out_flip_aftergpu: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_backtoback: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_controls: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_cpuflip: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_cpuflip_in_order: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_dcc: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_deferred: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_eop: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_eop_aftergpu: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_eop_main: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_fps_limit: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_fresh: skipped, no display or Vulkan device: 
Reproduce
git fetch origin b2cf782aa4005cf0667b6819095a55ab3c96f773 9090972b7e91fd266819cbd77a8b058e177b5682
git checkout 9090972b7e91fd266819cbd77a8b058e177b5682 && git merge --no-ff b2cf782aa4005cf0667b6819095a55ab3c96f773
git submodule update --init --recursive
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -DANYPS5_ENABLE_SPIRV_TOOLS=ON
cmake --build build && cmake --build build --target libs
VK_DRIVER_FILES=/nonexistent/icd.json ctest --test-dir build -E '^(agc|shader|recompiler|videoout|video_out|guest_video_out|vulkan)|gpu' --timeout 120 --parallel 32 --output-on-failure
ANYPS5_REQUIRE_VULKAN=1 ANYPS5_NO_SHADER_CACHE=1 VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation \
  ctest --test-dir build -R '^(agc|shader|recompiler|videoout|video_out|guest_video_out|vulkan)|gpu' --timeout 120 --parallel 4 --output-on-failure
# failures are then re-run alone: --timeout 360 --parallel 2; new validation IDs: the test alone, twice, --parallel 1

Automated build and test on a contributor's NVIDIA machine; it does not replace upstream CI. A new comment is posted for each new push. Full logs.

@Ondra97

Ondra97 commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

Current main 4f41f4c375f5abb487dbd184fbc150f31994d762 now writes disk-cache format 52. I refreshed #10351 at 867c0e95ec4feaf0b7cc43a8b5d165c724e759c6 to 53, preserving main's scratch/sampler/resource-plan fields and layer-replay flag. Its updated cache regression fails with the colliding 52 and passes with 53.

The agreed order remains #10351 → #11551. When composing #11551 after this head, please advance the combined disk-cache format to 54, rather than retaining this branch's current 53. Request serialization is a separate version sequence.

On current main + exact #6782 + #10351, the focused Windows/RTX 4070 Ti SUPER selection is 18 passed, 2 skipped, zero failed, with all four attachment cases executed, zero VUIDs and the same validation-warning count as main. #10940 has merged and is already in that base. The combined #11551 stack was not executed.

AI-assisted: yes.

@XairRrR XairRrR left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed — changes requested

This pull request does not merge cleanly into main (4f41f4c): head b2cf782 conflicts in

  • core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
  • core/shader/recompiler/ControlFlow/src/RequestSerializer.cpp
  • core/shader/recompiler/ShaderDiskCache.hpp
  • core/shader/recompiler/tests/RequestSerializerTests.cpp

Please rebase it onto current main. I will review the change once it merges cleanly.

@B-Howell

B-Howell commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

@imellag thanks, that settles it. With GCC 13.5 the guarded block is compiled, the probe gives 560 and 296, and the assert edited to 561 fails at ShaderDiskCache.cpp:91. So the RecompileResult == 560 line is evaluated on Linux and matches this head. Nothing more from me on that point.

AI-assisted: yes (Claude Code)

…ds-prologue

# Conflicts:
#	core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
#	core/shader/recompiler/ControlFlow/src/RequestSerializer.cpp
#	core/shader/recompiler/ShaderDiskCache.hpp
#	core/shader/recompiler/tests/RequestSerializerTests.cpp
@imellag

imellag commented Nov 4, 2026

Copy link
Copy Markdown
Contributor Author

@XairRrR main b11c7bf84f is merged in at 0baa466 (a merge, as before), and the conflicts are resolved: request serialization 54 (main is at 53), disk cache format 57 (main is at 56), ImageResource field count 51 after main's new field. The serializer tests now drop the depth bounds bytes below 54 and the trailing minimum LOD byte below 53. The same 7 focused tests pass on macOS on both sides with no VUID-; details in the body.

@Ondra97 #10351's head writes disk cache 53, which main has passed; whichever of our two lands second takes the next free number, as agreed.

AI-assisted: yes

@github-actions github-actions Bot removed the needs rebase Conflicts with main, rebase needed label Nov 4, 2026
@Ondra97

Ondra97 commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

Main b11c7bf84f5d2f636ff60166cc3371bd071e24d5 now writes disk-cache format 56. I refreshed #10351 at eee4853c161beac518e433a017b405f02c7ad76f to 57, preserving main's current artifact and nested resource-plan fields. The updated current-main rejection control fails with 56 and passes with 57.

The declared order remains #10351 → #11551. Your current 0baa4668cb5d4bbef35c564f238bd589e5b5bf8b also uses 57, so the combined disk cache needs 58 when #11551 follows this head. Request serialization remains a separate version sequence.

Exact current main + #6782 + #10351: 18 passed, 2 skipped, zero failed; all four attachment cases execute, with zero VUIDs and the same validation warnings as main. The combined #11551 stack was not run.

AI-assisted: yes.

@TechLevelZero

Copy link
Copy Markdown
Contributor

✅ NVIDIA GPU test: passed

PR head 0baa466 merged onto main b11c7bf · tested 2026-11-04 14:43 UTC · 29 min

GPU NVIDIA RTX 2000 Ada Generation, driver 595.99.02, Vulkan 1.4.329
Host Ubuntu 26.04.1 LTS, kernel 7.0.0-38-generic, container ubuntu:24.04
Logs build and test logs for this run
Build ✅ passed (Release, -DANYPS5_ENABLE_SPIRV_TOOLS=ON)
Tests ✅ 2,790 passed · 7 failed (0 new, 3 also fail on main, 4 unstable on main) · 49 skipped (ANYPS5_REQUIRE_VULKAN=1)
Test setup CPU-only tests without a GPU; GPU tests (and any CPU-only test that failed or skipped without one) once on the GPU with VK_LAYER_KHRONOS_validation and ANYPS5_NO_SHADER_CACHE=1; main ran the same way
Test selection 2,846 of 3,894 tests run: the ones this change can reach, chosen by tools/select_tests.py from main's build graph
Vulkan validation ✅ no new validation IDs vs main (983 tests run on the GPU)
Slow tests (>30 s, GPU tests timed with validation layers) ⚠️ agc_driver_pipeline_journal 120.1 s
Unstable on main (4, these also failed in recent main runs on this machine; not counted against this PR)
agc_driver_pipeline_journal: failed in 3 of the last 10 main runs
agc_driver_submit_progress: failed in 3 of the last 10 main runs
agc_submit_progress: failed in 4 of the last 10 main runs
agc_submit_progress_no_timeline: failed in 3 of the last 10 main runs
Failing on main too (3, not counted against this PR)
agc_driver_image_table
guest_mmap_executable
guest_socket_options_multicast
Validation IDs already present on main (13 IDs in 549 tests)
VUID-VkDeviceCreateInfo-pNext-pNext (549 tests): agc_driver, agc_driver_address_draw_space_reuse, agc_driver_address_passes, agc_driver_alias_copy_label, agc_driver_alpha_to_coverage, agc_driver_array_layer_target, agc_driver_bc_block_copy, agc_driver_bda_anchor_reads, and 541 more
VUID-VkShaderModuleCreateInfo-pCode-08737 (8 tests): agc_driver_dpp16_operands, agc_driver_dpp8_pk_fmac, agc_driver_dx10_clamp, agc_driver_float16_fma_rounding, agc_driver_float16_unused_nan_payloads, agc_driver_packed_alu, agc_driver_packed_f16_denormal_modes, agc_driver_packed_float16_native
VUID-VkShaderModuleCreateInfo-pCode-08739 (8 tests): agc_driver_dpp16_operands, agc_driver_dpp8_pk_fmac, agc_driver_dx10_clamp, agc_driver_float16_fma_rounding, agc_driver_float16_unused_nan_payloads, agc_driver_packed_alu, agc_driver_packed_f16_denormal_modes, agc_driver_packed_float16_native
VUID-VkShaderModuleCreateInfo-pCode-08741 (8 tests): agc_driver_dpp16_operands, agc_driver_dpp8_pk_fmac, agc_driver_dx10_clamp, agc_driver_float16_fma_rounding, agc_driver_float16_unused_nan_payloads, agc_driver_packed_alu, agc_driver_packed_f16_denormal_modes, agc_driver_packed_float16_native
VUID-vkCmdCopyImage-srcImage-01548 (7 tests): agc_driver_depth_clear_hle, agc_driver_depth_plane_buffer_memory, agc_driver_depth_plane_partial_store, agc_driver_depth_plane_sampling, agc_driver_depth_storage_dispatch, agc_driver_depth_surface_from_storage, agc_driver_dispatch_move_depth
VUID-vkCmdCopyImage-srcImage-01551 (7 tests): agc_driver_depth_clear_hle, agc_driver_depth_plane_buffer_memory, agc_driver_depth_plane_partial_store, agc_driver_depth_plane_sampling, agc_driver_depth_storage_dispatch, agc_driver_depth_surface_from_storage, agc_driver_dispatch_move_depth
VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605 (1 test): agc_driver_srgb8_color_target
VUID-VkPipelineShaderStageCreateInfo-module-parameter (1 test): agc_driver_float16_unused_nan_payloads
VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-06849 (1 test): agc_driver_float16_unused_nan_payloads
VUID-VkSamplerCreateInfo-addressModeU-01079 (1 test): agc_driver_image_gather_volume
VUID-VkSamplerCreateInfo-addressModeU-parameter (1 test): agc_driver_image_gather_volume
VUID-VkSamplerCreateInfo-addressModeV-parameter (1 test): agc_driver_image_gather_volume
VUID-VkSamplerCreateInfo-addressModeW-parameter (1 test): agc_driver_image_gather_volume
Skipped (49)
agc_driver_bda_reads_shadowed_results: skipped, the device reports watched host memory written when it imports or reads it
agc_driver_bda_reads_shadowed_results_per_build: skipped, the device reports watched host memory written when it imports or reads it
agc_driver_gcn_display_present: skipped, no display: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
agc_driver_sample_order_grid_reference: skipped, the device does not keep depth drawn at custom sample locations at those locations, even after a transition that names them: the composite of uniform renders holds the guest's depth in 0 of 3005 sloped samples, so no path can be compared with it bit for bit
agc_driver_scattered_runs: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_driver_sparse_dma_buf_import: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_driver_stencil_ref_export: skipped, the device lacks VK_EXT_shader_stencil_export
agc_host_import_sparse: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_import_settle_initial_dcc: skipped, the device has no deferred settle of host imports: imports under 1 MiB wait for one only on Windows
agc_unit_shadow_completion_store: skipped, the device reports watched host memory written when it imports or reads it
guest_http_uri_locale: 
guest_net_ctl: skipped, the host has no IPv4 address
guest_video_out_color_space: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_hdr: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_high_frame_rate: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_output_mode: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_resolution_status: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_wqhd_detection: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
video_out_flip_aftergpu: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_backtoback: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_controls: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_cpuflip: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_cpuflip_in_order: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_dcc: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_deferred: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_eop: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_eop_aftergpu: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not av
Reproduce
git fetch origin 0baa4668cb5d4bbef35c564f238bd589e5b5bf8b b11c7bf84f5d2f636ff60166cc3371bd071e24d5
git checkout b11c7bf84f5d2f636ff60166cc3371bd071e24d5 && git merge --no-ff 0baa4668cb5d4bbef35c564f238bd589e5b5bf8b
git submodule update --init --recursive
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -DANYPS5_ENABLE_SPIRV_TOOLS=ON
cmake --build build && cmake --build build --target libs
VK_DRIVER_FILES=/nonexistent/icd.json ctest --test-dir build -E '^(agc|shader|recompiler|videoout|video_out|guest_video_out|vulkan)|gpu' --timeout 120 --parallel 32 --output-on-failure
ANYPS5_REQUIRE_VULKAN=1 ANYPS5_NO_SHADER_CACHE=1 VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation \
  ctest --test-dir build -R '^(agc|shader|recompiler|videoout|video_out|guest_video_out|vulkan)|gpu' --timeout 120 --parallel 4 --output-on-failure
# failures are then re-run alone: --timeout 360 --parallel 2; new validation IDs: the test alone, twice, --parallel 1

Automated build and test on a contributor's NVIDIA machine; it does not replace upstream CI. A new comment is posted for each new push. Full logs.

@TechLevelZero

Copy link
Copy Markdown
Contributor

✅ AMD GPU test: passed

PR head 0baa466 merged onto main b11c7bf · tested 2026-11-04 21:46 UTC · 47 min

GPU AMD Radeon RX 6300 (RADV NAVI24), driver Mesa 25.2.8-0ubuntu0.24.04.4, Vulkan 1.4.318
Host Ubuntu 26.04.1 LTS, kernel 7.0.0-42-generic, container ubuntu:24.04
Logs build and test logs for this run
Build ✅ passed (Release, -DANYPS5_ENABLE_SPIRV_TOOLS=ON)
Tests ✅ 2,777 passed · 9 failed (0 new, 8 also fail on main, 1 unstable on main) · 60 skipped (ANYPS5_REQUIRE_VULKAN=1)
Test setup CPU-only tests without a GPU; GPU tests (and any CPU-only test that failed or skipped without one) once on the GPU with VK_LAYER_KHRONOS_validation and ANYPS5_NO_SHADER_CACHE=1; main ran the same way
Test selection 2,846 of 3,894 tests run: the ones this change can reach, chosen by tools/select_tests.py from main's build graph
Vulkan validation ✅ no new validation IDs vs main (983 tests run on the GPU)
Slow tests (>30 s, GPU tests timed with validation layers) ⚠️ agc_driver_pipeline_journal 120.5 s, ⚠️ public_headers 67.9 s, ⚠️ agc_driver_image_sample_unnormalized 51.5 s, ⚠️ agc_shader_sampler_limits 50.7 s, ⚠️ agc_driver_lazy_resolved_abi 41.6 s
Unstable on main (1, these also failed in recent main runs on this machine; not counted against this PR)
agc_driver_pipeline_journal: failed in 9 of the last 10 main runs
Failing on main too (8, not counted against this PR)
agc_driver_image_table
agc_driver_native_depth_bda_clear
agc_driver_native_multisample_depth
agc_driver_submit_progress
agc_submit_progress
agc_submit_progress_no_timeline
guest_mmap_executable
guest_socket_options_multicast
Validation IDs already present on main (8 IDs in 549 tests)
VUID-VkDeviceCreateInfo-pNext-pNext (549 tests): agc_driver, agc_driver_address_draw_space_reuse, agc_driver_address_passes, agc_driver_alias_copy_label, agc_driver_alpha_to_coverage, agc_driver_array_layer_target, agc_driver_bc_block_copy, agc_driver_bda_anchor_reads, and 541 more
VUID-vkCmdCopyImage-srcImage-01548 (4 tests): agc_driver_depth_clear_hle, agc_driver_depth_storage_dispatch, agc_driver_depth_surface_from_storage, agc_driver_dispatch_move_depth
VUID-vkCmdCopyImage-srcImage-01551 (4 tests): agc_driver_depth_clear_hle, agc_driver_depth_storage_dispatch, agc_driver_depth_surface_from_storage, agc_driver_dispatch_move_depth
VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605 (1 test): agc_driver_srgb8_color_target
VUID-VkSamplerCreateInfo-addressModeU-01079 (1 test): agc_driver_image_gather_volume
VUID-VkSamplerCreateInfo-addressModeU-parameter (1 test): agc_driver_image_gather_volume
VUID-VkSamplerCreateInfo-addressModeV-parameter (1 test): agc_driver_image_gather_volume
VUID-VkSamplerCreateInfo-addressModeW-parameter (1 test): agc_driver_image_gather_volume
Skipped (60)
agc_driver_bda_reads_shadowed_results: skipped, the device reports watched host memory written when it imports or reads it
agc_driver_bda_reads_shadowed_results_per_build: skipped, the device reports watched host memory written when it imports or reads it
agc_driver_copied_writer_label_order: skipped, the device reports a minStorageBufferOffsetAlignment of 4, so the dispatch binds its record at +0x1004 in place and nothing is written back; the test needs an alignment above 4
agc_driver_float16_unused_nan_payloads: skipped, the device has no native f16 conversions with RTE rounding and kept f16 denormals
agc_driver_gcn_display_present: skipped, no display: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
agc_driver_image_table_vouched_lookups: skipped, the device reports 4 of 4 host-imported pages written after a GPU read, so a watched imported table cannot be vouched for
agc_driver_linear_target_direct_write_completion: skipped, the device does not keep host imports write-watched, so no completion stamp over the target is tracked
agc_driver_ngg_vertex_wave_reduction: skipped, s3 describes a 32-lane wave only on 32-lane subgroups, and the device has 64 lanes
agc_driver_scattered_runs: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_driver_sparse_dma_buf_import: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_driver_unit_shadow: skipped, the device does not import watched host memory for unit shadows
agc_driver_unit_shadow_budget: skipped, the device does not import watched host memory for unit shadows
agc_host_import_sparse: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_idle_publish_wait: skipped, the device reports 4 of 4 host-imported pages written after a GPU read, so a forced watch of the import reads its submissions as CPU stores
agc_import_settle_initial_dcc: skipped, the device has no deferred settle of host imports: imports under 1 MiB wait for one only on Windows
agc_shadowed_key_stores: skipped, the device imports no watched host memory under a unit shadow
agc_small_tiled_shadow_label: skipped, host imports are unavailable: the test block is not imported and watched
agc_storage_clear_hand_over: skipped, the device imports no watched host memory for the clear-key hand-over
agc_storage_pending_key_refresh: skipped, refreshes over a pending key store are not testable here
agc_unit_shadow: skipped, the device does not import watched host memory for unit shadows
agc_unit_shadow_completion_store: skipped, the device reports watched host memory written when it imports or reads it
guest_http_uri_locale: 
guest_net_ctl: skipped, the host has no IPv4 address
guest_video_out_color_space: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_hdr: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_high_frame_rate: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_output_mode: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_resolution_status: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_wqhd_detection: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
video_out_flip_aftergpu: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_backtoback: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platf
Reproduce
git fetch origin 0baa4668cb5d4bbef35c564f238bd589e5b5bf8b b11c7bf84f5d2f636ff60166cc3371bd071e24d5
git checkout b11c7bf84f5d2f636ff60166cc3371bd071e24d5 && git merge --no-ff 0baa4668cb5d4bbef35c564f238bd589e5b5bf8b
git submodule update --init --recursive
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -DANYPS5_ENABLE_SPIRV_TOOLS=ON
cmake --build build && cmake --build build --target libs
VK_DRIVER_FILES=/nonexistent/icd.json ctest --test-dir build -E '^(agc|shader|recompiler|videoout|video_out|guest_video_out|vulkan)|gpu' --timeout 120 --parallel 12 --output-on-failure
ANYPS5_REQUIRE_VULKAN=1 ANYPS5_NO_SHADER_CACHE=1 VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation \
  ctest --test-dir build -R '^(agc|shader|recompiler|videoout|video_out|guest_video_out|vulkan)|gpu' --timeout 120 --parallel 16 --output-on-failure
# failures are then re-run alone: --timeout 360 --parallel 2; new validation IDs: the test alone, twice, --parallel 1

Automated build and test on a contributor's AMD machine; it does not replace upstream CI. A new comment is posted for each new push. Full logs.

@imellag

imellag commented Nov 6, 2026

Copy link
Copy Markdown
Contributor Author

@Ondra97 thanks, agreed: #10351 goes first. When it lands I'll merge main and move this PR's disk cache format to 58, rerun the same focused tests and update the description. Request serialization stays at 54, since it is a separate sequence.

AI-assisted: yes

@github-actions github-actions Bot added the needs rebase Conflicts with main, rebase needed label Nov 6, 2026
@Amoenus

Amoenus commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

7 November follow-up — new main format collision: @imellag the earlier v54/f16 correction is verified, but main has since allocated request version55 to a different extension. At main 4977f640527d606eacae4d948c3be22262a40e77, the v55 target-merge reader reads the widened mask, separate flags and packed/layered merge fields; its writer/accepted maximum are55. Your submitted 1d0c7b6904 uses >=55 for depthBoundsDiscard. These are again distinct layouts sharing a version. This is source-confirmed coordination, not a newly reproduced replay failure.

When refreshing, preserve main's v55 target-merge decoding and >=54 f16 flags, then allocate the next free version for depth-bounds (at least56 against this pin; recheck current main first). A useful compatibility fixture is a main-v55 request with packed/layered target merges and both f16 flags but no depth-bounds bytes: preserve every field, keep depth-bounds disabled, and reserialize into the new version. A decode gate restored to55 should fail that control. Main's disk-cache format is also now57 for changed merge data; please recheck the separate #10351 cache-version agreement when composing.

Your earlier v54 correction and negative control remain credited in your reply; the request for a new version here is caused by subsequent main changes. AI-assisted:yes,Codex.

Original source-collision report, retained for context:

@imellag A new main merge changes the request-version plan in your latest comment. #11351 has landed: main 07fae3d172f4ffcdd8fb0eed76a475a8630e716d writes/accepts request version 54 and reads the two f16 NaN flags for version >=54.

At your 0baa4668cb5d4bbef35c564f238bd589e5b5bf8b, the writer/accepted maximum are also 54, but the >=54 extension is depthBoundsDiscard inside shader info; those are distinct layouts, and that head lacks main's f16 fields. This is a source-confirmed version collision, not a measured replay failure.

On refresh, please preserve main's f16 target/cache-key fields and >=54 decoding, then allocate a fresh request version for the depth-bounds fields and move their decode gate accordingly (at least 55 against the inspected main; recheck prerequisites/landing main). A main-format-54 fixture with the f16 flags, an older request and the new depth-bounds round trip would check the boundary. Retaining 54 for both layouts is insufficient even if Git merges.

Our #7085 disk-cache reservation remains 61; request serialization is a separate sequence. No combined build/replay claim here. AI-assisted: yes (Codex).

…ds-prologue

# Conflicts:
#	core/libs/prx/libSceAgcDriver/tests/ShaderMemory.cpp
#	core/shader/recompiler/tests/RequestSerializerTests.cpp
@imellag

imellag commented Nov 6, 2026

Copy link
Copy Markdown
Contributor Author

@Amoenus thanks, you're right, and Git merged the serializer without a conflict, so both layouts would have gone out as 54. main 6ed10ccd1f is merged in at 1d0c7b6904: main's f16 NaN flags stay at 54 as main reads them, and the depth bounds discard is now read from 55 (writer and accepted maximum 55). New serializer checks read a version 54 request with both f16 flags set and no depth bounds bytes: the flags survive, the discard is off, and it is written back as the same version 55 bytes. With the decode gate put back at 54, request_serializer and agc_shader_memory fail with RequestSerializer: unexpected trailing data. The 7 focused tests pass 7 of 7 on macOS on both sides, with no VUID-; details in the body.

@Ondra97 a correction to my comment this morning: request serialization is now 55, not 54. The disk cache plan is unchanged: 57 now, 58 after #10351.

AI-assisted: yes

@github-actions github-actions Bot removed the needs rebase Conflicts with main, rebase needed label Nov 6, 2026
@TechLevelZero

Copy link
Copy Markdown
Contributor

✅ NVIDIA GPU test: passed

PR head 1d0c7b6 merged onto main 8fa2f2f · tested 2026-11-06 18:17 UTC · 21 min

GPU NVIDIA RTX 2000 Ada Generation, driver 595.99.02, Vulkan 1.4.329
Host Ubuntu 26.04.1 LTS, kernel 7.0.0-38-generic, container ubuntu:24.04
Logs build and test logs for this run
Build ✅ passed (Release, -DANYPS5_ENABLE_SPIRV_TOOLS=ON)
Tests ✅ 2,965 passed · 4 failed (0 new, 3 also fail on main, 1 unstable on main) · 54 skipped (ANYPS5_REQUIRE_VULKAN=1)
Test setup CPU-only tests without a GPU; GPU tests (and any CPU-only test that failed or skipped without one) once on the GPU with VK_LAYER_KHRONOS_validation and ANYPS5_NO_SHADER_CACHE=1; main ran the same way
Test selection 3,023 of 4,235 tests run: the ones this change can reach, chosen by tools/select_tests.py from main's build graph
Vulkan validation ✅ no new validation IDs vs main (999 tests run on the GPU)
Slow tests (>30 s, GPU tests timed with validation layers) ⚠️ agc_driver_pipeline_journal 120.1 s
Unstable on main (1, these also failed in recent main runs on this machine; not counted against this PR)
agc_driver_pipeline_journal: failed in 1 of the last 10 main runs
Failing on main too (3, not counted against this PR)
agc_driver_image_table
guest_mmap_executable
guest_socket_options_multicast
Validation IDs already present on main (9 IDs in 599 tests)
VUID-VkDeviceCreateInfo-pNext-pNext (599 tests): agc_driver, agc_driver_address_draw_space_reuse, agc_driver_address_draw_space_reuse_verify, agc_driver_address_passes, agc_driver_alias_copy_label, agc_driver_alpha_to_coverage, agc_driver_array_layer_target, agc_driver_bc_block_copy, and 591 more
VUID-VkShaderModuleCreateInfo-pCode-08737 (14 tests): agc_driver_dpp16_operands, agc_driver_dpp8_pk_fmac, agc_driver_dx10_clamp, agc_driver_f16_fma_denormal_modes, agc_driver_f16_fma_invalid_nan, agc_driver_float16_fma_rounding, agc_driver_float16_modifiers, agc_driver_float16_native, and 6 more
VUID-VkShaderModuleCreateInfo-pCode-08739 (14 tests): agc_driver_dpp16_operands, agc_driver_dpp8_pk_fmac, agc_driver_dx10_clamp, agc_driver_f16_fma_denormal_modes, agc_driver_f16_fma_invalid_nan, agc_driver_float16_fma_rounding, agc_driver_float16_modifiers, agc_driver_float16_native, and 6 more
VUID-VkShaderModuleCreateInfo-pCode-08741 (14 tests): agc_driver_dpp16_operands, agc_driver_dpp8_pk_fmac, agc_driver_dx10_clamp, agc_driver_f16_fma_denormal_modes, agc_driver_f16_fma_invalid_nan, agc_driver_float16_fma_rounding, agc_driver_float16_modifiers, agc_driver_float16_native, and 6 more
VUID-vkCmdCopyImage-srcImage-01548 (7 tests): agc_driver_depth_clear_hle, agc_driver_depth_plane_buffer_memory, agc_driver_depth_plane_partial_store, agc_driver_depth_plane_sampling, agc_driver_depth_storage_dispatch, agc_driver_depth_surface_from_storage, agc_driver_dispatch_move_depth
VUID-vkCmdCopyImage-srcImage-01551 (7 tests): agc_driver_depth_clear_hle, agc_driver_depth_plane_buffer_memory, agc_driver_depth_plane_partial_store, agc_driver_depth_plane_sampling, agc_driver_depth_storage_dispatch, agc_driver_depth_surface_from_storage, agc_driver_dispatch_move_depth
VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605 (1 test): agc_driver_prepared_exports
VUID-VkPipelineShaderStageCreateInfo-module-parameter (1 test): agc_driver_float16_unused_nan_payloads
VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-06849 (1 test): agc_driver_float16_unused_nan_payloads
Skipped (54)
agc_driver_bda_reads_shadowed_results_per_build: skipped, the device reports watched host memory written when it imports or reads it
agc_driver_gcn_display_present: skipped, no display: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
agc_driver_sample_order_grid_reference: skipped, the device does not keep depth drawn at custom sample locations at those locations, even after a transition that names them: the composite of uniform renders holds the guest's depth in 0 of 3005 sloped samples, so no path can be compared with it bit for bit
agc_driver_scattered_runs: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_driver_vertex_elected_atomic_max: skipped, the device runs vertex programs in subgroups, so they keep their cross-lane reductions
agc_host_import_sparse: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_unit_shadow_completion_store: skipped, the device reports watched host memory written when it imports or reads it
guest_http_uri_locale: 
guest_net_ctl: skipped, the host has no IPv4 address
guest_net_ctl_disconnected: skipped, the host has no IPv4 address
guest_video_out_color_space: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_device_capability: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_hdr: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_high_frame_rate: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_host_resolution_disabled: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_host_resolution_four_k: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_host_resolution_height_only: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_host_resolution_limit: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_host_resolution_malformed: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_host_resolution_width_only: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_output_mode: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_resolution_status: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_wqhd_detection: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
video_out_flip_aftergpu: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_backtoback: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_controls: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_cpuflip: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_cpuflip_in_order: skipped, no display or Vulkan device: DisplayW
Reproduce
git fetch origin 1d0c7b69041a8a4729ed7056e40eae7ba5474dbf 8fa2f2f8881b537b24062bd377badebae8d97abf
git checkout 8fa2f2f8881b537b24062bd377badebae8d97abf && git merge --no-ff 1d0c7b69041a8a4729ed7056e40eae7ba5474dbf
git submodule update --init --recursive
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -DANYPS5_ENABLE_SPIRV_TOOLS=ON
cmake --build build && cmake --build build --target libs
VK_DRIVER_FILES=/nonexistent/icd.json ctest --test-dir build -E '^(agc|shader|recompiler|videoout|video_out|guest_video_out|vulkan)|gpu' --timeout 120 --parallel 32 --output-on-failure
ANYPS5_REQUIRE_VULKAN=1 ANYPS5_NO_SHADER_CACHE=1 VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation \
  ctest --test-dir build -R '^(agc|shader|recompiler|videoout|video_out|guest_video_out|vulkan)|gpu' --timeout 120 --parallel 4 --output-on-failure
# failures are then re-run alone: --timeout 360 --parallel 2; new validation IDs: the test alone, twice, --parallel 1

Automated build and test on a contributor's NVIDIA machine; it does not replace upstream CI. A new comment is posted for each new push. Full logs.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agc libSceAgc* docs needs rebase Conflicts with main, rebase needed shader core/shader

Projects

None yet

Development

Successfully merging this pull request may close these issues.