test(setup): execute the D3D12 probe on real Windows and keep it running in CI (#248) - #274
Merged
lemon07r merged 2 commits intoSep 9, 2026
Conversation
Contributor
Author
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
lemon07r
deleted the
devin/1788918975.37216-windows-d3d12-probe-evidence
branch
September 13, 2026 08:18
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes the remaining blocker on #248: the D3D12 probe merged in #259 had never been executed on Windows. This PR records that execution and makes it recur in CI.
New Windows-only test
the_real_probe_agrees_with_a_direct_d3d12createdevice_call(crates/vera-cli/src/commands/setup.rs). The hardware answer can't be pinned, so it pins the plumbing instead:d3d12.dllloads from System32,D3D12CreateDeviceresolves, the transmuted ABI returns a documented null-ppDevicevalue (S_FALSEor a failing HRESULT — asserts it is neverS_OK), andhas_directx12_adapter()/directml_provider_for_d3d12(...)agree with that value's sign. It prints the raw HRESULT so every CI log is field evidence.New CI job
windows-probeonblacksmith-16vcpu-windows-2025(same runner class release.yml already uses) runningcargo test -p vera-cli --bin vera setup -- --nocapture, with theCFLAGS=/MD/CXXFLAGS=/MDworkaround copied from release.yml (without it the test binary fails to link:esaxx-rsisMT_StaticReleasevs vera-core's scannerMD_DynamicRelease).Evidence from this machine (Windows Server 2022, build 20348, d3d12.dll 10.0.20348.3451)
Adapters per dxdiag:
IddSampleDriver DeviceandMicrosoft Basic Display Driver, both DDI 12, feature levels 12_1…9_1.So on real Windows the export resolves through the
LoadLibraryExA/GetProcAddress/transmutepath, success arrives asS_FALSEexactly as #259 predicted (an== S_OKcheck would have said "no"), and the probe selects DirectML.Caveat worth a decision: this VM has no discrete GPU — only a virtual display adapter and the Basic Display Driver — yet D3D12 answers yes because WARP (the software rasterizer) is a D3D12 FL 12_1 device. DirectML does run on WARP, but slowly; if that's not the desired auto-select outcome on GPU-less VMs, the probe would need a further DXGI check (e.g. reject
DXGI_ADAPTER_FLAG_SOFTWARE/ the Basic Render Driver vendor id 0x1414). Not changed here.Also observed (not changed)
cargo test -p vera-cli --bin vera(full, outside thesetupfilter) has 3 pre-existing failures on Windows unrelated to this PR:agent::tests::all_skill_paths_dedup_shared_directories,uninstall::tests::shim_candidates_track_non_default_cargo_home,uninstall::tests::an_ambiguous_shim_is_reported_and_blocks_the_complete_claim. The CI job is scoped tosetupso it doesn't gate on those.Link to Devin session: https://app.devin.ai/sessions/dc13943841be48759f3e2f6c1aed3f85
Open in Devin Desktop: https://app.devin.ai/desktop/session/dc13943841be48759f3e2f6c1aed3f85?variant=devin
Requested by: @lemon07r
Summary by cubic
Adds a Windows-only test that runs the D3D12 probe against the real
d3d12.dllon a CI runner, so the probe’s behavior is verified on actual Windows instead of only cross-compiled.D3D12CreateDeviceresolves, a nullppDevicereturnsS_FALSEor a failing HRESULT (neverS_OK), andhas_directx12_adapter()/directml_provider_for_d3d12(...)agree with that value’s sign.windows-probeCI job onblacksmith-16vcpu-windows-2025running the setup tests with the/MDCRT flags fromrelease.yml.Written for commit 27eb57a. Summary will update on new commits.