Skip to content

Ticket 6: execution/event model (ADR 0006) — design for ticket 8 - #179

Open
SnowCheetos wants to merge 1 commit into
vulkan/probe-3from
vulkan/exec-6
Open

Ticket 6: execution/event model (ADR 0006) — design for ticket 8#179
SnowCheetos wants to merge 1 commit into
vulkan/probe-3from
vulkan/exec-6

Conversation

@SnowCheetos

Copy link
Copy Markdown
Contributor

Stacked on #177. Resolves map ticket 6 (grilling). Decisions: nonblocking poll_event via vkGetFenceStatus (no worker thread; ticket 8 proves it); bounded (CB, fence, descriptor) ring per context sized at max_events_per_context; vkQueueSubmit success the admission boundary; Timeout::AfterNs rejected pre-admission with DeadlineExpired (Hexagon/XDNA precedent) since Vulkan lacks cancel; DEVICE_LOST maps to Failed(DeviceLost) + sticky instance poisoning; EVENT_CANCELLATION never advertised. Falsification guard: if fence polling dominates steady-state on lavapipe, a worker-thread poll sits behind the same slot ring unchanged.

Nonblocking poll_event via vkGetFenceStatus (no worker thread);
bounded (CB, fence, descriptor) ring per context sized at
max_events_per_context; Timeout::AfterNs rejected pre-admission
(Hexagon/XDNA precedent); DEVICE_LOST -> Failed(DeviceLost) plus
sticky poisoned instance; no EVENT_CANCELLATION.
@SnowCheetos
SnowCheetos marked this pull request as ready for review September 3, 2026 08:39
Copilot AI lite review requested due to automatic review settings September 3, 2026 08:39

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The new ADR contains a verified misquote/inconsistency with SAFETY.md and a small spelling/formatting issue that should be corrected to keep design documentation accurate.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Adds ADR 0006 documenting the Vulkan backend’s execution/event model decisions needed to unblock the ticket 8 implementation work, with emphasis on nonblocking fence polling, bounded resource pools per context, and explicit timeout/cancellation semantics.

Changes:

  • Introduces ADR 0006 describing poll_event via vkGetFenceStatus (no worker thread) and a bounded ring of (CB, fence, descriptor) resources per context.
  • Defines the submission “admission boundary” at vkQueueSubmit success, and rejects finite Timeout::AfterNs pre-admission with BackendError::DeadlineExpired.
  • Specifies device-loss mapping (sticky instance poisoning) and explicitly does not advertise EVENT_CANCELLATION.
File summaries
File Description
docs/adr/0006-execution-event-model.md New ADR capturing the execution/event model and constraints for the Vulkan backend ahead of ticket 8.
Review details

Suppressed comments (1)

docs/adr/0006-execution-event-model.md:43

  • “re-factoring” should be “refactoring”, and the current line break splits “under lavapipe” awkwardly; rewrap this paragraph for readability.
If ticket 8 benchmarks show `vkGetFenceStatus` polling dominates steady-state (e.g. under
lavapipe), the fallback to a worker-thread poll sits behind the same slot ring unchanged; the
AST gate in ticket 8 measures before re-factoring.
  • Files reviewed: 1/1 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +10 to +12
backends, no dispatch/synchronization worker is serialized. Ticket 8 proves this — the clause
in SAFETY.md says "no worker thread (proven in ticket 6, not assumed)" in proof form: if ticket
8's I/O reaches indeterminate under blocking-poll, this design reopens.
@SnowCheetos SnowCheetos self-assigned this Sep 3, 2026
@SnowCheetos SnowCheetos added the area: backend Accelerator traits, mock backend, and provider conformance label Sep 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: backend Accelerator traits, mock backend, and provider conformance

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants