Graphics Programming Weekly 460


GPU-Driven Anything

  • explains the count/prefix-sum/write pattern used in GPU-driven graphics for culling, LOD, and clustered lighting
  • covers expansion, compaction, and binning
  • discusses the difference between push- and pull-based models for moving data
  • additionally presents the effect of determinism compared against atomics


Paint That Squishes

  • details the GPU-based paint simulation behind the iOS app Fold & Squish
  • implements splats, thin-film flow, folding, rubbing, peeling, and glitter using Metal compute shader


Virtual Shadow Maps

  • explains a virtual shadow map implementation using cascaded virtual page tables and physical page allocation
  • covers bookkeeping, visible-page marking, 2D wraparound addressing, and hierarchical page buffer culling
  • provides performance timings on an RTX 3070
  • discusses caching, filtering, and future work such as translucency and local lights


Pong - From 2D to 3D With Vulkan

  • continues a tutorial series by moving a 2D Pong implementation into 3D using Vulkan
  • stages the scene in Blender with paddles, ball, and walls, exports it as GLB
  • shows how to map the exported data into data for runtime usage
  • presents what changes are required to move the logic into 3D space


Depth & Stencil Buffers | Godot Shader Basics 05

  • covers depth and stencil buffer manipulation in Godot 4 shaders
  • demonstrates depth-texture sampling, linearization, silhouette effects, and water rendering with foam and absorption
  • explains the stencil buffer as 8-bit per-pixel integer storage and shows how to build stencil masks


Your Softmax Is Broken. Here's the Fix.

  • analyzes numerical bugs in standard softmax, log-softmax, and cross-entropy implementations across PyTorch, JAX, and TensorFlow
  • explains softmax collapse (gradient vanishing at high confidence) and softmax cancellation
  • proposes log-space drop-in replacements using softplus, log1p, and expm1 to eliminate precision cliffs and other issues


Using Vulkan on Wayland Without WSI

  • presents a way to present a Vulkan frame without using libwayland or Vulkan’s Wayland WSI
  • covers device selection, DRM format modifiers, and a manual frame queue for presenting frames to the compositor


Shader compiler survey

  • surveys existing shader compilers against ten ideal properties for offline and embedded use
  • compares FXC, DXC, Metal, the Khronos stack, Tint, Naga, NIR, and Slang on modularity, IR access, and platform support
  • benchmarks the compilers on the bgfx corpus and discusses where each has weaknesses


Thanks to Nia Bickford for support of this series.


Would you like to see your name here too? Become a Patreon of this series.