fix(windows-drivers): emit IddCx DXGI/OPM/UINT types locally
apple / swift (push) Failing after 2s
apple / screenshots (push) Has been skipped
windows-drivers / probe-and-proto (push) Successful in 19s
windows-drivers / driver-build (push) Failing after 58s
windows-host / package (push) Successful in 5m19s
ci / rust (push) Successful in 1m15s
ci / web (push) Successful in 42s
ci / docs-site (push) Successful in 1m2s
android / android (push) Successful in 3m19s
deb / build-publish (push) Successful in 3m21s
decky / build-publish (push) Successful in 11s
docker / build-push (--build-arg FEDORA_VERSION=44, ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm) (push) Successful in 5s
docker / build-push (., web/Dockerfile, punktfunk-web) (push) Successful in 4s
docker / build-push (ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Successful in 3s
ci / bench (push) Successful in 4m44s
docker / build-push (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 4s
docker / build-push (ci, ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 2m16s
rpm / build-publish (bazzite, punktfunk-fedora-rpm) (push) Successful in 8m35s
rpm / build-publish (fedora-44, punktfunk-fedora44-rpm) (push) Successful in 8m14s
docker / deploy-docs (push) Successful in 22s

The iddcx bindgen now SUCCEEDS (C++ fix). Generated module had 38 unresolved-type
errors — a bounded set wdk-sys does not bindgen: UINT, DXGI_FORMAT,
DXGI_COLOR_SPACE_TYPE, IDXGIDevice/Resource, 6 OPM_* types. No WDF type is
missing, so the crate::types sharing (type-identity) holds. Allowlist those
families so they emit locally in iddcx.rs (non-conflicting — absent from
crate::types), keeping allowlist_recursively(false).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-24 14:33:59 +00:00
parent 2df3c0f2b4
commit 04e52b0c22
+8
View File
@@ -369,6 +369,14 @@ fn generate_iddcx(out_path: &Path, config: &Config) -> Result<(), ConfigError> {
.allowlist_recursively(false) .allowlist_recursively(false)
.header_contents("iddcx-input.h", &header_contents) .header_contents("iddcx-input.h", &header_contents)
.allowlist_file("(?i).*iddcx.*") .allowlist_file("(?i).*iddcx.*")
// IddCx structs reference DXGI + OPM (output-protection) types and the `UINT` primitive that
// wdk-sys does NOT bindgen. Emit those locally (non-conflicting — they're absent from
// crate::types). WDF/GUID/ULONG types it shares DO resolve from crate::types (no WDF type is
// missing), so this stays type-identical for the WDF surface.
.allowlist_type("DXGI_.*")
.allowlist_type("IDXGI.*")
.allowlist_type("OPM_.*")
.allowlist_type("UINT")
}; };
trace!(bindgen_builder = ?bindgen_builder); trace!(bindgen_builder = ?bindgen_builder);