Skip to content

Preserve DX12 indirect draw identities and restore visibility GPU tests - #162

Draft
proggeramlug wants to merge 1 commit into
codex/windows-example-gatefrom
codex/windows-gpu-ci
Draft

Preserve DX12 indirect draw identities and restore visibility GPU tests#162
proggeramlug wants to merge 1 commit into
codex/windows-example-gatefrom
codex/windows-gpu-ci

Conversation

@proggeramlug

@proggeramlug proggeramlug commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

DX12 counted indirect submission loses the per-command first-instance identity in wgpu 29, so later virtual draws render at the wrong location or disappear. Use Bloom's existing bounded ordinary multi-draw fallback consistently for static GPU-driven draws, virtual draw emission, and virtual visibility. Counted-submission capability reports now reflect that choice; supported Vulkan devices retain counted submission.

The visibility reconstruction GPU oracle also failed to create its DX12 pipeline because its fragment interface combined position and primitive ID. Carry linear NDC and recover the exact pixel center before calling the unchanged production reconstruction function. Preserve every existing identity, face, clear-sentinel and barycentric assertion. A production virtual-visibility regression exercises both the default submission choice and the forced binned path.

Validation: the two original focused oracles pass on Radeon Vulkan, Radeon DX12 with FXC/DXC, and WARP with FXC/DXC (10 executions). The initial full library runs pass on DX12 and Vulkan (488 passed, zero failed, one ignored). The expanded DX12 run passes 489 library tests and device negotiation, then reports 92 golden tests passed, one failed, and four ignored: camera_motion_sequence_bounds_ghosting_flicker_and_cut_residue has maximum channel difference 1 after a cut where exact equality is required. That failure remains required and under separate diagnosis. At committed source ab8019b, the new default-submission pixel/attribute oracle passes on Vulkan, Radeon DX12, and WARP. The camera-cut failure reproduces in three focused DX12 runs and on the unchanged parent 59244b9; it is not introduced by this patch. The complete shared CI component passes on committed source ab8019b under Vulkan (489 library tests, device negotiation, and 93 golden tests passed; existing ignored tests remain). Hosted Windows shared validation still crashes with STATUS_ACCESS_VIOLATION (Bash exit 139) before completing the suite. The original crash remains unresolved and required; the other 21 Tests jobs pass, including the actual Windows native build and all 20 example links. Test adapters/backend selection and failed controls are retained in the report.

Stacked on #161. This advances #140/#27/#131; the earlier hosted access violation remains unresolved. No performance improvement or complete platform/hardware qualification is claimed. The documentation also records #160/#161's now-published successful local and hosted 20-example native build evidence.

Published report and evidence ZIP retain the controls, exact-source local runs, hosted failure and successful build receipts. ZIP SHA-256: ff50b4653062f2070508b825fc47f032e5907d5a054285e193ff33d2cb74975e.

@coderabbitai

coderabbitai Bot commented Sep 11, 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