Skip to content

CI: stand up a self-hosted GPU runner for the render/correctness battery #9

Description

@Bantarus

Hosted GitHub runners have no usable GPU, so any job that opens a VkDevice (Context::new) or renders pixels cannot run in ci.yml. The project's authoritative validator is the native RTX 4090; WSL2 Dozen is non-conformant/atomic-only and explicitly NOT a CI target.

Goal: register a self-hosted runner (labels: self-hosted, gpu, vulkan) on a box with a real Vulkan ICD and add a render-correctness workflow (gated on workflow_dispatch + label/branch, not every PR, to protect the private runner).

Scope:

  • Run offscreen_png on a set of assets/*.riv and diff the PNGs against committed goldens via tools/png_diff.py (with a tolerance band).
  • Run the currently #[ignore]d cross_context_handles_are_rejected test (cargo test -p rive-renderer -- --ignored) — it needs TWO real Vulkan devices.
  • Exercise BOTH tiers: floor (CPU-copy readback) and zero_copy (renders into a wgpu VkImage).

Security note: self-hosted runners must NOT run untrusted-fork PRs by default; gate on pull_request_target review or restrict to internal branches.

Depends on: nothing in-repo; this is an infra task.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions