Skip to content

build: provide public shader-capable Classic images #38

Description

@zoeyrose

Summary

Atrinik Classic PR atrinik/classic#478 moves generated SPIR-V, DXIL, and MSL binaries out of Git and Git LFS. Builds now compile one checksum-locked shader cohort and embed it at build/package time.

The current governed images leave two infrastructure gaps:

  • ./atrinik build classic-client --profile ... --test uses the pinned classic-build:1.2.3 image, which contains neither dxc nor spirv-cross; the wrapper build therefore stops during CMake configuration unless it can receive an externally generated cohort.
  • linux-build:1.3.0@sha256:260658d2709e993b41148a9d8f724c2d2f7f1fd93543a139b00d139b10e7f31a returns HTTP 401 to anonymous pulls. A pull-request workflow cannot safely expose a private package token to PR-controlled workflow/script bytes, so Classic's hosted Lavapipe coverage must currently skip and codecov/patch remains below target.

Repository package access granted to atrinik/classic is sufficient for trusted authentication, but it does not provide a fork-safe PR boundary.

Requested outcome

  • Provide the Classic wrapper build with the locked shader tools, preferably by adding qualified dxc and spirv-cross versions to the governed Classic build image (or an equally deterministic wrapper-compatible cohort input).
  • Make the non-confidential pinned GPU coverage image anonymously pullable, or publish an equivalent public immutable image for fork-safe PR coverage.
  • Pin every added tool/image input, preserve licenses, and update image metadata/tests and supply-chain evidence.

The Classic lock currently qualifies DirectXShaderCompiler v1.9.2607 at commit 0d3ee6b551b8fa768fbf825300ebab81047ef6a8 and SPIRV-Cross commit 9c3c8e2cefdd8194b193bb8ed2fdff4d5527e382.

Validation

  • The locked Classic shader producer reproduces all 18 expected artifacts byte-for-byte.
  • Classic's full offline coverage/release/sanitizer client CI path passes when given the generated cohort.
  • The exact final PR head passes its shader producer and client consumer jobs; the GPU coverage step records an explicit skip because the public pull fails.

This issue is follow-up infrastructure work; it must not close or merge Classic issue #477 or PR #478 automatically.

Activity

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

Metadata

Metadata

Assignees

Labels

Type

Fields

Priority

None yet

Effort

None yet

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions