Skip to content

multi-screen (Windows): a sliver of the other segment leaks across the seam while dragging, recovers at rest #1883

Description

@dfattal

Seen by David on the two-panel win rig (2026-10-09, runtime main after #1880, D3D11): with cube_handle_d3d11_win straddling the laptop panel and the DS1, while the window is being dragged a small strip of one half's content shows up on the other panel's side of the seam; it recovers as soon as the drag stops. The hand-offs themselves were clean (nine hand-offs in his drag session, 5–13 ms each, no black frame).

Likely cause: the segment table is computed from the window rect the compositor read for this frame while the weave consumes the egress slot that is one frame behind (the #918 split path, ADR-047 Amendment 1: "a split egress slot one frame behind a resizing window still partitions its tile with the seam where the live window puts it"). During a drag the seam column moves every frame, so the previous frame's atlas is partitioned at the new seam: a few px of the DS1 segment's views are woven by the laptop DP (or vice versa) until the window rests. Same class as the move-sync problem solved on Linux (runtime #1856, PR 447 move sync) — the Windows in-process path has no move/content sync.

Options: (a) partition with the rect the egress frame was rendered at (carry the window rect with the slot), accepting that the weave lags the window by one frame during a drag; (b) a one-frame hold of the previous table while dragging; (c) a Windows move-sync like the Linux one. Needs an eyeball on the rig after the change; the log cannot see it.

Activity

  1. dfattal commented on Oct 10, 2026

    @dfattal
    CollaboratorAuthor

    Rig check with David (2026-10-10, two panels, runtime #1912 merged): the sliver is smaller but still visible for a moment during a drag — reads like a one-frame lag between the window move and the weave. #1912 fixed the crop mismatch; what remains is the move/content sync (the Windows equivalent of the Linux move-sync contract). Keeping open, lower priority per David.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions