Repository navigation
docs: what the review before 0.16 found, and Rust 1.87 again - #148
Merged
Merged
Conversation
The concealment of D66 brought a let chain into cpu::Concealer::decode. Let chains are stable from Rust 1.88, and Cargo.toml and the READMEs promise 1.87, which CI never checked: on 1.87 the build failed with E0658. The condition is a nested if again, and a CI job checks the workspace, all targets, on 1.87 with the locked dependencies, none of which asks for a newer Rust. Claude-Session: https://claude.ai/code/session_019fJGoCTvP5e7n599q3ZQ42
The C API's docs had fallen behind the Vulkan and Direct3D contexts: - EmberwaveTexture's ordering rules, the one place that sets them out, now cover Vulkan contexts (semaphores of the decodes that do not wait) and Direct3D ones (fences of the _d3d12 calls), and name the Direct3D wrappers; the decodes into textures say which texture each takes. - emberwave_context_create_vulkan named only Metal's decodes that do not wait, said Windows where only 64-bit Windows has it, and read as if a bad queue family, queue index or apiVersion were undefined behaviour: they are EMBERWAVE_STATUS_INVALID_ARGUMENT. - emberwave_context_destroy's contract left out Direct3D contexts. - The README says what emberwave_decoder_set_concealment's argument is, and that concealment is off by default. ARCHITECTURE.md: which memory a decoder makes on first use, the dequantisation of a block a concealing frame lacks, the colour module's RGB to Y'CbCr conversion, the RGB textures among the portable reads, and the browser player's set_concealment. CONTRIBUTING.md lists the two lints CI runs besides the workspace's. BENCHMARKS.md says the BGRA table comes with the next run. Claude-Session: https://claude.ai/code/session_019fJGoCTvP5e7n599q3ZQ42
Merged
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.
Purpose
A review of the docs against the code before release 0.16.0, the first since #124, after the Vulkan and Direct3D contexts (D61 to D63), RGB pictures (D65) and concealment (D66). It found one broken promise and docs that had fallen behind.
Changes
cpu::Concealer::decode. Let chains are stable from 1.88, andCargo.tomland the READMEs promise 1.87: the build failed there with E0658. The condition is a nestedifagain, and a new CI job, "oldest Rust (1.87)", checks the workspace, all targets, with the locked dependencies (none asks for a newer Rust). 0.15.0 built on 1.87; no release had the chain.lib.rs, the header regenerated):EmberwaveTexture's ordering rules now cover Vulkan contexts, through the semaphores of the decodes that do not wait, and Direct3D ones, through the fences of the_d3d12calls. They also name the Direct3D wrappers. The decodes into textures say which textures each takes and that shared Direct3D textures take the_d3d12calls.emberwave_context_create_vulkannamed only Metal's decodes that do not wait. It said "Windows" where only 64-bit Windows has it, and its sentence on requirements read as if a bad queue family, queue index orapiVersionwere undefined behaviour. They areEMBERWAVE_STATUS_INVALID_ARGUMENT.emberwave_context_destroy's contract includes Direct3D contexts.emberwave_decoder_set_concealment's argument is, and that concealment is off by default.set_concealment.gpufeature, wasm32).Testing
cargo fmt --check.cargo clippy --workspace --all-targets,-p emberwave-core --no-default-features --all-targetsand--target wasm32-unknown-unknown -p emberwave-web -p emberwave-core, all with-D warnings.cargo test --release --workspaceon Metal.Benchmark impact
None.
Review
The findings come from our review agent's read of the docs against the code at 6cd390e. It checked the Quick start and Usage commands by running them, and every C and Rust name in the docs. Each finding was checked against the code before it was fixed. The Vulkan and Direct3D docs were checked by reading, as that code does not build on this Mac.
Related issue
None; before release 0.16.0.