Skip to content

diag(track-a): discriminate post-RHI X11 window state - #438

Closed
blakinio wants to merge 12 commits into
mainfrom
diag/OTC-20260816-track-a-post-rhi-window-state
Closed

diag(track-a): discriminate post-RHI X11 window state#438
blakinio wants to merge 12 commits into
mainfrom
diag/OTC-20260816-track-a-post-rhi-window-state

Conversation

@blakinio

@blakinio blakinio commented Aug 16, 2026

Copy link
Copy Markdown
Owner

Track A RUNTIME — post-GLX/post-RHI X11 window-state discriminator

Entry task: OTC-20260816-track-a-canonical-runtime-e2e.
Base: trusted main@b9260379bebfba8e0e8d8a45c63e24ea65b9c6e4 after #436 reconciled canonical bootstrap admission.

Promoted #431/#432/#434 evidence proved the contained DRI repair restores Xvfb GLX and removes the prior configured QXcb no-GLX/EGL failure signature, while the exact client remained alive with zero xdotool named-visible windows. This Draft performed one narrower ephemeral_isolated discriminator and is now in closeout; the one-shot workflow and both transformer files have been removed, so no second physical run is possible from later commits.

Semantic run: 31972261899, physical job 95226396914 = SUCCESS on synology-otclient-01; same-generation hosted preflight 95226378236 = SUCCESS; runtime admission passed immediately before the boundary; exact base fence passed; canonical state access NONE; cleanup COMPLETE.

New direct result:

  • Xvfb still advertises GLX (opcode 150) and RENDER (139).
  • t+05 raw X11 tree: one 3×3 UNMAPPED non-root window; client alive.
  • t+15 and t+35 raw X11 tree: three non-root windows, including one VIEWABLE 1920×1080 window plus two tiny UNMAPPED windows.
  • The viewable window has no PID/name/class through the available xdotool property queries, so it is not yet directly bound to the exact client PID.
  • The old xdotool search --onlyvisible --name '.*' observation remains 0, proving that the previous "zero visible windows" metric missed at least this nameless raw-X11 viewable window.
  • The exact client remains alive and develops llvmpipe, QQmlThread, QSGSoftwareRenderThread, QNetworkAccessManager and QQuickPixmapReader threads.
  • Broader complete-log filter found 121/415 lines, including a created OpenGL 4.5 llvmpipe context, QRhi Vulkan initialization, QtQuick.Window load, and a new warning: QObject: Cannot create children for a parent that is in a different thread where the parent is QQmlEngine and the current thread is QSGSoftwareRenderThread.

Bounded conclusion: raw X11 proves a viewable full-screen window exists from t+15, but current evidence does not prove whether that XID is the intended official-client top-level window, a backing/internal window, or another task-display resource. The cross-thread QObject warning is a new discriminator, not yet proven causal.

No canonical bootstrap retry is authorized from this Draft. Next work must prove X11 client/resource identity and/or statically resolve the QQmlEngine/QSGSoftwareRenderThread warning before relaxing the canonical worker's strict --pid ... --name '^Tibia$' window identity check.

@blakinio blakinio added the programme:client Oteryn client programme label Aug 16, 2026

Copy link
Copy Markdown
Owner Author

RUNTIME TERMINAL HANDOVER — DRAFT_NOT_PROMOTED

Exact final head: 171fbfa679c8c75dc9722fe39c19141962282f01.

Semantic discriminator:

  • workflow 31972261899, physical job 95226396914 = SUCCESS on synology-otclient-01;
  • same-generation hosted preflight 95226378236 = SUCCESS;
  • runtime admission passed immediately before the boundary;
  • exact base/source/support fences passed;
  • canonical state access NONE;
  • exact client remained fenced to SHA-256 e6c244bd39fe2e0632f6f000efd3147164696efa8e901718668e0442325ff7fe;
  • cleanup COMPLETE;
  • exactly one semantic physical generation; one-shot workflow and temporary transformers removed before terminal closeout.

Direct new evidence:

  • GLX remains present (opcode 150), RENDER present (139);
  • t05 raw X11: one 3x3 UNMAPPED non-root window;
  • t15/t35 raw X11: three non-root windows including XID 0x00c00011 VIEWABLE at 1920x1080, while the old xdotool named-visible search still reports 0;
  • available xdotool PID/name/class properties do not bind that viewable XID to the client PID, so exact ownership remains UNKNOWN;
  • client remains alive and develops llvmpipe, QQmlThread, QSGSoftwareRenderThread, network and pixmap-reader threads;
  • complete client log 415 lines, broader redacted filter 121 matches; OpenGL 4.5 llvmpipe context created, QRhi Vulkan initialized, QtQuick.Window loaded;
  • new warning: QObject child creation attempted across thread affinity (QQmlEngine parent, current QSGSoftwareRenderThread), causal relevance not yet proven.

Bounded classification: PROVEN_RAW_X11_TREE_HAS_VIEWABLE_1920X1080_NAMELESS_PIDLESS_WINDOW_FROM_T15_WHILE_XDOTOOL_NAMED_VISIBLE_SEARCH_RETURNS_ZERO_AND_EXACT_CLIENT_REMAINS_ALIVE_POST_GLX.

Durable evidence: docs/agents/evidence/OTC-20260816-track-a-canonical-runtime-e2e/20260816-post-rhi-window-state.md.

Exact-final-head checks:

  • Track A governance 31972667061 = SUCCESS;
  • repository CI 31972667199 = SUCCESS;
  • CI / Required 95227425189 = SUCCESS;
  • review threads = 0.

Task is status: ready, mutation_authorized:false; no second run or canonical bootstrap retry is authorized. Recommended next separately admitted discriminator: X-Resource v1.2 QueryClientIds against the raw viewable XID class to prove/refute LocalClientPid ownership before changing canonical window identity. Hosted/static Qt thread-affinity analysis may proceed independently.

Copy link
Copy Markdown
Owner Author

Coordinator review disposition: ACCEPT / promotion staged in #444.

I independently re-read physical job 95226396914 from run 31972261899 and confirmed the bounded source claim: same-generation admission/fences passed; canonical state access was NONE; GLX/RENDER were present; the exact client remained alive; raw X11 proved a non-root VIEWABLE 1920x1080 XID from t+15/t+35 while the name/PID/class property path remained unresolved; OpenGL llvmpipe, QRhi Vulkan and QtQuick.Window initialized; cleanup completed. The QQmlEngine/QSGSoftwareRenderThread warning is retained only as a non-causal discriminator.

Accepted classification: PROVEN_RAW_X11_TREE_HAS_VIEWABLE_1920X1080_NAMELESS_PIDLESS_WINDOW_FROM_T15_WHILE_XDOTOOL_NAMED_VISIBLE_SEARCH_RETURNS_ZERO_AND_EXACT_CLIENT_REMAINS_ALIVE_POST_GLX.

No stronger XID→official-client PID ownership claim is promoted. Promotion PR #444 is current-main, docs/evidence-only and keeps canonical bootstrap/window-identity relaxation unauthorized. This source Draft will be closed superseded only after #444 actually merges.

Copy link
Copy Markdown
Owner Author

Coordinator final disposition: ACCEPTED_AND_PROMOTED_BY_444 / CLOSE_SUPERSEDED_UNMERGED.

Canonical promotion #444 merged as 7540a679420689c388d9d11125c9fd8846956a10 after pre-ready and ready-state required CI passed. The accepted post-RHI evidence is now on trusted main through the coordinator-reviewed bounded classification. This researcher Draft must not be merged from its historical branch. The canonical runtime task remains active on main for the next raw-XRes identity phase.

@blakinio blakinio closed this Aug 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

programme:client Oteryn client programme

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant