Metal Single Pass Downsampler (SPD)
- Auto-discovered
Kiriakos Gavras
Visit resource ↗Description
Metal Single Pass Downsampler (SPD) is a February 2026 technical article by Kiriakos Gavras porting AMD FidelityFX SPD to Metal for depth pyramid generation.
It explains multi-pass mip bandwidth and sync costs, then a 64x64 threadgroup where 16x16 threads load 4x4 blocks, write mip 0, and reduce with max (or min for reverse-Z) in threadgroup memory. An atomic global counter lets the last finished group finish remaining mips, with Metal barriers and kernel excerpts.
It is for advanced Metal and occlusion-culling engineers who already know compute shaders and hierarchical Z.
The post is a free blog with figures, code listings, and full source referenced at the end.
It is useful as a concrete Metal SPD walkthrough focused on depth pyramids rather than a generic drop-in.
Related resources
- Custom Renderer Features (Cyanilux)
Long-form Cyanilux guide to URP ScriptableRendererFeature and ScriptableRenderPass code: example effects, RTHandle setup, blit paths, and Unity 6 Render Graph notes.
100% match · <code><shaders><advanced><blog><explains><focused><free><full> - Depth (Cyanilux)
Long-form Cyanilux tutorial on Unity depth spaces, Z buffers, Scene Depth sampling, SV_Depth, and world-position reconstruction in URP and HDRP.
100% match · <code><shaders><advanced><blog><depth><focused><free><full> - Forcefield Shader Breakdown (Cyanilux)
Cyanilux URP Shader Graph forcefield: Fresnel edges, depth intersections, Scene Color refraction, noise distortion, and impact ripples via custom HLSL and C#.
100% match · <shaders><blog><advanced><depth><focused><free><full><post> - Intro to the Shader Pipeline (Cyanilux)
Introductory Cyanilux blog post on Unity meshes, shader stages, render pipelines, materials, C# property setup, batching, and forward versus deferred paths.
100% match · <code><shaders><blog><explains><focused><free><full><post> - Blending Meshes into Terrain (Inresin)
Louis Waloschek's April 2020 Inresin tutorial blends static meshes into Unity Terrain using baked depth masks and Amplify surface shaders.
100% match · <code><shaders><advanced><blog><article><free><lets><single> - BruteForceGame
Matthieu Houllier's Brute Force studio blog documenting Crumble, a Unity physics platformer released on Steam in late 2020. Devlogs walk through shipped shaders: shell grass ben
100% match · <shaders><blog><article><concrete><depth><free><full><global> - Custom Post Processing in URP / Unity 2021.3 (Febucci)
Federico Bellucci's May 2022 Febucci article covers custom post-processing in Unity URP on Unity 2021.x (URP 12.1.5), when volume-backed custom effects lacked clear docs.
100% match · <code><shaders><blog><article><drop><free><full><min> - Drawing Thousands of Meshes with DrawMeshInstanced / Indirect (Toqoz)
Toqoz's November 2019 toqoz.fyi post walks through drawing very large mesh counts in Unity with Graphics.DrawMeshInstanced and Graphics.DrawMeshInstancedIndirect, with C# samples,
100% match · <code><shaders><advanced><blog><article><bandwidth><compute><culling> - What happens when a GPU reads memory
Deep technical blog post by Fergus Finn tracing a CUDA global load (LDG) on an RTX 4090 from warp issue through coalescing, L1/TLB, crossbar, L2, and DRAM.
100% match · <code><optimization><advanced><blog><already><bandwidth><global><know> - 2D Grass Rendering with WebGPU Compute Shaders
Technical walkthrough from the Jarl Devs Team of a fully procedural 2D pixel-art grass renderer driven by two WebGPU/WGSL compute passes that regenerate, depth-sort, and shade…
100% match · <code><shaders><blog><atomic><compute><depth><explains><full> - A silly diffuse shading model
A silly diffuse shading model is a December 2025 post on the lisyarus graphics blog about a one-liner alternative to classic Lambertian diffuse for tech demos and early…
100% match · <shaders><blog><article><free><full><know><max><multi> - An Experimental Approach to printf in HLSL
An Experimental Approach to printf in HLSL is a December 2025 technical post by Chris Bieneman describing a holiday prototype for GPU-side printf in HLSL. It covers GPU string…
100% match · <code><shaders><advanced><blog><article><compute><concrete><engineers> - SIGGRAPH 2025 Advances in Real-Time Rendering in Games: Fast as Hell: idTech8 Global Illumination
[video] SIGGRAPH 2025 Advances in Real-Time Rendering in Games: Fast as Hell: idTech8 Global Illumination is a YouTube recording of Tiago Sousa's Advances talk on idTech8 global…
100% match · <code><optimization><shaders><advanced><engineers><free><global><multi> - Realtime Raytracing in Bevy 0.18 (Solari)
Realtime Raytracing in Bevy 0.18 (Solari) is a December 2025 development post by jms55 on quality and performance work for Solari, Bevy's dynamic ray-traced lighting path planned…
100% match · <code><optimization><shaders><advanced><blog><already><article><excerpts> - No Graphics API
No Graphics API is a December 2025 long-form essay by Sebastian Aaltonen arguing that modern bindless GPUs no longer need the retained-mode complexity of DirectX 12, Vulkan, and…
100% match · <code><optimization><advanced><blog><barriers><costs><free><know> - OpenUSD Core Spec 1.0 is Here: Now We Need You
OpenUSD Core Spec 1.0 is Here: Now We Need You is an Alliance for OpenUSD blog post by Aaron Luk and Nick Porcino announcing ratification of the OpenUSD Core Specification…
100% match · <code><blog><advanced><article><engineers><free><group><post> - AMD GPU Debugger
AMD GPU Debugger is a December 2025 technical blog post by Abdelhadi on building an AMD GPU debugger outside ROCm, inspired by Marcell Kiss and limited tools such as rocgdb. It…
100% match · <code><optimization><advanced><blog><amd><compute><concrete><free> - A series of tricks and techniques I learned doing tiny GLSL demos
A series of tricks and techniques I learned doing tiny GLSL demos is a December 2025 blog post by bµg about lessons from size-constrained GLSL demos after the earlier Red Alp…
100% match · <code><shaders><advanced><blog><already><article><free><know> - WebGPU and the price of compiling WGSL
WebGPU and the price of compiling WGSL is a blog post by Hugo Daniel introducing a WebGPU diagnostics and compilation-benchmark tool after earlier posts on WGSL limits. It…
100% match · <code><shaders><blog><compute><depth><free><generation><multi> - A case for learning GPU programming with a compute-first mindset
A case for learning GPU programming with a compute-first mindset is a 2025 blog essay on Maister Graphics Adventures arguing that new GPU programmers should learn compute,…
100% match · <code><optimization><blog><already><article><compute><free><full>