Repository navigation
Description
What happens
Since #13931, four tests fail on Windows with an RTX 5070 Ti: agc_driver_pipeline_journal and the capture step of agc_pipeline_binary_vulkan exit with 0xc0000374 (STATUS_HEAP_CORRUPTION), and agc_driver_lazy_resolved_abi and agc_driver_lazy_resolved_abi_switch_set stop with AGC graphics: lazy resolved ABI: the eager reference process failed.
Title, test or build step
agc_driver_pipeline_journal, agc_pipeline_binary_vulkan, agc_driver_lazy_resolved_abi, agc_driver_lazy_resolved_abi_switch_set
AnyPS5 commit
main f2d874c1fd, nothing merged on top. Bisected over first-parent merges:
| Commit | Result |
|---|---|
d94fad17de (first parent of the #13931 merge) |
the three older tests pass, 3 of 3 each; agc_pipeline_binary_vulkan does not exist yet |
d8b60b46ed (#13931 merge) |
all four fail |
f2d874c1fd |
all four fail on every run |
System
Windows 11 Home 10.0.26200, NVIDIA GeForce RTX 5070 Ti (10de:2c05), driver 621.01, Vulkan 1.4.357. WinLibs GCC 16.2.0 (x86_64-ucrt-posix-seh, r3), Ninja, Release, BUILD_TESTING=ON. The machine also has the integrated Radeon of a Ryzen 7 7700X (1002:164e, AMD 24.30.18).
Host report
AnyPS5 host report (format 1)
commit: f2d874c1fdcc
[system]
os: Windows 10.0.26200
cpu: AMD Ryzen 7 7700X 8-Core Processor
cpu_threads: 16
memory_mib: 31849
cpu_gate: passed
[sdl]
linked: 2.33.0
compiled: 2.33.0
[gpu]
device: NVIDIA GeForce RTX 5070 Ti
type: discrete
vendor_id: 0x10de
device_id: 0x2c05
vulkan_api: 1.4.357
driver: NVIDIA
driver_info: 621.01
driver_version_raw: 0x9b404000
subgroup_size: 32
device_local_mib: 15995
candidates: NVIDIA GeForce RTX 5070 Ti, AMD Radeon(TM) Graphics
present_modes: unknown
present_mode_requested: default
[vulkan]
VK_KHR_8bit_storage: extension required present
VK_KHR_buffer_device_address: extension required present
VK_KHR_shader_float_controls: extension required present
bufferDeviceAddress: feature required present
fragmentStoresAndAtomics: feature required present
samplerAnisotropy: feature required present
shaderInt64: feature required present
shaderSignedZeroInfNanPreserveFloat32: feature required present
storageBuffer8BitAccess: feature required present
textureCompressionBC: feature required present
vertexPipelineStoresAndAtomics: feature required present
VK_EXT_external_memory_host: extension optional present
VK_EXT_fragment_shader_interlock: extension optional present
VK_EXT_hdr_metadata: extension optional present
VK_EXT_memory_budget: extension optional present
VK_EXT_mesh_shader: extension optional present
VK_EXT_present_mode_fifo_latest_ready: extension optional present
VK_EXT_provoking_vertex: extension optional present
VK_EXT_sample_locations: extension optional present
VK_EXT_sampler_filter_minmax: extension optional present
VK_EXT_shader_demote_to_helper_invocation: extension optional present
VK_EXT_shader_image_atomic_int64: extension optional present
VK_KHR_draw_indirect_count: extension optional present
VK_KHR_driver_properties: extension optional present
VK_KHR_fragment_shader_barycentric: extension optional present
VK_KHR_maintenance5: extension optional present
VK_KHR_present_mode_fifo_latest_ready: extension optional present
VK_KHR_shader_atomic_int64: extension optional present
VK_KHR_shader_clock: extension optional present
VK_KHR_shader_terminate_invocation: extension optional present
VK_KHR_spirv_1_4: extension optional present
[shader_cache]
state: present
size_mib: 0
[environment]
ANYPS5_GPU: RTX 5070
ANYPS5_HOST_REPORT: 1
ANYPS5_NO_SHADER_CACHE: 0
ANYPS5_REQUIRE_VULKAN: 1
ANYPS5_SHADER_CACHE_DIR: <path>
APS5_NO_PIPELINE_JOURNAL: 0
APS5_PIPELINE_JOURNAL_MAX_MIB: 1
APS5_PIPELINE_JOURNAL_THREADS: 2
APS5_VERIFY_SET_LAYOUTS: 1
Steps to reproduce
ANYPS5_REQUIRE_VULKAN=1 ANYPS5_NO_SHADER_CACHE=1 ANYPS5_GPU="RTX 5070" ctest --test-dir build -R "^(agc_driver_pipeline_journal|agc_pipeline_binary_vulkan|agc_driver_lazy_resolved_abi|agc_driver_lazy_resolved_abi_switch_set)$" --output-on-failure
Each test stops within 2 s.
Log
agc_driver_pipeline_journal prints nothing after device creation and the write-watch probe, and no [pipeline-binary] line. Under gdb, in a RelWithDebInfo build of the same commit:
warning: HEAP[agc_driver_pipeline_journal_tests.exe]:
warning: Invalid address specified to RtlSizeHeap( 0000000000100000, 000000FC41F29948 )
#3 (anonymous namespace)::Release (block=0xfc41f29948, bytes=8456599133855809538) at core/libs/prx/libSceAgcDriver/Execution/src/HostAllocator.cpp:181
#23 std::filesystem::__cxx11::path::~path (this=0x105f40)
#24 AgcDriver::Graphics::PipelineBinaryStore::PipelineBinaryStore (this=<optimized out>, context=..., properties=...) at core/libs/prx/libSceAgcDriver/Graphics/src/PipelineBinaryStore.cpp:128
Frames 4 to 16 do not unwind, so the line is approximate: a std::filesystem::path with a garbage capacity is freed while the store is constructed.
What was checked
| Run | Result |
|---|---|
| RTX 5070 Ti, as above | all four fail on every run |
RTX 5070 Ti, APS5_NO_PIPELINE_BINARIES=1 |
agc_driver_pipeline_journal and both lazy_resolved_abi tests pass; agc_pipeline_binary_vulkan still fails in capture with 0xc0000374 |
RTX 5070 Ti, VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation (SDK 1.4.363.0) |
all four pass, 3 of 3 each, no VUID-; agc_pipeline_binary_vulkan logs 36 [pipeline-binary] lines |
RTX 5070 Ti, VK_LOADER_LAYERS_DISABLE=~implicit~ (no layer inserted) |
agc_driver_pipeline_journal fails |
| RTX 5070 Ti, Debug build | agc_driver_pipeline_journal passes |
Radeon iGPU, ANYPS5_GPU=Radeon |
all four pass; the store builds, saves and loads binaries |
vkGetPipelineKeyKHR(device, nullptr, &key)called from a standalone program on a device withVK_KHR_maintenance5andVK_KHR_pipeline_binaryenabled returnsVK_SUCCESSwithkeySize8 on the RTX 5070 Ti (20 on the Radeon) and writes nothing past the struct.- Stopped at
PipelineBinaryStore.cpp:127in the RelWithDebInfo build,globalKeyholdskeySize8 after the call anddirectoryis unchanged. - The include directories and compile flags of
PipelineBinaryStore.cpp,VulkanDevice.cppandPipelineJournal.cppare the same (3rdparty/Vulkan-Headers,-O3).
I have not found the write that corrupts the heap. #13931 was tested on an RTX 4080 with driver 610.88, so the driver version or GCC 16.2 may be what separates this machine.
AI-assisted: yes (Claude Code)
Activity
LeandroLP23 commentedon Nov 1, 2026
I can't reproduce this on two other Windows machines with
maine0caf13600, which includes #13931. Setup:ANYPS5_REQUIRE_VULKAN=1 ANYPS5_NO_SHADER_CACHE=1 VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation, the same four tests, 3 runs each.There is no
0xc0000374, noVUID-line, and the layer loaded.agc_driver_pipeline_journaltakes about 18 s on the RTX 5060 Ti.The RTX 5060 Ti has the same driver as your RTX 5070 Ti, so the two differences left between your machine and these two are:
ANYPS5_GPUselecting one.If you can, a build with GCC 15.2.0 r7, or a run with the iGPU disabled in Device Manager, would show which of the two it is.
AI-assisted: yes (Claude Code)
mashingaan commentedon Nov 2, 2026
A potentially relevant upstream change landed after the reported
f2d874c1fd: PR #14839 fully reverted #13931, which this report bisected as the first bad change. The revert's Windows hosted CI passed (run), and the currentmaintree no longer containsPipelineBinaryStore.cpp. This strongly suggests that the reported path has been removed, but it does not verify the RTX 5070 Ti / GCC 16.2 setup. Could you rerun the four listed tests on currentmainand update this issue with the result? If they pass, this issue can be closed as fixed by the revert.Superseabas commentedon Nov 2, 2026
Fixed on current
mainby the revert in #14839: onb28bb77217,agc_driver_pipeline_journal,agc_driver_lazy_resolved_abiandagc_driver_lazy_resolved_abi_switch_setpass 3 of 3 each on the RTX 5070 Ti, with the same setup and WinLibs GCC 16.2.0 r3.agc_pipeline_binary_vulkanno longer exists.@LeandroLP23, on the second device: it is not that. The RelWithDebInfo build of
f2d874c1fd(with #13931) still exits with0xc00003743 of 3 withVK_LOADER_DRIVERS_DISABLE=*amd*, where the loader reports one physical device, the RTX 5070 Ti. With both devices visible it fails the same way. That leaves the compiler as the difference from your two machines; I have not built #13931 with GCC 15.2.0 r7. If the store comes back, it is worth running these tests with GCC 16.2 before it lands.Closing as fixed by #14839.
AI-assisted: yes (Claude Code)