Repository navigation
docs(environment): correct the crash indirect memory, log timestamp, language and label flush rows - #9036
Open
dantdmdarealguy wants to merge 1 commit into
Conversation
…language and label flush rows
|
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.
|
harisibrar1
approved these changes
Oct 21, 2026
harisibrar1
left a comment
There was a problem hiding this comment.
Checked against main:
APS5_CRASH_INDIRECT_MEMORY: CrashReport.cpp:396-413 always prints the[reg]word lines;GetEnvironmentVariableA(..., nullptr, 0) > 1turns on[[reg+off]] @addrlines of 64 bytes (content[8]) per pointer, so "off when unset or empty" is right and agrees with USAGE.md:349.APS5_LOG_TIMESTAMPS: LogMacros.hpp:26-28 prints[+%llu.%06llu s], seconds with six microsecond digits;startedis a function-local static in an inline function (:19-24), initialised at the first stamped line, so per-library clocks on Windows follow.ANYPS5_LANGUAGE: the only reader isSystemServiceConsoleLanguageat SystemService.hpp:41; empty or unset gives English US (1), andtools/env_reference.py --tableagrees with the new Source.APS5_LABEL_FLUSH_US: DeferredLabels.cpp:60-64 gives 1000 withLabelBatchSubmit()and 250 without;LabelBatchSubmit()(:26-29) is off forAPS5_NO_LABEL_BATCH_SUBMITorAPS5_NO_LABEL_BATCHING, so a blank Default with both values in the description is accurate.env_reference.py --checkon the PR's file reports only the existingAPS5_NO_WGIgap, andcheck_conventions.py --base main --head pr-9036passes.
Reviewed with AI assistance (Claude Code); the checks above were run locally on my machine.
This branch has not been deployed
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
Four rows of
docs/dev/ENVIRONMENT.mddo not match the code onmain:APS5_CRASH_INDIRECT_MEMORY: the row says the variable dumps the words the faulting registers point at. The Windows crash report always prints those[reg]lines (core/libs/prx/libc/src/specifics/windows/CrashReport.cppL398-402). A non-empty value adds, for each pointer in those lines, up to 64 bytes read from where it points, as[[reg+off]] @addrlines (L403-413). That is what USAGE.md and GAME_TESTING.md already say. An empty value leaves it off (GetEnvironmentVariableA(..., nullptr, 0) > 1).APS5_LOG_TIMESTAMPS: the row says "milliseconds since the first log".LogMacros.hppL19-29 prints[+S.UUUUUU s], seconds with six microsecond digits. The start time is a static inside an inline header function, so on Windows each library (DLL) has its own copy and its own clock, started at that library's first stamped line.ANYPS5_LANGUAGE: the Source column nameslibSceSystemService/Export.cpp. The variable is read inSystemService.hppL41 (SystemServiceConsoleLanguage, whichExport.cppandlibSceNpTrophy2call).tools/env_reference.py --tablealso givesSystemService.hpp.APS5_LABEL_FLUSH_US: the Default column says 1000.DeferredLabels.cppL62 uses 1000 only when batched label submission is on and 250 whenAPS5_NO_LABEL_BATCH_SUBMITorAPS5_NO_LABEL_BATCHINGturns it off (LabelBatchSubmit(), L26-29). Because the default depends on that, the Default cell is left blank and the Description states both values, as theAPS5_HANDOFF_SPIN_USrow does.Tested
Windows 11 Pro, Intel Core i9-14900K, 128 GB RAM, NVIDIA GeForce RTX 5080 (driver 32.0.16.1742), WinLibs GCC 15.2.0, Release build of
main138182635withBUILD_TESTING=ON.APS5_CRASH_INDIRECT_MEMORY, withtests/windows_backtrace_report_tests.exe faultandbuild/core/libs/libs/unpatchedonPATH:[reg]word lines ([rdx],[rsi]), 0[[reg+off]]lines.=1: the same 2[reg]lines plus[[rsi+0x8]] @000001de4e460150 ...and[[rsi+0x28]] @000001de4e460150 ..., 8 words (64 bytes) each.[reg]lines, 0[[reg+off]]lines.APS5_LOG_TIMESTAMPS, with ScreenTester5 (PPSA69420) relinked by this build (relinker.exe --windows source/eboot.elf run/app.exe) and run for 15 s:=1: the libc lines read[+0.000000 s] [src/HostCpu.cpp:193 ...]and[+0.011164 s] [src/Thread.cpp:652 RunThread] .... The first AgcDriver line then reads[+0.000000 s] [src/VulkanDevice.cpp:1003 VulkanDevice] ..., followed by[+0.157192 s] ... Vulkan instance created.APS5_LOG_TIMESTAMPSacross shared libraries, with two libraries that each includeLogMacros.hppand are called 200 ms apart:LogTimestampMicros()::startedis anOBJECT UNIQUEsymbol shared by both. So the row names the per-library clock as Windows behaviour.ANYPS5_LANGUAGEandAPS5_LABEL_FLUSH_USchange no visible behaviour; their rows were checked against the code andpython tools/env_reference.py --table(SourceSystemService.hpp, default250from the fallback literal).guest_system_service_languagepasses.python tools/env_reference.py --check: the same output as onmain, onlyAPS5_NO_WGI ... has no row(documented by docs(env): document APS5_NO_WGI #8657).python tools/check_conventions.py --base origin/main:All conventions checks passed.ctest --test-dir build --output-on-failure --timeout 120 --parallel 2 -R "^(env_reference|conventions_env_reference|windows_crash_stack_words|windows_crash_without_stack_words|windows_backtrace_report|guest_system_service_language|patched_libraries)$": 7/7 passed,357 patched libraries loaded, 0 failed.python tools/pr_overlap.py --branch agent/envdocs2: conflicts with fix(tools): read the EnvironmentNumber environment reader in env_reference #8995 at L534, the row belowAPS5_CRASH_INDIRECT_MEMORY, where fix(tools): read the EnvironmentNumber environment reader in env_reference #8995 addsAPS5_CRASH_STACK_BYTES. Either order resolves by keeping both rows. Twelve PRs that change ENVIRONMENT.md could not be compared because they conflict withmain(feat(agc): trace shader failures through draw submission batches #5431, fix(agc): keep CPU stores made after a deferred DCC key store was recorded #6186, feat(wasm): run relinked titles in the browser with WebGPU #6879, perf(recompiler): keep runtime-specialized shader modules in the shader disk cache #6924, perf(agc): draw finisher pipeline (APS5_DRAW_PIPELINE) #6946, perf(agc): GPU descriptor heap (APS5_GPU_HEAP) #6947, perf(recompiler): leave the descriptor-range comparison out of direct buffer loads when the device zeroes past the range #7484, feat(agc): trace ranges that leave the write watch #7604, feat(agc): look up table images at run time through a device image table on the GPU heap (APS5_GPU_PATH) #7642, fix(shader): split descriptor webs whose paths fold or hold invalid arms #8077, fix(agc): preserve CPU writes after resident linear target draws #8246, perf(agc): expand single-key DCC storage uploads on the GPU from the host import #8484). None of their diffs touch these four rows or the rows next to them.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)