* GPU tessellation: a pipeline the device cannot build falls back to CPU meshing instead of crashing (#1098) Build the tessellation compute pipeline inside error scopes; TessGpu::new returns an error, and the viewport logs it and meshes bodies on the CPU. A Windows CI job builds the pipeline with D3D12's FXC on the WARP adapter. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Tessellation shader: basis functions in one-dimensional local arrays, so D3D12's FXC compiles it (#1098) FXC has to unroll loops that write an array inside a struct (Basis.n0/n1) or a 2-D array (ndu) by a counter, and cannot with run-time trip counts (X3511). A2.2 basis functions in a local 1-D array returned whole; derivatives from the degree p-1 functions; the pole step offsets computed rather than indexed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
26 lines
837 B
TOML
26 lines
837 B
TOML
[package]
|
|
name = "solidcraft-gpu"
|
|
description = "SolidCraft GPU compute: evaluates display tessellation plans (surface points and normals) in a compute shader"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
solidcraft-geom = { workspace = true }
|
|
wgpu = { workspace = true }
|
|
log = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
|
|
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
|
|
pollster = { workspace = true }
|
|
# Native backends, so tests and the CLI can open a device without a window.
|
|
wgpu = { workspace = true, features = ["metal", "vulkan", "dx12", "gles"] }
|
|
|
|
[dev-dependencies]
|
|
solidcraft-kernel = { workspace = true }
|
|
# The HLSL the D3D12 backend compiles (tests check it suits FXC).
|
|
naga = { workspace = true, features = ["wgsl-in", "hlsl-out"] }
|