Repository navigation
Conversation
|
Thank you for your interest in the project! We are sorry, but we cannot accept more PRs while we work through the existing backlog. This PR has been automatically closed and labeled "intake paused". This is not a judgment of the quality of your changes. |
…raws A draw whose stages bind a BDA table or a fault buffer builds resources that need completion work, so noteReusable never keeps them and the shared resource cache never holds an entry such a draw could hit. Building the content key and probing the cache for each of them was pure cost. Those draws now skip both (ShaderResources::NeverReusable) and count as uncacheable.
Every small host buffer (size classes below 1 MiB: draw and dispatch data, copied regions, snapshots) had a VkDeviceMemory of its own. When the pool missed, the worker paid a vkAllocateMemory and vkMapMemory, and the release thread a vkUnmapMemory and vkFreeMemory, for each one. The frees also stall the worker's vkQueueSubmit in the driver. A host-visible buffer of a size class now gets its own VkBuffer bound into a slot of a shared block (2 MiB, or 8 slots for the large classes) per memory type, size class and device-address use, mapped once. Releasing it destroys only the VkBuffer and returns the slot; a block is freed when it empties and its slab already keeps an empty one. A slot is used only when the buffer's alignment and the non-coherent atom divide its size class, so the slot offset is valid for the bind and Invalidate covers exactly the slot. The pool still retains released buffers by class as before; only what backs them changed.
DescriptorBinding gains bufferRead next to bufferWritten and bufferAtomic, filled from the resource tracker's per-buffer read flag and kept in the shader disk cache (format 24).
A written V# element bound in place in a host import makes every load a PCIe round trip. A particle update that loads and stores a 10 MiB pool (2048x64 threads over 131072 records of 80 bytes), above the 2 MiB written window, took about 4.8 ms of GPU per frame. An element the shader also reads (DescriptorBinding::bufferRead), written by a direct dispatch whose threads times the V# stride cover at least half of it, now takes device-local staging up to 16 MiB: that dispatch drops to about 0.06 ms plus 0.9 ms of bulk copies. The coverage test keeps a kernel that updates about 12k records of a 16 MiB pool in place, where staging all of it would cost 1.3 ms of copies for a 0.08 ms kernel. Write-only elements, indirect dispatches and raw (stride 0) buffers keep the 2 MiB window.
perf(agc): sub-allocate small host buffers from shared memory blocks
…aw-key perf(agc): skip the resource-cache key and lookup for address-based draws
…entries A resource build decodes every image element's eight descriptor words, describes the surface (a mip layout with a vector of levels) and finds the sampled texture's cache entry by hashing its key, once in stage A and again in stage B. Most elements repeat a small set of descriptors from build to build. Each worker now keeps a small direct-mapped memo by descriptor words of the decoded resource, its guest size and view component mapping (pure functions of the words) and of the cache entry the words last found. The entry is reused only while the sampled texture cache has erased no entry since it was found (an erase counter bumped by eraseTexture), so the list iterator is still valid and still holds the same key; anything else takes the hash lookup.
…he same texture A build's sampled image elements often repeat the element just before them in plan order (the same eight descriptor words). Each still took its own stage-A record (decode, collect, DCC key read, cache entry) and its own stage-B lookup. The lookups run in plan order and nothing runs between two consecutive ones, so a repeated element's lookup would find the state the previous lookup just left: the entry it validated or made, current against the same collect. Such an element now binds the previous element's texture (when the depth-compare flag matches too, which is part of the cache key), and stage A gives it a record of the decoded descriptor only. An element repeating an earlier but not the immediately preceding one still takes its own lookup, as does any element after a storage image lookup.
perf(agc): memoize decoded image descriptors and their texture cache entries
perf(agc): resolve a sampled element repeating the one before it to the same texture
…er-staging perf(agc): stage read and written buffer elements a dispatch sweeps
ci(pr): set min intake pr count to 10
PPSA11386 imports it; on main it is one of the title's three missing imports, with sceSslGetCaList and sceSslFreeCaList, and the title does not call it during its start-up. The signature is unknown, so it is declared without parameters and throws. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
SleglJan
force-pushed
the
feat/libscenet-show-netstat
branch
from
October 10, 2026 16:15
625321d to
875ff3f
Compare
Owner
Author
|
Merged upstream as boykopovar#2831. |
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
Declares
sceNetShowNetstatin libSceNet. PPSA11386 (007 First Light) imports it; onmain8b393b6 it is one of the title's three missing imports, withsceSslGetCaListandsceSslFreeCaList(feat/libscessl-ca-liston this fork), so the host loader refuses the title until all three exist. The title does not call it during its start-up: with the three fork branches it runs to the shader in boykopovar#1921 without reaching it. The signature is unknown (shadPS4 declares it without parameters, as it does all its stubs), so it is declared without parameters and throws throughNotImplemented_nid_no_patch; recorded in TechnicalDebt.Overlap: boykopovar#2266 declares
sceNetShowNetstatWithMemoryand the othersceNetShow*WithMemoryexports, not this one. The declaration sits aftersceNetErrnoLoc; a trial merge against each open pull request that changeslibSceNet/Export.cpp(boykopovar#1588, boykopovar#1786, boykopovar#2182, boykopovar#2185, boykopovar#2195, boykopovar#2266, boykopovar#2281) is clean in that file (at the end of the file it would conflict with boykopovar#2266).Tested
BUILD_TESTING=ONandANYPS5_ENABLE_SPIRV_TOOLS=ON, onmain8b393b6: builds; the patchedlibSceNet.prxexportsWxislcDAW5I;tools/check_conventions.py --base upstream/mainpasses. Full ctest on an integration build with the two sibling branches: 520/521 on the RTX 3080; the failure,agc_driver_dcc_keys_first_write, fails onmaintoo ([bug] agc_driver_dcc_keys_first_write fails on main on a real NVIDIA GPU boykopovar/AnyPS5#2188). No test: the export only throws, and a test that only checks the export is ruled out by CONTRIBUTING.sceNetShowNetstatis not called on the way.main8b393b6, run 37987891724: Linux 520/520 (lavapipe), Windows 511/511.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed in TechnicalDebt.mdfiles or images added to the repository (attach them to this PR)