An Experimental Approach to printf in HLSL
- Auto-discovered
Chris Bieneman
Visit resource ↗Description
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 and formatting challenges, then a design that keeps strings out of the driver-facing binary via a compile-time string table and __builtin_hlsl_string_to_offset, with printf in HLSL writing into an RWByteAddressBuffer. Topics include wave-based argument packing, variadic templates in DXC, generalizing the HLSL string type, message ordering caveats, and DX12 Shader Model 6.0+ support, plus roadblocks for Clang, DXC, SPIR-V, and Metal.
It is for advanced HLSL compiler and tooling engineers who debug compute or graphics shaders with DXC or Clang.
The article is free HTML with code samples; linked prototype work is described in the author's DXC and test-suite forks.
It is useful as a concrete blueprint for shader logging without driver changes and as context on missing HLSL language features.
Related resources
- Writing Shader Code in Universal RP (v2) (Cyanilux)
Writing Shader Code in Universal RP (v2) is Cyanilux's ShaderLab and HLSL guide for Unity URP (2021, updated 2022).
100% match · <code><shaders><advanced><blog><free><shader><support><via> - A gentle introduction to shaders (Alan Zucconi)
Alan Zucconi's A gentle introduction to shaders in Unity3D (June 2015) is part one of his Gentle Introduction series on alanzucconi.com, aimed at Unity developers new to GPU programs. It connects vertices, materials, and shaders in Unity's pipeline, covering ShaderLab Properties and SubShader layout, inspector uniforms, Queue tags, ZTest, and the surface-versus-vertex/fragment split for lighting versus effects. Little prior shader knowledge is assumed; fixed-function shaders are skipped as obsolete.
100% match · <shaders><blog><article><free><gpu><linked><shader><technical> - A Look at Spyro's Portals - Rendering the Background
Daniel Pokladek's November 2020 post begins a Unity series on Spyro Reignited portal shaders, focusing on the background visible through the opening while later installments cover
100% match · <blog><article><free><linked><shader><shaders><technical><time> - Alexander Ameye
's blog at ameye.dev (alexanderameye.github.io) is a static Eleventy site documenting Unity graphics engineering experiments. Sixteen indexed notes explain URP scriptable render passes, Shader Graph stylized water, realtime caustics, cavity and halftone effects, hemisphere sampling, holographic cards, and several outline methods.
100% match · <shaders><blog><article><free><linked><shader><technical><time> - 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 · <shaders><blog><article><free><linked><post><shader><technical> - 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><covers><free><linked> - 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><shaders><blog><article><features><free><linked><shader> - Branching on a GPU (Jason Booth, Dec 2021)
Branching on a GPU is Jason Booth's December 2021 Medium essay on when shader branches help or hurt on modern GPUs.
100% match · <blog><article><free><gpu><linked><shaders><technical><time> - 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><design><free><linked><shader> - Colored Outline Shader (Linden Reid)
Colored Outline Shader in Unity is Lindsey Reid's February 2018 lindenreidblog.com tutorial, third in her outline posts.
100% match · <shaders><blog><article><based><free><linked><model><shader> - 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><based><free><include><linked><model><technical> - Cracked Ice Shader (using Parallax effect) (Daniel Pokladek)
Daniel Pokladek's January 2021 blog post builds a Unity cracked-ice material with parallax crack planes under a tinted surface, extending Binary Impact's Shader Graph ice tutorial toward Dragon Age: Inquisition-style stacked cracks, not one repeating layer. Shader Graph work uses three parallax slices, surface offset, normal UV distortion, grayscale albedo tinting, and RGB-packed crack maps.
100% match · <shaders><blog><article><binary><free><linked><shader><technical> - Creating a Volumetric Ray Marcher
The post builds a march loop along the camera ray inside a mesh volume, sampling tiled 2D slice atlases as pseudo-3D density, accumulating opacity, and clipping to a bounding box while supporting o…
100% match · <shaders><blog><advanced><article><linked><post><samples><technical> - 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><features><free><linked><post> - 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><approach><argument><article><based> - Edge detection outlines (Alexander Ameye)
Alexander Ameye's December 2024 note shows screen-space edge detection outlines for Unity 6 and Unity 2022.3+ on URP, citing stylized games such as Mars First Logistics and Rollerdrome. A ScriptableRendererFeature adds a full-screen pass (Execute on 2022, Render Graph on Unity 6) and a Hidden/Edge Detection HLSL shader.
100% match · <shaders><advanced><blog><article><based><free><linked><post> - Effect Texture Maker
Official docs list sixty-eight templates, resolutions to 2048, animation and sprite sheets, three-way color balance, normal maps, and PNG alpha export.
100% match · <based><features><free><include><linked><shader><technical><templates> - Freya Holmér's Math Visualizations
Topics include dot and cross products, lerp, radians, Bézier curves, point-in-triangle tests, curvature, Voronoi tessellation, and trochoidal waves - each clip emphasizes motion over notation.
100% match · <blog><article><context><free><linked><shader><technical><topics> - GDC/ADDON 2022: How (not) to create Textures for VFX (Simon Trümpler / Simonschreibt)
Simon Trümpler's Simonschreibt page hosts his GDC 2022 Visual Effects Summit talk and an ADDON 2022 revision on VFX textures.
100% match · <blog><article><free><linked><packing><shader><technical><time> - Grass System (MinionsArt)
MinionsArt's Grass System page on minionsart.github.io indexes a Unity foliage toolkit whose tutorials and packages sit on Patreon.
100% match · <code><shaders><blog><article><compute><free><linked><shader>