Merge main ca96807e83 while preserving the new GENERAL_NAME debt entry and the SHA-384/SHA-512 buffer debt removal. Digest.cpp, Oracle.cpp and GuestLibreSslDigest.cpp are unchanged from the previously reviewed PR head.
Validation on the merged tree: GCC C++20 optimized production-source digest fixture passed; ASan/UBSan fixture passed with leak detection disabled; the same fixture with latest main Digest.cpp compiled then failed at wide init preserves the block buffer (exit 134), as expected. Current conventions, diff check and 233-script registration check passed. Full product build, full oracle and leak checking were not rerun for this mechanical documentation conflict resolution. CI will run according to the unchanged upstream workflow conditions.
Say that the shader numbers are counted from the code, not from playing games,
in the progress map caption, the progress page, the docs and the README badge
text. The Still needed bars already use their own grey track and fixed fills
rather than the todo colour.
A firmware 13.42 run of the module shows the two VAD adjustments only
storing their floats, QA recording setting a flag after the
initialization check, customer data checking its pointers, gain and
port before a device that isn't bound, and the memory size writing 0
and refusing a library initialized with version 100.
List the forms the decoder does not decode and the decoded ones the translator
has no case for, chart the unsupported-throw sites per recompiler area, and
chart the sampled, typed-buffer and host image formats. All of it is read from
the source by the same scan; progress.json only gains fields.
The mode is read once, the first time it is needed, and an unset
variable means off. Any other value, including an empty one, throws an
error that names the variable and the value. The variable is added to
the libScePad table of ENVIRONMENT.md. Nothing reads the mode yet, so
no pulse is sent by this commit.
asn1_c2i in LibreSSL 4.0.0 rejects content over INT_MAX bytes before
c2i_ASN1_INTEGER_cbs runs, so the old output stays and nothing is allocated.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
The progress map panel and the page table still printed the old instruction
name count (100%). Both now show the decoded forms by encoding. The scanner
fixture gains VOPC and VOP1 forms in VOP3, the interpolation emit switch, the
export family, a DPP16 refusal and the opcode range edges, so a change to any
of these rules changes a known answer.
Null buffer descriptors still split modules on unused specialization
fields after buffer presence moved to run time. Learn the first valid
bound fields per slot and use them for absent descriptors, retaining
actual runtime presence and independent bound formats.
Snapshot the learned fields once for result memo keys and materialization
so identical null captures cannot retain a module made before learning.
Cover direct, captured and prepared calls, null stores, and changed formats.
Keep the process-local table and an off switch for main's module selection.
AI-assisted: yes
The shaders badge counted ISA instruction names that have an RdnaOpcode
enumerator and had reached 100%. Measure what the recompiler does instead:
decoded and translated instruction forms (base, VOP3, DPP) from the opcode
tables and emit switches, and the unsupported throws, using AMD's RDNA 2
instruction forms (MIT, vendored as a derived table). Say on the page that
this is source coverage, not game compatibility.
The Pages progress workflow now also runs when the recompiler changes, and
the Pages workflows fail instead of publishing when the scan cannot read the
recompiler.
#13736 merged the WebRtcOpus encoder functions. Count 390 pending
exports, as the merged Export.cpp has 390 NotImplemented stubs.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Rejected encodings and allocation failures now return NULL with the error
queue, the old output and the input pointer that firmware 13.42's module and
LibreSSL 4.0.0 leave.
Co-Authored-By: Claude Opus 5.5 <[email protected]>