Skip to content

Make cutout coverage phase deterministic across backends - #158

Draft
proggeramlug wants to merge 1 commit into
codex/windows-image-portabilityfrom
codex/windows-alpha-coverage-phase
Draft

Make cutout coverage phase deterministic across backends#158
proggeramlug wants to merge 1 commit into
codex/windows-image-portabilityfrom
codex/windows-alpha-coverage-phase

Conversation

@proggeramlug

@proggeramlug proggeramlug commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Sponza and skinned/alpha motion failed the approved portable images on Windows because Metal and Vulkan produced different Bayer coverage grids from floating-point exp2 followed by floor. Exact UV and cutout-input captures locate the difference before TAA; the observed Metal extent predicts every inspected threshold away from integer LOD boundaries.

Derive the scene and shadow phase extents from the final source texel index with integer arithmetic. This preserves the approved Metal grid across backends, handles odd texture dimensions and coarse LODs, and leaves alpha sampling and approved images unchanged.

Both focused Windows images now pass on Radeon 760M/Vulkan with matching modern/software-GI settings:

Scene Previous SSIM Corrected SSIM
Sponza 0.969274342 0.986160457
Skinned/alpha motion 0.931530774 0.990073442

Validation on 662a44f:

  • The GPU regression executes twelve reference points in both production shader paths. Vulkan, DX12, and hosted Metal pass all 24 values; the old Vulkan shader fails the first case.
  • Local contracts, strict lint, and the complete shared suite pass, including 91 reported golden-test passes and four ignored tests. Optional external-input fixtures remain separate requirements.
  • All nine Radeon image gates pass in both complete runs. Reproducibility passes with 257/257 artifacts byte-identical. The runs retain overall FAIL status for postflight host-load rejections: Bistro in run 1; Bistro, draw/light stress, and weighted transparency in run 2. Their affected timing windows remain invalid.
  • Both hosted Metal images pass. All 24 hosted checks pass; the two scheduled physical-hardware jobs are skipped. Named RTX 4080/Apple M1 Max timing qualification remains open.

Stacked on draft #157. Related: #128, #140, #153. Investigation and compatibility rationale.

Published report, raw captures, controls, and checksums.

@coderabbitai

coderabbitai Bot commented Sep 10, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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.

1 participant