diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-11-09 18:58:42 -0500 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-11-09 18:58:42 -0500 |
| commit | 408d67d356ba85363a2574d420ba17cae5701d2d (patch) | |
| tree | 18199807549d2060bc76be4f2076926e8c4bf542 /tools/guest-diag/wall2/t94.py | |
| parent | c38872182f2eb11660887ba73188d22a6b3835de (diff) | |
| download | open-iov-408d67d356ba85363a2574d420ba17cae5701d2d.tar.gz open-iov-408d67d356ba85363a2574d420ba17cae5701d2d.zip | |
vgsp: complete the X DDX's push-buffer notifications and class-aware display arm
Four fixes, built and validated on fresh boots (r1675/r1677):
- gsp_display_engine: gsp_disp_update_armed() is class-aware. NVC57D
(core) carries the NOTIFY bit (12:12); NVC57E (window) has no NOTIFY
bit, so a bound notifier ctxDMA is the arm. Every c57e window flip
computed armed=0 before this, so FINISHED and the channel event were
never authored and the DDX's composite/flip waits sat out their
timeout.
- gsp_sema_service: complete the bfef family's NvNotification status
(0x8000 -> 0) in svc_client_slot_sweep(). The DDX marks the record
IN_PROGRESS before a submit and the GPU (or RM) must write it back to
0; the emulation never did.
- gsp_sema_service: sema_gl_hold_apply (default 0) applies a decoded GL
release forward-only at svc_gl_flush() out: when the draw section is
not captured, with a stale-value and 1 MB jump guard.
- gsp_sema_service: extend the 0x8000 sweep to the X DDX's own RM
channels (h=0x01xxxxxx). pb_armNotifiers() writes 0x8000 at
notif+0xe and pb_wait() polls it back to 0; the bfef-only filter
skipped these channels, so the 8 s submit wait expired ("WAIT (2, 8,
0x8000, ...)" then "Wait for channel idle timed out") even though the
class2d NOTIFY ack had zeroed the same page before the arm.
Evidence: r1675 keeps the X alive past the old 212 s crash point with 0
"Caught signal" lines; the DDX's 2D pipeline runs (get word advances),
the host decodes live 3D method streams (VP-METHOD ... 0x1618 BEGIN
topology) and the release sweep applies thousands.
Diffstat (limited to 'tools/guest-diag/wall2/t94.py')
0 files changed, 0 insertions, 0 deletions
