diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-11-05 09:57:00 -0500 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-11-05 09:57:00 -0500 |
| commit | f9cecd5faafd9cd59cd1da764fbc6df32b154d97 (patch) | |
| tree | 0bb9130c574d4db341e4067ed6467ddd172c9838 /docs/RUNBOOK.md | |
| parent | 4e65e2e28ee595e9210992752201a0c9c0143ba3 (diff) | |
| download | open-iov-f9cecd5faafd9cd59cd1da764fbc6df32b154d97.tar.gz open-iov-f9cecd5faafd9cd59cd1da764fbc6df32b154d97.zip | |
vgsp-gr: bind the beef GL draw to the captured 900-page screen surface, not a cross-VAS 10-page operand buffer
The PS SPH has MRT_ENABLE=0 (writes RT0); the beef window binds no colour
target of its own, so the last trusted 0x800..0xbff run (the X screen
surface 0x120400000, 1280x720, 900 pages) is the render target. Its pages
were resolved through the global VA-keyed pin/ledger, which conflated
clients: the beef client's own injected pin for VA 0x120400000 (a SYS
staging/operand buffer holding SASS/method words) shadowed the X server's
surface VAS and cut the set at 10 pages. Capture the surface's source VAS
and resolve its pages through that VAS in the fill, bypassing the pin
override for this page set. Re-patch the SURF prelude when the launch's
rec base differs from the cached one, and copy the emitted SURF run's
target/geometry into the RT0 run so RT0 == RT1 every launch (was hardcoded
to the 0xa relocation half).
r1483: the beef retirement is now 0/900 pages of the visible surface (was
0/10), RT0-BIND target=0xa000000, data[0] va=0x120400000 pa=0x100000, n_data
=900, 6 launches, poison=0. The engine still stores nothing: GR-STATE sph is
zero at retire and the launch traps at method 0x1528, so the next wall is
making the pipeline program bind visible to the DS, not the RT VA.
Diffstat (limited to 'docs/RUNBOOK.md')
0 files changed, 0 insertions, 0 deletions
