Vulkan and DOOM

This post is taking a look at some of the interesting bits of helping id Software with their DOOM® Vulkan™ effort, from the perspective of …

VDR Follow Up – Tonemapping for HDR Signals

This is the third post in the follow up series to my prior GDC talk on Variable Dynamic Range. Prior posts covered dithering, today’s topic …

Vulkan Device Memory

EDIT: 2016/08/08 – Added section on Targeting Low-Memory GPUs This post serves as a guide on how to best use the various Memory Heaps and …

VDR Follow Up – Grain and Fine Details

The prior post in this series established a base technique for adding grain, and now this post is going to look at very subtle changes to …

VDR Follow Up – Fine Art of Film Grain

This is the first of a series of posts expanding on the ideas presented at GDC in the Advanced Techniques and Optimization of VDR Color …

GCN Memory Coalescing

This post describes how GCN hardware coalesces memory operations to minimize traffic throughout the memory hierarchy. The post uses the term “invocation” to describe one …

Fetching From Cubes and Octahedrons

For GPU-side dynamically generated data structures which need 3D spherical mappings, two of the most useful mappings are cubemaps and octahedral maps. This post explores …

Optimized Reversible Tonemapper for Resolve

A typical problem with MSAA Resolve mixed with HDR is that a single sample with a large HDR value can over-power all other samples, resulting …