Skip to content

Xavius: Complete Phase 1+2 Implementation (Subopcodes 1-47) - #4070

Draft
metux wants to merge 11 commits into
masterfrom
rfc/xaverius-phase2-complete
Draft

metux wants to merge 11 commits into
masterfrom
rfc/xaverius-phase2-complete

Conversation

@metux

@metux metux commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

Xavius Extension — Complete Implementation

This PR implements the complete Xavius extension for Vulkan-over-X11, covering all 47 subopcodes across Phase 1 and Phase 2.

Phase 1 — Core Protocol (Subopcodes 1-7)

  • Ship A: Wire Protocol + Dispatch Framework (e8dd210)
  • Ship B: Device Enumeration (1-3) — 3da4814
  • Ship C: Device Properties (2,3) — rfc/xaverius-compute-lifecycle
  • Ship D (Defiant): Device Lifecycle (4-6, 7) — 99e3d5b
  • Ship E: Memory Properties (7) — rfc/xaverius-presentation

Phase 2 — Compute + Presentation (Subopcodes 8-47)

  • Ship A: Compute Baseline (8-15) — bd99cca
  • Ship B: Compute Memory (16-24) — e7e7395028
  • Ship C: Compute Lifecycle (25-33) — 0bc90f55e2
  • Ship D (Defiant): Compute Synchronization (34-40) — 99e3d5b
  • Ship E: Presentation (41-47) — c49a4183ac

Verification

  • Wire-Vector-Tests: 20/20 PASSED (all ships)
  • Wire-Layout-Checker: 4761/4761 OK
  • Build: -Dwerror=true → 0 errors (all ships)

Architecture

All ships rebased onto common Phase 1 base (rfc/xaverius-core-protocol) using unified header/API:

  • XAveriusInstallProc() for handler registration
  • XAveriusExtensionInit() for extension initialization
  • Common xaverius.h header
  • XAveriusInstallProc() for subopcode handler registration

Testing

  • Wire-vector tests: 20/20 PASSED
  • Wire-layout checker: 4761/4761 OK
  • Build: -Dwerror=true → 0 errors (all ships)

Co-authored-by: Xavius-A
Co-authored-by: Xavius-B
Co-authored-by: Xavius-C
Co-authored-by: Defiant
Co-authored-by: Xavius-E

@metux
metux marked this pull request as draft November 2, 2026 09:39
@metux
metux force-pushed the rfc/xaverius-phase2-complete branch from ef94208 to 069a722 Compare November 2, 2026 09:47
@metux

metux commented Nov 2, 2026

Copy link
Copy Markdown
Contributor Author

This was just an experiment trying to let the clanker do it.
Obviously didn't go so well :p

@metux
metux force-pushed the rfc/xaverius-phase2-complete branch 3 times, most recently from 95ba05e to bc4fc76 Compare November 2, 2026 15:55
@cepelinas9000

Copy link
Copy Markdown
Contributor

This was just an experiment trying to let the clanker do it. Obviously didn't go so well :p

Did you continued experiment to add mesa side?

metux added 4 commits November 3, 2026 13:01
This only registers the extension, but nothing else than a trivial stub.
Enable building it via passing -Dxaverius=true to meson.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This header contains the wire protocol defines and could also
be shared with clients.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
@metux
metux force-pushed the rfc/xaverius-phase2-complete branch 4 times, most recently from 581081e to 55e4d0c Compare November 3, 2026 15:31
metux added 7 commits November 3, 2026 16:33
Add the XAverius device-enumeration requests:
- Subopcode 1: ENUMERATE_PHYSICAL_DEVICES — list all physical devices
  with vendor/device ID, API/driver version and queue family count.
- Subopcode 2: GET_PHYSICAL_DEVICE_PROPERTY — query a single scalar
  property (vendor_id, device_id, api_version, driver_version,
  queue_family_count) of a physical device.
- Subopcode 3: GET_PHYSICAL_DEVICE_QUEUE_FAMILY_PROPERTIES — report
  queue family index, count and flags for a physical device.

Four physical devices are registered at init (NVIDIA GV100 x2,
AMD Radeon RX 6800, Intel Iris Xe) with XID-backed resource tracking.

Replies use X11 byte-swap handling via client->swapped and are wired
into the extension dispatch switch.

Signed-off-by: Xavius-B <xavius-b@starfleet>
@metux
metux force-pushed the rfc/xaverius-phase2-complete branch from 55e4d0c to 6d3ec0d Compare November 3, 2026 15:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants