display: stop calling the fenced present 'vsync' — it isn't
The virtio-gpu present fence completes when the device has consumed the frame: real completion feedback, and tear-freedom by snapshot semantics. It is not a vblank — base virtio-gpu 2D has no display-refresh event at all (Linux fakes one with a timer), so nothing paces presents to the monitor. The code and docs claimed vsync anyway; now they don't. - backend.hasVsync -> hasFencedPresent, with an honest doc comment - marker 'display: vsync present ok' -> 'display: fenced present ok' (display-modeset test expectation updated, passes) - display-v2.md gains a 'Fenced is not vsync' note; the vsync claims in both v2 docs are corrected - true vsync arrives with a native driver's vblank IRQ, or approximated by a compositor frame clock
This commit is contained in:
+6
-5
@@ -221,15 +221,16 @@ CASES = [
|
||||
# require all three markers to appear somewhere rather than in a fixed order.
|
||||
"expect": r"(?s)(?=.*display: scanout upgraded to virtio-gpu)(?=.*display: native present verified)(?=.*display-demo: ok)",
|
||||
"fail": r"display: native present FAILED|display: could not|display-demo: (no display|create failed)|CPU EXCEPTION|KERNEL PANIC"},
|
||||
# Mode-set + EDID + vsync (v2 V5): same boot as display-native. After upgrading, the
|
||||
# compositor queries the driver's modes, switches to a different resolution, and confirms the
|
||||
# backend now reports it; the fenced present path makes it a vsync present. (The driver also
|
||||
# logs the EDID preferred mode during bring-up.) Reuses the display-native kernel scenario.
|
||||
# Mode-set + EDID + fenced presents (v2 V5): same boot as display-native. After upgrading,
|
||||
# the compositor queries the driver's modes, switches to a different resolution, and confirms
|
||||
# the backend now reports it; each present is fenced — completion-acknowledged and tear-free,
|
||||
# not vblank-paced (docs/display-v2.md, "Fenced is not vsync"). (The driver also logs the
|
||||
# EDID preferred mode during bring-up.) Reuses the display-native kernel scenario.
|
||||
{"name": "display-modeset",
|
||||
"build_case": "display-native",
|
||||
"qemu_extra": ["-device", "virtio-gpu-pci"],
|
||||
"mem": "512M",
|
||||
"expect": r"(?s)(?=.*display: mode set to \d+x\d+, verified)(?=.*display: vsync present ok)",
|
||||
"expect": r"(?s)(?=.*display: mode set to \d+x\d+, verified)(?=.*display: fenced present ok)",
|
||||
"fail": r"display: mode set FAILED|display: mode-set self-check: |display: native present FAILED|CPU EXCEPTION|KERNEL PANIC"},
|
||||
# Resilience: driver restart + re-attach (v2 V6). device-manager (in test-scanout-restart
|
||||
# mode) kills the virtio-gpu driver once after it hellos; the restart policy respawns it, it
|
||||
|
||||
Reference in New Issue
Block a user