pf-vkhdr-layer — the sharpest gap: an implicit layer injected into every Vulkan game process, 32 unsafe usages, zero SAFETY comments, own workspace so no lint table reached it, and an explicit missing_safety_doc allow. Now: a [lints] table (unsafe_op_in_unsafe_fn + clippy::undocumented_unsafe_blocks, both deny), the allow removed, every unsafe operation in an explicit block with a real proof (loader layer protocol / Vulkan valid-usage), # Safety docs on the contract-carrying fns, const layout asserts for the SurfaceFormat2Raw mirror, the five helpers with no caller-facing contract demoted to safe fns, and the two redundant `unsafe impl Send` deleted (fn pointers and vk handles are Send intrinsically — the type-check proves it). wdk-probe — 21 unsafe blocks, 12 proofs: the 9 missing SAFETY comments are written (the iddcx_rt.rs DDI slot-dispatch ones are about table population and PFN/index pairing, not pattern fill), the sibling denies added at the crate root, missing_safety_doc allow dropped, # Safety on DriverEntry, and the crate joins windows-drivers.yml's clippy list — it was the only driver crate not in it. pf-clipboard — the undocumented_unsafe_blocks deny moves from host/windows.rs to the crate root so host/wayland.rs (4 blocks), host/mutter.rs (2) and any future backend under host/ are covered on creation. All existing blocks already carry proofs; free today, structural tomorrow. Verified here: pf-vkhdr-layer cargo fmt --check + clippy --release -D warnings at x86_64-pc-windows-msvc. wdk-probe and pf-clipboard compile checks need the WDK/Linux boxes and ride the .133/.25 gate.
32 lines
937 B
TOML
32 lines
937 B
TOML
[package]
|
|
name = "pf-vkhdr-layer"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
description = "punktfunk Vulkan implicit layer: inject HDR10/scRGB surface formats on the virtual display so Vulkan games (id Tech, etc.) detect HDR over an IddCx virtual display"
|
|
license = "MIT OR Apache-2.0"
|
|
publish = false
|
|
|
|
[lib]
|
|
name = "pf_vkhdr_layer"
|
|
crate-type = ["cdylib"]
|
|
|
|
[dependencies]
|
|
ash = "=0.38.0+1.3.281"
|
|
|
|
# This package is its own workspace (see below), so the main workspace's lint tables never reach
|
|
# it — the unsafe discipline has to be restated here or it silently doesn't apply.
|
|
[lints.rust]
|
|
unsafe_op_in_unsafe_fn = "deny"
|
|
|
|
[lints.clippy]
|
|
undocumented_unsafe_blocks = "deny"
|
|
|
|
[profile.release]
|
|
opt-level = 2
|
|
panic = "abort"
|
|
strip = true
|
|
|
|
# Standalone package (not a member of the main punktfunk cargo workspace) — it's a Windows-only
|
|
# cdylib built on its own by pack-host-installer.ps1, like the UMDF driver crates next to it.
|
|
[workspace]
|