summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_rpc_client.h
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-11-05 11:24:16 -0500
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-11-05 11:24:16 -0500
commita3d801e394a1c57833c816edc3d3cee22dc4a78a (patch)
treefe906759f83571dfd81ea4e9b88afe5111ce0879 /kernel/gsp_rpc_client.h
parent7d88261d01100e46a5160319b94b1e79b5eb1117 (diff)
downloadopen-iov-a3d801e394a1c57833c816edc3d3cee22dc4a78a.tar.gz
open-iov-a3d801e394a1c57833c816edc3d3cee22dc4a78a.zip
vgsp-gr: hold calls on a stream-damaged push so a dropped chunk cannot run LOAD_CONSTANT_BUFFER without its selector state
A chunked GL draw whose earlier chunk was dropped (prelude LOAD-ONLY or the r1447 arming window hold) replayed the remaining chunks' calls alone; the constant-buffer selector (0x2380) lived in the dropped chunk, so the bug2548370 macro's LOAD_CONSTANT_BUFFER(0x2390) class-errored (ErrorCode 3) and the engine poisoned (badf1201 sentinel: pc=513/mac=0xf1 are its artifact, not a macro). Propagate the stream-relative chunk offset through the candidate and submit path, keep a per-push STREAM-DAMAGE record of the lowest dropped chunk, emit later chunks calls-held (the proven-safe shape), never arm the arming window-hold on a damaged stream, and start a fresh section at stream_rel==0. r1487: the exact r1485 damaging shape now retires clean (events=5, no poison) and the next chunk is captured; r1486 (holds off) still poisons because the first launch runs against a partially packed prelude, confirming the dropped chunk is the cause, not the hold release.
Diffstat (limited to 'kernel/gsp_rpc_client.h')
0 files changed, 0 insertions, 0 deletions