Repository navigation
chore(agc): log the storage upload submit and done lines only with APS5_DEBUG_LOG - #12813
Conversation
…S5_DEBUG_LOG Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
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.
|
|
Checked the overlap report by hand. This needs no Depends on:
AI-assisted: yes (Claude Code) |
✅ NVIDIA GPU test: passedPR head
Unstable on main (1, these also failed in recent main runs on this machine; not counted against this PR)Failing on main too (3, not counted against this PR)Validation IDs already present on main (4 IDs in 495 tests)Skipped (45)ReproduceAutomated 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. |
|
On the NVIDIA GPU test result for
So this looks like a buffer that outlives or crosses its device in the test's driver-submit cases, and the timing on that machine decides whether it's reused. It doesn't look like an effect of this change. I haven't found the buffer yet; the order of upload completion is my best lead. AI-assisted: yes (Claude Code) |
BunnyFl
left a comment
There was a problem hiding this comment.
Still applies to current main f6232fcfda: both lines are unconditional APS5_LOG_CHARS_OUT at core/libs/prx/libSceAgcDriver/Graphics/src/Texture.cpp:3186 and :3188. APS5_LOG_CHARS_OUT_DEBUG (core/libs/prx/libc/include/general/LogMacros.hpp:123, :126) prints only with APS5_DEBUG_LOG and is ((void)0) otherwise, so the submit/wait between them is unchanged.
Windows 11, WinLibs GCC 15.2.0: the merged Texture.cpp compiles with no warnings. I didn't run a storage-upload test; nothing outside the two log lines changes.
What
The synchronous upload in
Texture.cppprintedStorageTexture upload submitandStorageTexture upload doneunconditionally, around the blocking submit of every storage image upload. Both now useAPS5_LOG_CHARS_OUT_DEBUG, as the matching writeback lines do since #12244, so they are compiled out unlessAPS5_DEBUG_LOGis defined. +2/−2, no behaviour change.Tested
CachyOS Linux (kernel 7.3.0-4-cachyos), GCC 16.2.1, Release, NVIDIA GeForce RTX 4070 SUPER (615.78.08).
Focused tests:
mainf99d7fece3and this change on it (6eec740e13), withANYPS5_REQUIRE_VULKAN=1 ANYPS5_NO_SHADER_CACHE=1 VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation ctest --test-dir build-tests -V -R '^(agc_driver_prepared_shaders_indirect|agc_driver_recorder|agc_driver_array_layer_target_cpu|agc_driver_depth_plane_partial_store_buffer_copy|agc_driver_image_table_cache|agc_recorder_cube|agc_storage_split_writeback|agc_driver_bc_block_copy|agc_driver_vertex_target_range_copied|agc_slice_dirty|agc_driver_staged_clear_sampled_read_draw_pipeline|agc_driver_depth_surface_from_storage)$'. These are the twelve tests that print the lines in a fullagc_run onmain(1,110 of 1,110 pass there). After rebasing onto365ad48546(head93568c8644;Texture.cppis unchanged onmainin between), the same twelve pass again with noVUID-line and noStorageTexture uploadline.mainVUID-lineswas not found but was requested by env var VK_INSTANCE_LAYERSStorageTexture uploadlinesPPSA26344 (02.002.000),
mainf99d7fece3and this change, one run each from launch, withanyps5-entitlements.inilisting the add-on label the title needs. Both runs stop about 116 s in on AGC: Ghost of Yōtei (PPSA26344) stops on a draw that blends unclamped normalized color into two color targets #12796, which this does not touch:StorageTexture uploadlinesmainGTA V (PPSA04264) takes no synchronous storage upload, so its logs have none of these lines on either build.
python3 tools/check_conventions.py --base origin/mainandgit diff --checkpass.Overlap and merge order: I merged each pull request
tools/pr_overlap.pylists with this PR, and separately withmain, and compared the conflicts inTexture.cpp, the only file this PR changes.APS5_LOG_CHARS_OUT_DEBUGwhere they end up:vkCmdPipelineBarriercall on the line beforeupload submitwithimageBarrier;if (batch)block;vkCmdPipelineBarriercall through the device function table.Texture.cppresult as merging withmain, either the same conflicts as withmain(feat(agc): retain and refresh sampled depth array storage #1368, feat(agc): add experimental depth clear and copy recognition #1395, perf(libSceAgcDriver): keep storage surfaces tracked around unwatching host imports #4448, perf(agc): reuse cached draw stages when only buffer base addresses moved #5609, perf(agc): an untracked comparison memo holds until memory it covers is forgotten #6187, perf(agc): compile uncached draws ahead of queue 0 #6188, perf(agc): fast revalidation over untracked memory proves a surface by its stamp until the next ordering point #6192, perf(agc): import storage surfaces that cross the import window through a joined import #6197, perf(agc): a DCC key proof over untracked memory holds until the next ordering point #6209, fix(agc): keep texture images inside their extent's mip chain #6280, fix(agc): fault image table entries the device or guest memory cannot hold #6481, fix(agc): keep guest stores over freed storage-image memory #6960, fix(agc): sample multisampled targets in read-only layout #6971, feat(agc): render layered draws into a depth view of several slices #7256, feat(agc): trace ranges that leave the write watch #7604, fix(agc): build a partially committed sampled 3D view from its committed slices #10064) or none in this file (feat: run PS4 games on the AGC driver — Limbo (CUSA01664) in game (integration branch) #6977, perf(agc): answer Refresh's registry and host-import lookups from an index and a cache #7514, feat(agc): look up table images at run time through a device image table on the GPU heap (APS5_GPU_PATH) #7642, fix(agc): preserve CPU writes after resident linear target draws #8246, feat(libSceGnmDriver): build PS4 command buffers and submit them #9432, perf(agc): GPU descriptor heap on VK_EXT_descriptor_heap (APS5_GPU_HEAP) #9508, fix(agc): decode PS4 texture bases, linear-aligned targets and thin-tiled 3D textures #9891, feat(agc): draw PS4 multisampled color targets as host-resident targets #9892, feat(agc): write RELEASE_MEM DATA_SEL 4 for PS4 guests as an 800 MHz count #9893, fix(agc): keep PS4 depth planes coherent with buffer reads of their memory #9895, feat(agc): serve lane-keyed, pointer and runtime image-table columns #10193, fix: define decoded AGC state and bound size arithmetic #10249, feat(agc): suballocate sampled and storage image memory #10472, feat(agc): honour the DEPTH row pitch of linear 2D textures as RDNA2 does #11280, fix(agc): do not wait for a storage image's own stamped writes before flushing it #12070, feat(agc): apply a T#'s MIN_LOD clamp in the shader without VK_EXT_image_view_min_lod #12662).Not checked: a build with
APS5_DEBUG_LOGdefined (the macro's debug branch is unchanged and already used elsewhere), and Windows or other GPUs.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file.mdfiles or images added to the repository (attach them to this PR)🤖 Generated with Claude Code