Graphics Programming weekly - Issue 25 — February 4, 2018

Optimized Swapchain in Vulkan [wayback-archive]

  • discussion of different approaches, overview of strengths and weaknesses
  • recommends splitting command buffers into two groups
    • pre-acquire (everything that doesn’t write into the swapchain)
    • post-acquire (everything that writes into the swapchain)
  • allows better GPU utilization, execution of pre-acquire workload doesn’t need to stall waiting for the present

Optimized Swapchain in Vulkan II [wayback-archive]

  • how to reduce input -> present latency further
  • theoretical model to find a better method for dynamically adaptive workloads while minimizing input latency

A “Bind Once” Approach to Uniform Data [wayback-archive]

  • how to use a single descriptor set for all uniform data
  • uses a single uniform buffer object
  • with fixed size uniform blocks, indexed using a per object push constant

Thoughts on Skinning and LDS [wayback-archive]

  • each thread loads one skinning matrix into LDS (local data share)
  • all further loads of skinning matrices are done from LDS instead
  • discussion of LDS limits for thread occupancy

Unity and Unreal Engine: Real-time Rendering VS Traditional 3DCG Rendering Approach [wayback-archive]

  • show what rendering techniques are available in unity / unreal
  • how engines can be integrated into the art pipeline
  • and be used to render the final movie

Godot 3.0 is out and ready for the big leagues

  • full range of Disney’s principled BSDF for physically-based rendering
  • Global illumination
  • new postprocessing options
  • gpu based particles

2D Reflective Water Shader in Unity [wayback-archive]

  • how the water reflection effect was setup in The Endless River (2018 Global Game Jam)
  • using a second camera to render the scene
  • shader effect that uses noise to offset the vertex position to create the movement in the water

Scriptable Render Pipeline Overview [wayback-archive]

  • short overview of the concepts and how to cull and render opaque objects using the scriptable render pipeline

What the Heck is Blue Noise? [wayback-archive]

  • what are the characteristics of blue noise
  • more evenly distributed samples then white noise
  • allows fewer samples to cover more space
  • helps to reduce aliasing when compared to grid samples

Portable Graphics Abstraction in Rust [wayback-archive]

  • the slides are missing the .pdf extension (rename them)
  • single RUST API with many backends (D3D12, vulkan, metal, … )
  • aim is to implement the vulkan portability layer on top of the hardware abstraction layer


  • overview of the AMD open source driver for linux
  • architecture of the platform abstraction layer (PAL)