Graphics Programming weekly - Issue 269 - January 8th, 2023

Practical Tips for Optimizing Ray Tracing

  • the article provides techniques to speedup raytracing workloads
  • discusses techniques to integrate “importance sampling” for dynamic objects that are off-screen but still contribute to effects
  • how to optimize shader table updates
  • additionally presents the idea of aligning TLAS boxes so that bounding boxes are aligned with the world axis


  • the article presents a breakdown of how a Snowglobe can be implemented using Unity
  • shows how to set up glass sphere refraction/reflections
  • additional covers on how to simulate the snow using particles

Let’s talk about (GPU) crashes

  • the article presents a discussion of different sources of GPU hangs
  • shows techniques that can be used to track down the cause of hangs
  • techniques available in D3D12 and Vulkan that can be used to develop techniques to track down the source of the issue

[pptx] Deep Dive into FidelityFX Super Resolution 2

  • the presentation contains a step-by-step walkthrough of the FSR implementation
  • shows how the API is structured and what updates have been made from FSR 2.0 to 21

Updates in d3dx12.h: Nuget Packaging, Header Bloat Reduction, and D3DX12GetCopyableFootprints

  • a new version of the D3D Agility SDK has been released
  • includes the d3dx12 headers, and those have been split into separate headers so users can only include what they need
  • additionally, the implementation of GetCopyableFootprints has been open-sourced

[video] Fault Formation // Terrain Rendering episode 2

  • the video shows how to implement a Fault Formation algorithm for a procedural terrain using OpenGL
  • additionally presents how a (Finite impulse response) FIR filter can be used to smooth the results
  • presents an overview of the filter, visualize the effects using Excel, and shows how to implement it using GLSL

[video] niagara: Culling optimization

  • another part of the Vulkan series that implement GPU culling
  • this part focuses on optimizations and cleanup tasks
  • presents the effects on the performance of the different techniques covered

Experimenting with fp16, part 2

  • the blog post continues the discussion of the effects of using 16-bit floating point values in the temporal resolve shader from the FidelityFX SSSR sample
  • looks into AMD hardware instruction generated by the compiler
  • shows how why the VGPR usage is so different
  • presents alternative ways to express the work and how it affects the generated code

Requiem for piet-gpu-hal

  • the article discusses the reasoning why Vello (a GPU compute-centric 2D renderer) choose to transition to WebGPU
  • discusses the choices made during the implementation
  • looks at strengths and open issue
  • additionally provides a look at more advanced features and how WebGPU limits are affecting the project

Thanks to Unai Landa for support of this series.

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