Repository navigation
Conversation
PS4 color and depth targets, PS4 graphics EOP events, and the PS4 tile modes (1D/2D thin and display, depth with tile split, PRT, linear general) on the AGC executor, with a GPU detiler for every mode. Textures sampled over the padded corner of a render target are GPU block copies, and the PS4 SDK pattern-fill compute kernel runs as a GPU fill when it repeats one dword, so render targets and HTILE are cleared without a CPU drain. Two-dword patterns keep running the kernel: as fills, Limbo's clears of its 64-bit target made its gameplay advance about half as far per frame. Tests cover the tiling equations against addrlib formulas, the GPU detiler for every mode and element size, and the fill ranges.
…p test The 4 KiB display buffer alignment check now names linear and PS4 buffers, because PS4 tiled display buffers may be 4 KiB aligned too. video_out_flip_ps4 still looked for the old text when a PS4 buffer set is changed to the PS5 tiled layout, so it failed although the change is still refused.
GuestTextureResource keeps this branch's gcnPitch, gcnPow2Pad and gcnLinearGeneral and main's fmaskCmaskAddress. layeredDepthStorage drops the layer-pitch refusal, since main's LayeredDepthStorage now places each layer at GuestLayerOffset, and keeps this branch's refusal of level-major PS4 surfaces, whose layers GuestLayerOffset does not place. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 25, 2026
savvaniss
added a commit
to savvaniss/AnyPS5
that referenced
this pull request
Oct 25, 2026
Brings in main 07da04f through the boykopovar#9431 merge offered as Get-fix#22. main replaced the DB depth copy compute pass (RunDepthCopyPass) with a draw through the normal path, so this branch's linear check in it goes with it: a depth copy into a GcnLinear target is now drawn like any other draw into a linear target that is not resident. The texture tiling test keeps both sides' includes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
12 tasks done
savvaniss
added a commit
to savvaniss/AnyPS5
that referenced
this pull request
Oct 25, 2026
Brings in main 07da04f through the boykopovar#9431 merge offered as Get-fix#22. No file conflicts. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Open
12 tasks done
savvaniss
added a commit
to savvaniss/AnyPS5
that referenced
this pull request
Oct 25, 2026
Brings in main 07da04f through the boykopovar#9431 merge offered as Get-fix#22. The PM4 tests keep this branch's GCN DATA_SEL 4 counter test and main's new MEM_SEMAPHORE test side by side. The debt file takes main's point-size, vertex-path point list and MEM_SEMAPHORE entries and keeps this branch's RELEASE_MEM system counter entry, which main did not change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Open
12 tasks done
savvaniss
added a commit
to savvaniss/AnyPS5
that referenced
this pull request
Oct 25, 2026
Brings in main 07da04f through the boykopovar#9431 merge offered as Get-fix#22. The PS4 tile mode lands in main's decodeDepthPlane, which now holds boykopovar#9431's PS4 depth decode. The debt file keeps this branch's PS4 depth plane entry under the guest-memory entry it extends, followed by main's shared-memory and unmapped-plane entries. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
12 tasks done
adriadam10
force-pushed
the
ps4/agc-gcn
branch
from
October 28, 2026 12:30
26d651d to
eefa508
Compare
Author
|
Closing this: boykopovar#9431 merged into boykopovar/AnyPS5 main on 29 Oct, so this merge is no longer needed. Thanks. AI-assisted: yes (Claude Code) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
main(07da04f947) merged intops4/agc-gcn(26d651d3e0), for boykopovar#9431. It is one merge commit,4e8243ac48, with no rebase, so you can fast-forwardps4/agc-gcnto it or merge it. Two files conflicted; every other file merged automatically.Graphics/include/GuestTextureResource.hpp: the struct keeps this branch'sgcnPitch,gcnPow2PadandgcnLinearGeneral, andmain'sfmaskCmaskAddress(the FMASK series from feat(agc): expose expanded FMASK for tracked native owners boykopovar/AnyPS5#7948).DecodeTextureResourcezeroes words 6 and 7 of a PS4 T# before it reads the metadata bits.fmaskCmaskAddressstays 0 for PS4 textures.Graphics/src/DepthSurface.cpp,layeredDepthStorage:main's fix(agc): place a layered depth storage view at the guest's layer pitch boykopovar/AnyPS5#8109 removed the refusal of a layer pitch other than the depth slice size. ItsLayeredDepthStoragenow places layer n atn * GuestLayerOffset(1), so that refusal is gone here too.Require(!geometry.levelMajor, ...)stays in front of it.mip.tiledSizeapart, notGuestLayerOffsetapart, somain's new placement would be wrong for it.DepthPlaneCopy::Refreshand the sampled depth-plane slices).Not in this merge: the Linux journal size check that oneandonlydean and ntamas94 raised on boykopovar#9431. On
main,PipelineJournal.cppnow checkssizeof(State) == 840andsizeof(ShaderStages) == 112. The merge doesn't touch them, and what the journal does withlegacyVertexis still your call.Untested after this merge: PS4 DB depth copies.
main's feat(agc): draw DB depth copies with a driver pixel program boykopovar/AnyPS5#8999 replaced the DB depth copy compute pass (RunDepthCopyPass) with a draw through the normal path.DepthCopySourceWords.decodeDepthPlane, which now holds this branch's PS4 depth decode.Tested
Windows 11 Pro 26300, WinLibs GCC 15.2.0, Release, AMD Radeon RX 9070 XT (driver 32.0.31041.1004), with
ANYPS5_GPU=AMD,ANYPS5_REQUIRE_VULKAN=1,ANYPS5_NO_SHADER_CACHE=1andVK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation,ctest -V, onmain07da04f947and on this merge.Tests run: 50 in total:
agc_driver,agc_driver_pm4,agc_driver_graphics(texture tiling, detiler, texture resource, color target layout),agc_driver_register_key,agc_driver_gcn_detileandagc_driver_pattern_buffer_fillagc_driver_flipand the 16video_out_flip_*modesagc_gcn_decode,texture_format_lookup,agc_driver_resource_cache_replaced_textureandagc_depth_copy_kept_bytesagc_driver_depth_*tests, among themagc_driver_depth_storage, which covers fix(agc): place a layered depth storage view at the guest's layer pitch boykopovar/AnyPS5#8109's layered storage pathResults:
main07da04f947agc_driver_gcn_detileis not onmain)agc_driver_depth_plane_partial_storeagc_driver_depth_plane_partial_storeagc_driver_depth_plane_partial_storefails the same way on both: "repeated lookups of the first layer of an unchanged array proved no refresh". It fails on every run on this machine, so it is not from the merge.VUID-line orwas not found but was requested by env var VK_INSTANCE_LAYERS. EverySelected GPUline names the RX 9070 XT.tools/check_conventions.py --base origin/mainreports no code findings.tools/pr_overlap.py --branch merge/9431-main(againstmain88f99678bf) finds trial-merge conflicts with feat(agc): draw tessellation followed by an NGG geometry stage boykopovar/AnyPS5#6612, perf(agc): store whole words of 1- and 2-byte texels in the detile shader boykopovar/AnyPS5#6905, feat(agc): back extra guest mip levels with storage images boykopovar/AnyPS5#7085, fix(agc): raise no end-of-pipe event from flips and carry the release's interrupt context boykopovar/AnyPS5#7978, perf(agc): GPU descriptor heap on VK_EXT_descriptor_heap (APS5_GPU_HEAP) boykopovar/AnyPS5#9508, perf(agc): reuse user-data callee links and check a cached raw shader's range once boykopovar/AnyPS5#9899, fix(agc): follow RDNA 2's range checks for strided vertex fetches with OOB_SELECT 2 and 3 boykopovar/AnyPS5#9915, fix(agc): build a partially committed sampled 3D view from its committed slices boykopovar/AnyPS5#10064, fix(agc): clamp an exported pixel depth to the viewport depth range boykopovar/AnyPS5#10348, fix(shader): decode a T# with an unset format field as null boykopovar/AnyPS5#10556, perf(agc): take the texture detiler's Vulkan entry points from the device table boykopovar/AnyPS5#10764 and fix(agc): select the first level of a single-level depth view boykopovar/AnyPS5#11098.GuestTextureResource.hpporDepthSurface.cpp, the two files this merge resolves.Checklist
main; no other open PR implements the same functions (main07da04f947merged intops4/agc-gcn)NotImplemented_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