Graphics Programming weekly - Issue 151 — September 27, 2020


Porting detroit: become human from playstation® 4 to pc – part 1

  • the post explains the experiences on porting the game from PS4 to PC using Vulkan
  • part 1 of 3 focuses on optimize shader pipeline compilation and descriptor allocation
  • the descriptor allocation is based around dynamic indexing into large arrays for each resource type


Porting detroit: become human from playstation® 4 to pc – part 2

  • part two of the series provides on porting Detroit: become human offers an overview of indexing considerations using the VK_EXT_descriptor_indexing extension
  • shows the AMD ISA disassembly related to sampling textures and how much extra work is required when texture indexing is not uniform


Porting detroit: become human from playstation® 4 to pc – part 3

  • the last part of the series briefly explains how they used scalarization to optimize shader, split command list recording onto multiple threads
  • looks at memory management in more detail, detailing the AMD libraries and tools available for memory management


Making a Real Time Stylized Sword Aura Effect with Shaders

  • the author explains his approach for the design of an aurora shader challenge
  • provides an illustrated walk through how to start from a simple effect and incrementally improve towards the expected look


Borderland between Rendering and Editor — Part 3: Selection Highlighting

  • the articles explains how The Machinery implementing for rendering the outline of selected objects has been archived
  • this is implemented as a screenspace effect using the object ID and depth buffer to detect the shape of the objects
  • presents how to improve visual stability when TAA is used


Fighting Fragmentation: Vulkan Portability Extension Released and Implementations Shipping

  • the blog post provides an overview of the different API layering implementations (Vulkan on Metal, D3D11on12, etc..)
  • Vulkan Portability Initiative exposes a new extension (VK_KHR_portability_subset) that allows these layers to mark features as unsupported
  • progress on updating the conformance testing and device capabilities emulators to make them aware of these constraints


Math in Art

  • beginner-focused tutorial explains how to store normals, noise, and positional data in textures
  • explains what kind of effects can be archived with this data
  • the example effects are implemented using ShaderGraph in Unity


Vulkan Will Soon Have A Vendor-Neutral Cross-Platform Ray-Tracing API

  • video presentation from the X.Org Developer Conference provides an overview of the Vulkan vendor-neutral API extension


Technically Speaking Challenge 1: Retro Shaders

  • collection all entries for a tech art challenge with the theme Retro shaders
  • the entries show a large variety of effects and implementations using different engines


Five years of GPU DB

  • the author presents a look back at the last 5 years of the GpuDB
  • a useful website to gather information about different GPUs and compare them


Loads, Stores, Passes, and Advanced GPU Pipelines

  • the article explains the basic of the tiled GPU architectures used on mobile
  • uses this information to explain the importance of using the correct load and store operations for Vulkan render passes
  • additonally covers foveated rendering extension and how to structure rendering with multiple render passes


Thanks to Warren Moore for support of this series.


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