compact-storage-always-available

star 0

Compact storage formats (R16Float, R8Unorm, Rg16Float, Rg11b10Float) require a runtime probe at adapter creation for STORAGE_BINDING support. Desktop Vulkan/DX12/Metal always passes the probe. Mobile GPUs (older Mali/Adreno) may fail it — keep the probe and R32 fallback path. Never use compile-time gates — Titan ships one binary across platforms

Solidor777 By Solidor777 schedule Updated 6/15/2026

name: compact-storage-always-available description: Compact storage formats (R16Float, R8Unorm, Rg16Float, Rg11b10Float) require a runtime probe at adapter creation for STORAGE_BINDING support. Desktop Vulkan/DX12/Metal always passes the probe. Mobile GPUs (older Mali/Adreno) may fail it — keep the probe and R32 fallback path. Never use compile-time gates — Titan ships one binary across platforms source: auto-skill extracted_at: '2026-06-15T04:29:18.101Z'

Compact Storage Formats — Desktop Always, Mobile Probed

Titan targets desktop (Vulkan/DX12/Metal), mobile (Android/Vulkan, iOS/Metal), and consoles. Desktop GPU drivers always expose STORAGE_BINDING for compact formats (R16Float, R8Unorm, Rg16Float, Rg11b10Float). Mobile GPUs may not: Vulkan §34.4 makes storage support optional for these formats on Android, and older Mali/Adreno GPUs commonly lack it. Apple A-series GPUs support it from family Apple 6+ but older devices may not.

Why: The wgpu baseline restriction on these formats is WebGPU-spec compliance only — the native desktop APIs have always supported storage for these formats. The vendored wgpu removes this restriction. On mobile, keep the runtime probe for device variance.

How to apply:

  • Keep the runtime probe adapter.get_texture_format_features(R16Float) at device creation time. On desktop it always passes; on mobile it correctly detects GPUs that lack the feature.
  • Use denoiser_confidence_format(compact: bool) etc. helpers to select narrow format (R16Float) or baseline fallback (R32Float).
  • Thread the probe result through init-time constructors (see capability-propagation skill).
  • Never use #[cfg] compile-time gates — desktop always wins the probe and runtime overhead is one call at boot. Single binary adapts per-device.
Install via CLI
npx skills add https://github.com/Solidor777/Titan --skill compact-storage-always-available
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator