mirror of
https://github.com/storytold/lightcraft.git
synced 2026-10-26 11:09:23 -06:00
On DX12, FXC merged the conv kernel's four output stores (modes 0 and 1) into one 16-byte store_raw. The DXBC is valid and aligned, but NVIDIA's driver ran it wrong on a GTX 1070: every second pixel's channels came out shifted, so AI Denoise on the GPU was silently wrong on Windows. DXC and Vulkan were right on the same card. The stores now step by `1 + p.zero` (the always-0 uniform, renamed from `pad`), which FXC cannot fold, so it keeps them apart. A two-layer channel-copy network checks the stores exactly; it fails on that card without the fix. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>