Skip to content

test(vk): restore source fixture dependencies after admission changes - #1819

Merged
hckrman101 merged 1 commit into
NotRexed:mainfrom
Arkex-ai:test/renderer-fixture-integration
Nov 10, 2026
Merged

hckrman101 merged 1 commit into
NotRexed:mainfrom
Arkex-ai:test/renderer-fixture-integration

Conversation

@Arkex-ai

@Arkex-ai Arkex-ai commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

Two renderer source checks stop compiling after #1658/#1754: the stream fixture omits the new production helper, and the sampler fixture lacks the descriptor-pool environment now required by the complete binder.

Extract the actual stream_insert before its callers, include its exception dependency, provide the descriptor-pool destroy spy and initialize the fixture's live recording pool. Existing assertions and compiler warnings are unchanged. Production GPU, host, lifter and third-party trees are unchanged.

Closes #1813. Claim; CI-first priority, S3 x1.0 x1.0 =1.0.

Validation:

  • Windows LLVM and Linux GCC/ASan/UBSan: all16 stream scenarios and108 sampler cases pass.
  • Five negative controls: removing either dependency reproduces compilation failure; removing the initial pool fails the existing binder assertion; removing stream visibility or sampler rejection still fails the behavioral assertions.
  • Full Windows suite at 9eb317e / main bd5086a:274 passed/5 failed/20 skipped versus272/7/20. Exactly the two renderer failures are removed. Remaining failures are the two local symlink/SDK limitations and the three checks addressed by maintainer tests: fix four source checks broken on main (PREPARE fixture; ini_key renames; long-path out-of-space folder; DrawParameters Ctx) #1793.
  • Refreshed onto main 484cfd1; production GPU and all tested fixture sources are byte-identical to the validated head. Both Windows fixtures pass again, as do the17 updated Linux-DLSS build-configuration tests. Current-head source checks, Windows builder and AppImage are dispatched.

This is a test-only integration repair. It adds no native allocation-failure or game-performance claim; descriptor-pool rollback behavior remains covered by the recording-admission fixture.

Current-head validation

Current head 2f4c072, based on main 484cfd1. Earlier local/runtime results describe their recorded source hashes.

Fork runs are separate from upstream Actions approval; no maintainer approval gate is bypassed.

@hckrman101 hckrman101 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Checked against main's gpu/vk/vk_draw.cpp: stream_insert exists (called from stream_next and the recording setup) and is a try/catch on std::exception, so extracting it first and including is what the stream fixture needs. bind_descriptors now takes cur->pool and calls vkDestroyDescriptorPool on the fallback path, so the destroy spy and the initial recording.pool match what the sampler fixture has to provide. Test and docs only, no production files touched. CI on this head was still pending when I looked.

@hckrman101
hckrman101 merged commit ae08298 into NotRexed:main Nov 10, 2026
6 of 8 checks passed
@NotRexed

Copy link
Copy Markdown
Owner

Two of the renderer source fixtures fail on main in CI after this and #1658 landed. The same failures show in pull-request runs built on current main (for example #1795's run 42864754292 and #1814's run 42864698601, both from 17:24-17:25 UTC). Could you take a look?

tests/test_sampler_admission.py, on both ubuntu-24.04 and windows-2022:

fixture.cpp:462:13: error: use of undeclared identifier 'vkDestroyDescriptorPool'
fixture.cpp:468:13: error: use of undeclared identifier 'vkDestroyDescriptorPool'

tests/test_draw_stream_visibility.py, on both OSes (Linux adds did you mean 'std::__ostream_insert'?):

fixture.cpp:84:14: error: use of undeclared identifier 'stream_insert'
fixture.cpp:175:28: error: use of undeclared identifier 'stream_insert'

vkDestroyDescriptorPool and stream_insert are both called from code #1658 changed (6e93f80, "recover recording stream and descriptor allocation failures"), so the extracted blocks now need them and the fixtures don't declare or stub them. Both fixtures reportedly pass locally with llvm-mingw clang++/libc++ and Vulkan headers v1.4.345. So it is either a stub the fixtures lack or a declaration that only arrives through libc++/llvm-mingw's headers, not CI's.

(nx2/test_draw_parameters.py's no member named 'mesh_fallback' in 'Ctx' is a separate failure, already covered by #1793.) Thanks!

@NotRexed

Copy link
Copy Markdown
Owner

Correction, sorry: the two failures in my last comment came from pull-request runs started before this PR merged. main's first run with it (ae08298, run 42867154808) passes both tests/test_sampler_admission.py and tests/test_draw_stream_visibility.py, so this PR fixed them. Nothing to do here. Thanks!

hckrman101 pushed a commit that referenced this pull request Nov 12, 2026
The worklist was behind the forum and the merges. Since v2.1.0, many fix
PRs have merged, several rows already shipped, and the most-reported
problems in Discord #bug-reporting had no row. This PR brings
`docs/worklist.md` back in line, following the rules in the worklist and
in `docs/workflow.md`.

## Method
- **Forum snapshot.** All 409 #bug-reporting posts as of Nov 11, ~11:10
PM ET (Nov 7-11). Each post is dated by its thread ID, so the submit
time is in ET.
- **How dates were used.**
- v2.1.0 was cut from `main` at about 8:32 PM ET on Nov 10 and published
at 9:29 PM ET. A PR merged before the cut counts as shipped; I checked
this with `git merge-base --is-ancestor <merge commit> v2.1.0`.
- A report sent before a fix shipped and not repeated after it counts as
fixed.
- A report sent after v2.1.0, or before a fix that merged later, counts
as still open or waiting for a release.
- **Score.** Severity x reach x confidence.
- Reach comes from workflow.md's 2026-11-10 reporter shares. Where the
affected subset is unknown, it is marked as an upper bound.
- Confidence is 0.7 only where the GitHub tracker has logs from several
commenters; otherwise it is 0.4.
- **Owners.** New rows have no owner. Existing owners are kept.

## Changes
- **Added 20 rows (18 Open, 2 Fixed-waiting).**
- Open: RAM/VRAM fill-up to OOM (#993, 5.6; 13 threads after v2.1.0),
shader preparation stalls (3.2), AMD Windows crashes (#996, 2.9),
CPU-bound fps in Castle Town and Hyrule Field (#995), invisible objects
and doors (#1002), build.py stopped on v2.1.0, cutscene audio desync,
shadow artifacts, coloured lighting, HDR black screen and flicker, frame
generation stutter, the block grid around lights and fog, the v2.1.0
update failing, AF outlines, wrong button glyphs, Steam Deck at 6 fps,
Linux AMD slower than Windows, and the FSR 4 tick not rebuilding.
- Fixed-waiting: the pick-up counter above 60 fps (#2006) and RADV
device lost after the intro (#2362).
- **Updated 6 rows.**
- The Link-jump row is now the "above a 60 fps cap" row (#1742),
covering the Scarecrow's Song softlock, Gohma and the item hanging above
Link's head. It goes from S2 to S1 and is re-scored from 1.2 to 3.5.
- New forum links or scores on the antivirus, Intel black screen (0.11
to 0.2, #999 has logs), fairy grotto, voices (#2506) and RX 580 (#2343)
rows.
- **Moved 10 rows to Fixed, waiting for a release.** #2545 (ground
garbling), #2451 (RTX 30 crash), #2286, #2275, #2449, #2096, #2406,
#2515, #1954 and #2367.
- **Deleted 8 rows** whose fix shipped in v2.1.0: #1792, #1922, #1819,
#1863, #1447, #1451, #1769-#1810 and the HDR10 overlay.

## Not done
- PRs listed as "candidate" fixes are matched by title and description
only. None is confirmed against the reports.
- Long forum threads were judged from their summaries.
- `tests/run_all.py` was not run (docs-only change).

Co-authored-by: Joey Magnus <joey.magnus@cxalloy.com>
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.

Renderer source fixtures fail after stream and descriptor admission merges

3 participants