- 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
![](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-151/detroit_img1.png)
- 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
![](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-151/QD-1.jpg)
- 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
![](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-151/detroit_img6.png)
- 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
![](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-151/sword_aurora.jpeg)
- 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
![](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-151/selection_outline.png)
- 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
![](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-151/2020-blog-vulkan-portability-update-1.jpg)
- 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
![](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-151/Color_Title_WP.png)
- video presentation from the X.Org Developer Conference provides an overview of the Vulkan vendor-neutral API extension
![](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-151/800px-Ray-tracing-explained-by-intel.jpg)
- 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
![](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-151/TechnicallySpeakingChallenge_1.png)
- 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
![](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-151/GpuDB.png)
- 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
![](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-151/vulkan_load_op.png)
Thanks to Warren Moore for support of this series.
Would you like to see your name here too? Become a Patreon of this series.