Writing to Compressed Textures in Metal
- Auto-discovered
Ignacio Castaño
Visit resource ↗Description
Writing to Compressed Textures in Metal is a technical blog article by Ignacio Castaño.
Technical post on emulating compressed-texture writes on Metal by placing a BC texture and buffer at the same heap offset, then encoding blocks with Apple-silicon Morton/macro-tile swizzling. Compares swizzled write and read kernels against a temporary-buffer blit path with timings on M4 and iPhones. Aimed at Metal GPU programmers doing on-GPU texture compression such as Spark. Writing to Compressed Textures in Metal using heap aliasing.
It is aimed at advanced graphics programmers and matches the audience implied by Ignacio Castaño's other work.
The article is a free HTML blog post meant to be read in one sitting, with diagrams or code snippets embedded in the page.
It is useful when you want practical detail beyond a title or store listing and prefer primary-source explanation from the author or maintainer.
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><advanced><blog><free><one><programmers><read><snippets> - 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 · <blog><advanced><free><one><post><read><textures><using> - Believable Caustics Reflections (Alan Zucconi)
Believable Caustics Reflections is Alan Zucconi's September 2019 Unity blog post on faking pool-style ripple caustics without ray tracing, sparked by Florian Gelzenleuchter's popular shader GIF. One tileable texture is sampled twice in a Surface shader at different scales and scroll speeds, combined with min(), then tinted onto albedo with slight RGB UV offsets for dispersion. The walkthrough covers _ST tiling, _Time animation, HDR albedo above 1.0, and Post Processing Stack v2 bloom.
100% match · <blog><article><free><one><post><programmers><technical><texture> - 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><advanced><blog><article><free><one><programmers><technical> - Blur Renderer Feature Example/Template for URP / Unity 2021.2 (Alexander Ameye)
Custom Render Passes in Unity is Alexander Ameye's July 2021 ameye.dev note on URP ScriptableRendererFeature and ScriptableRenderPass boilerplate, heavily commented where Unity SRP documentation still feels sparse. The sample applies a two-pass box blur: blit camera color to a temporary buffer, blur vertically then horizontally, with adjustable strength and downsampling.
100% match · <code><blog><article><free><programmers><technical><using><want> - 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 · <blog><article><free><practical><technical><textures><want><work> - Constraint-Based Tile Generators (BorisTheBrave)
Constraint-Based Tile Generators is BorisTheBrave's October 2021 survey unifying WaveFunctionCollapse and Model Synthesis as constraint-based tile generators that fill a grid under hard local rules. Boris organizes variants by model (adjacency versus overlapping patches), constraint inference from samples, labels, or tile borders, solvers from arc consistency to Z3, cell and tile heuristics, contradiction handling, and non-square grids.
100% match · <blog><article><free><practical><programmers><technical><tile><using> - 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><blog><article><free><post><programmers><read><technical> - 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><detail><gpu><path><post> - Metal Lossy Compression Format
Technical reverse-engineering of Apple's undocumented Metal lossy texture compression (A15/M2), which offers roughly 1:2 compression transparent to applications.
100% match · <code><optimization><advanced><blog><castano><aliasing><apple><compression> - 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 · <blog><article><author><free><html><matches><one><post> - 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><advanced><blog><article><author><free><gpu><html> - 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><advanced><blog><article><free><html><path> - 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><buffer><diagrams><free><gpu> - 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><free><listing><one><post> - Around The World, Part 28: Scaling up
This is part 28 of Thomas ten Cate's Around The World development blog about an early-stage sea exploration game in Godot.
100% match · <code><optimization><blog><against><article><diagrams><free><post> - Implicit Position-Based Fluids (IPBF)
Implicit Position-Based Fluids (IPBF) presents a Utah Graphics Lab incompressible SPH method by Elie Diaz, Jerry Hsu, Eisen Montalvo-Ruiz, Chris Giles, and Cem Yuksel that uses…
100% match · <code><advanced><aimed><compares><compression><free><page><programmers> - Focus on Your Algorithm—NVIDIA CUDA Tile Handles the Hardware
This is an NVIDIA developer blog by Jonathan Bentz and Tony Scudiero introducing CUDA Tile in CUDA 13.1 as a virtual instruction set for tile-based GPU programming that abstracts…
100% match · <code><blog><advanced><detail><diagrams><free><gpu><kernels> - Coding Adventure: Simulating Smoke
This YouTube Coding Adventure video by Sebastian Lague builds a grid-based smoke simulation from first principles as one episode in the Coding Adventures series. It covers…
100% match · <code><aimed><free><one><path><programmers><useful><want> - Better sRGB to greyscale conversion
Better sRGB to greyscale conversion is an October 2025 technical blog post on 30fps.net about converting gamma-encoded sRGB to greyscale without misusing Rec.
100% match · <blog><against><article><free><path><post><programmers><technical>