Crafter.Graphics/examples/RTStress
catbot 097cc37347 feat(webgpu): HDR post-process primitives — float textures, storage-texture bindings, RESOLVE→HDR target (#27)
Adds the minimal WebGPU-backend surface an HDR bloom/post chain needs:

1. wgpuCreateStorageImage2D + StorageImage2D<>: runtime rgba16float (or
   other format) textures with STORAGE_BINDING|TEXTURE_BINDING usage, no
   CompressedTextureAsset upload — GPU-produced HDR targets.
2. UICustomBindingKind::StorageTexture (kind 5): write-only storage-texture
   binding carrying a texel format (the freed UICustomBinding::format byte),
   wired through all three binding paths (UI custom / RT / plain compute).
   Float textures already sample via SampledTexture (sampleType float).
3. PipelineRTWebGPU::Init(..., hdrOutputFormat): RESOLVE writes the linear
   accumulator into a user rgba16float texture (RTPass::outTexHandle)
   instead of the rgba8unorm canvas, leaving the composite→swapchain pass to
   the app. Default RGBA8Unorm keeps the canvas path byte-identical.

Existing RT examples updated for the _pad→format field rename; the default
paths are unchanged (verified RTStress builds + renders).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 12:55:14 +00:00
..
closesthit.wgsl wip: uncommitted changes from claude run on issue #3 2026-05-31 16:28:38 +00:00
main.cpp feat(webgpu): HDR post-process primitives — float textures, storage-texture bindings, RESOLVE→HDR target (#27) 2026-06-09 12:55:14 +00:00
miss.wgsl wip: uncommitted changes from claude run on issue #3 2026-05-31 16:28:38 +00:00
project.cpp wip: uncommitted changes from claude run on issue #3 2026-05-31 16:28:38 +00:00
raygen.wgsl wip: uncommitted changes from claude run on issue #3 2026-05-31 16:28:38 +00:00
resolve.wgsl wip: uncommitted changes from claude run on issue #3 2026-05-31 16:28:38 +00:00