Pixel-stage ballots and EXEC reads count only lanes that are not helper
invocations, so a waterfall loop over a saved whole-quad EXEC picks and
clears live lanes only. In programs that execute s_wqm on EXEC, writing
EXEC from a value keeps a helper invocation active while a live lane of
its quad is, so implicit-LOD sampling after a save/restore still has its
helpers.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
An import was evictable 256 lookups after its last use. A frame makes thousands of lookups, so when the imports a frame uses do not all fit the budget, each new one evicted another of the same frame and the whole set was imported again every frame. A flip packet now ends a frame, and only imports not used in the current or the previous frame are evicted; what does not fit is refused and copied, as below the budget. A frame boundary also expires the remembered evicting refusals.
sceNpAppLauncherLaunchApp returned the libSceNpGameIntent codes
0x80553802/0x80553804, but the firmware tail remaps the internal
launch library errors into the launcher family, so the export reports
0x80553A02 before initialize and 0x80553A04 on invalid arguments;
the tests now assert those values and the unrelated GameIntent
constants are untouched.
The two assertions that a valid launch call must throw until
implemented are removed; the production throw and its debt entry
stay, and the validation and lifecycle coverage is unchanged. The
debt file keeps the silent-stub, InitParamInit, InfoInit and
remaining unknown-export entries, updating only the launcher parts.
Recovers the 4.03 firmware signature (int32, const char*, const char*), the uninitialized and invalid-argument errors, the strnlen(0x2001) bound on the optional argument and the initialize/terminate flag. The launch itself still throws.
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Firmware 13.42's module looks the name up with sceNetGetIfName, which
has none past 9, then issues SIOCGIFFLAGS on the empty name. That ioctl
fails, and the call returns -1 with the flags untouched. Return the
same instead of throwing. Interfaces 1 to 9 still throw, and the test
no longer asserts that for 1 and 4, which the console answers from the
kernel.
Asked for in oneandonlydean's review, from BunnyFl's read of the
module.
Generate version 1 UUIDs as FreeBSD 11's kern_uuidgen does: consecutive
timestamps from the guest CLOCK_REALTIME, a 14-bit clock sequence that is
randomised on first use and incremented when the clock has not passed the
last batch, and a random multicast node. A count outside 1 to 2048 fails
with EINVAL and a null store with EFAULT.