2017 LLVM Developers’ Meeting: “Apple LLVM GPU Compiler: Embedded Dragons
- explanation of GPUs
- overview of GPU execution model
- latency hiding
- register usage
- many compiler internals
- optimizations and trade-offs that need to be considered
- uniformity hoisting
- compiler is able to extract constants and run as part of low frequency kernels
- saves power and performance
- even hoisting a single add is a win on apple hardware
Screen Space Ray-Traced Global Illumination: Toughest Challenge in Real-Time 3D [wayback-archive]
- use technqiues from Screen Space Reflections for
- ambient occlusion
- secondary diffuse light bounces
- self-illumination of emission objects
- bent normal calculation
- average direction of ambient light that is not occluded
- high level overview of the implementation and results
- demo at: SIGGRAPH 2017 Real Time Live
Lighting with Unreal Engine Masterclass (Summary) [wayback-archive]
- writeup of the static lighting information provided as part of the Lighting with Unreal Engine Masterclass | Unreal Dev Day Montreal 2017
STAR CITIZEN: CitizenCon 2947 - Graphics and Tech Development for Star Engine
- full frame breakdown
- dynamic environment probes, distributed across frames
- occlusion direction + angle in GBuffer
- vector in direction of least occlusion (“bent-normals”)
- optics
- anamorphic flare
- physically based lens flare
- 4 frame temporal AA
- physically based glass shader
Vulkan: Descriptor Sets Management [wayback-archive]
- resource binders of the engine mapped to resource descriptor
- these are blueprints
- copied into descriptor pools during rendering
- these pools will be released when the GPU is done rendering the frame
- reduce fragmentation and lower tracking overhead
Animating Noise For Integration Over Time [wayback-archive]
- analysis of white noise, blue noise and Interleaved Gradient Noise for reconstruction of image
- experimenting with golden ratio addition to create changing noise without having to regenerate it
- which seems to be an ok approximation
Deep Illumination: Approximating Dynamic Global Illumination with Generative Adversarial Network [wayback-archive]
- machine learning technique
- trained with mapping from GBuffer + direct illumination to -> indirect illumination
What every systems programmer should know about lockless concurrency [wayback-archive]
- great overview of concurrency building blocks
- hardware level overview
- how to use C++11 to ensure correctness
Practical applications of the dot product [wayback-archive]
- Projecting a vector onto a vector
- Finding the orthogonal component of a vector to another vector
- Finding the shortest distance from a point to a segment
- With interactive demos
CppCon 2017: Rich Geldreich & Stephanie Hurlburt “The Future of Texture Compression”
- discussion of problem space
- overview of GPU formats
- ETCS1
- DXT1
- .basis will be an khronos standard
- encoder takes non-uniform texture arrays and compresses these
- mips / cubemaps / video frames / … all handled the same way
Showing the Correctness of Quaternion Rotation [wayback-archive]
- algebraic proof for quaternion rotation
Reversible Jump Metropolis Light Transport Using Inverse Mappings