A PS5 measurement already recorded in the debt note shows queue 0x58 succeeds; raise the exclusive SubmissionQueueEnd and cover it in agc_driver_tests.
Main took request serialization version 48 for the fragment barycentric
built-ins flag (#9193). The depth export clamp bounds are now written at
version 49 and read only for versions from 49, so a version 48 request as main
writes it still decodes, with default bounds. Tests: version 49 is the
emitted prefix, 50 the first unsupported one, a depth exporting request
without its bounds decodes at 48, 47 and 46 (the last two without main's
barycentric byte), and a version 48 two-sample dithered request decodes as
written.
Main took request serialization version 47 for the two-sample dithered
alpha-to-coverage value. The depth export clamp bounds are now written at
version 48 and read only for versions from 48, so a version 47 request as main
writes it still decodes, with default bounds. Tests: version 48 is the
emitted prefix, 49 the first unsupported one, and a version 47 two-sample
dithered request (with and without depth export) decodes as written.
Keep #9694's coverage check for targets without CMASK or DCC keys and skip it only for a fast-clear eliminate over a CMASK target without DCC keys.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
PPSA12361 reaches DB_ALPHA_TO_MASK 0x1aa01 on main 74acfad65b on an RTX 4080 SUPER and an RX 6400. It is the accepted 0xaa01 with bit 16 also set, and radeonsi never programs that combination. Its semantics are not measured, so the path keeps throwing; the entry records it.
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Before two flips have ended a frame nothing was evictable, so a cap retry
was refused and aborted where main served it. Until then imports age by
lookups as before; once frames exist the frame rule applies. A frame end
now moves its own counter, used by the evicting-refusal memory, not the
imports epoch, so the address-space cache survives a flip.
refreshImports checked every live host import, failure and refusal
again at each guest allocation registry change. A title that maps
memory often (SuperTuxKart, ~1650 maps a second) paid a walk that grew
with the live imports: ~34 FPS with ~1.1 GiB of imports on RADV.
The import table now keeps a weak_ptr snapshot of the ranges it was
last checked against and diffs it with the new lease. Only imports
whose import window touches a changed span, and imports made since the
last refresh, are checked again. Every import is checked when the window
is 0 or the window or budget changed. SuperTuxKart's menu goes from
~34 to ~45 FPS with the same imports live.
The modules these entries were read from record SDK 13.60 (0x13600007)
in their module-param segment, so they are firmware 13.60. Only the
version label changes; the behaviour described is unchanged.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_013XFS3FUfBtqCVfwmBrRQ6q
AMD's Windows driver exposes one graphics queue on a Radeon 860M, so
vkQueuePresentKHR runs on the main queue under GuestMemory::GpuMutex
there, as on RADV. Two Yamagi Quake II traces of 1200 presents each
showed Vulkan.QueuePresent at about 0.3 ms (max 3.5 ms) and no
GpuMutex.wait slice from another thread overlapping it. The entry now
closes once RADV, lavapipe and Intel's Windows driver, the named drivers
still unmeasured, show the same.
Co-Authored-By: Claude Opus 5.5 <[email protected]>