GDC 2024: We reveal incredible Work Graphs performance, AMD FSR 3.1, GI with Brixelizer, and so much more
We were very excited to return to the Game Developers Conference in 2024, but our sessions are finished now. Our fantastic presenters have packed their bags and headed home – so for those of you who couldn’t make it this year, it’s time to share what you missed out on live.
But first, special thanks must go to our guest speakers who did such an amazing job with us this year. Let’s hear it for Shawn Hargreaves (Microsoft® Direct3D®), Hampus Siversson (Massive Entertainment), Marco Bouterse (Nixxes Software), and Miguel Petersen (Striking Distance Studios) for contributing their knowledge and experiences to our sessions!
Advanced Graphics Summit
GPU Work Graphs: Welcome to the future of GPU programming
Matthäus Chajdas (AMD) and Shawn Hargreaves (Microsoft)
We were thrilled to once again be invited to present at the Advanced Graphics Summit on the Monday. This year our topic was Work Graphs, which was recently launched with a version 1.0 release as part of the Microsoft® Agility SDK 1.613.0.
Work Graphs are a new development methodology in GPU programming, the result of a multi-year collaboration between Microsoft and their industry partners. Work graphs allows the GPU to feed itself with jobs without having to go back and forth to the CPU. Keeping the scheduling of the work and the work creation local to the GPU allows many algorithms which previously required significant effort to program – like scene traversal, adaptive algorithms, and recursion – to be efficiently and easily implemented using Work Graphs. Some practical applications of Work Graphs include compute rasterization and procedural content creation.
Matthäus Chajdas (AMD) and Shawn Hargreaves (Microsoft® Direct3D®) introduced the concept of “mesh nodes”, which allow draw calls to become an integral part of the work graph and be processed while the rest of the graph is executing. A demo, developed in partnership with Coburg University, was shown, showcasing the generation and rendering of a complex scene using a single work graph dispatch. The demo showed preliminary significant performance uplift, with ExecuteIndirect being 1.64x1 slower on average than work graphs on average, using the mesh nodes extension.
This is a major breakthrough in graphics rendering, and you can learn more and watch the demo in our blog covering this work graphs presentation.
Other sessions
Microsoft State of the Union
On the topic of Microsoft releases, we were honored to be invited on stage with Microsoft on the Thursday, for their State of the Union session. Rob Martin represented AMD and talked about the now very popular Work Graphs, and our involvement in the upcoming Microsoft DirectSR.
Rendering Customization and Performance in Unity 6
AMD FSR 2.2 support will be included in the Unity High Definition Render Pipeline (HDRP) when Unity 6 is released in 2024.
AMD sponsored sessions and our other big announcements
Wednesday was AMD’s big day, as we spent the entire day in room 3001 sharing our six sponsored sessions with our wonderful audiences. It was great to see so many of you, thank you all for coming!
GDC is usually a time for announcements, so alongside our work graphs performance reveal earlier in the week, we had several announcements among our sponsored sessions too.
AMD FidelityFX Super Resolution 3.1 technology
We dropped a “one more thing” at the end of our High performance rendering in Snowdrop using AMD FidelityFX™ Super Resolution 3 session – the announcement that AMD FSR 3.1 will be available to developers here on GPUOpen in Q2!
Our fantastic engineering team has been working hard to bring you the following improvements and new features, which we know many of you were asking for:
Upscaling image quality improvements
We made internal changes to how we deal with high/low frequency signals, so better decisions could be made in the algorithm. This should allow for better preservation of detail, whilst also trying to reduce temporal instability at rest and ghosting.
Separating upscaling from frame generation
AMD FSR 3.0 required that FSR 3 upscaling to execute and generate information before FSR 3 frame generation. This did save GPU resources (allowing for higher FPS) but did restrict choices. With AMD FSR 3.1, the frame generation can run with any third party upscale component – with the small caveat that an additional step is required to precompute some data from the upscaler inputs.
Vulkan® and Xbox Game Development Kit (GDK) support
Exactly that!
AMD FidelityFX API
This will be launched alongside AMD FSR 3.1. It is designed to significantly lower our ABI surface, and encourage DLL use across the board. This allows better debugging capabilities, and also enable game developers to upgrade to new versions of FSR faster and with fewer code changes.
Bug fixes
No software release is complete without these!
First announced game to get AMD FSR 3.1
As revealed after the session on Wednesday, the first announced game to get AMD FSR 3.1 is Ratchet & Clank: Rift Apart from Insomniac Games, Nixxes Software, and Sony Interactive Entertainment. The game update with FSR 3.1 will be coming later this year, and will include decoupling frame generation from upscaling, so it can be used with the other upscaling solutions the game supports. It will also be getting the improvements to FSR temporal upscaling image quality.
Here you can see examples from Ratchet & Clank: Rift Apart that demonstrate those upscaling improvements in AMD FSR 3.1. They are taken from video captures of the game running at 1080p using AMD FSR 2.2/3.1 Performance mode.
TEMPORAL INSTABILITY
AMD FSR 2.2
AMD FSR 3.1
GHOSTING REDUCTION
AMD FSR 2.2
AMD FSR 3.1
As a reminder, when using FSR 3 Frame Generation with any upscaling quality mode or with “Native AA” mode, it is highly recommended that gamers are running at a minimum of ~60fps before frame generation is applied for an optimal experience, and to mitigate latency.
We also recommend that gamers using FSR 3 with VRR displays keep their framerate (with frame generation enabled) within their monitor’s refresh rate to prevent screen tearing. For those who use Windows® 11, we also recommend that Hardware Accelerated GPU Scheduling (HAGS) is enabled. HAGS is enabled in Windows 11 2022 Update on AMD Radeon™ RX 7900/7800/7700 Series Graphics Cards when using AMD Software: Adrenalin Edition™ 23.12.1 or higher.
AMD FidelityFX Brixelizer and Brixelizer GI
We also revealed more details on upcoming AMD FidelityFX Brixelizer, a real-time sparse distance field builder that works with static and dynamic geometry. It generates cascades of sparse distance fields around a given position, and splits those cascades into voxels.
Global Illumination (GI) can then be introduced via Brixelizer GI – a purely compute-based solution. It does not require hardware-accelerated ray-tracing, so it can be used as a fall-back for ray-traced dynamic GI on lower-end platforms, or serve as the basis for a more advanced GI solution.
The algorithm used is based upon AMD GI-1.0, and uses a two-level caching approach with screen space probes backed by a world space radiance and irradiance cache. It takes in the G-Buffer and direct lighting as input, and outputs Diffuse and Specular GI.
AMD FidelityFX Brixelizer and Brixelizer GI will be coming to the AMD FidelityFX SDK soon, and will be available for both DirectX® 12 and Vulkan®.
What else did our sponsored sessions cover?
Being there in person is the best thing, especially as you can ask questions of our engineers, but we know it’s not exactly easy to be able to do this for most of you. So this is why we’re really happy to be able to give you the next best thing – pre-recorded video versions of our sponsored sessions, along with their accompanying slide decks. Note that some of the decks contain relevant animations or demos when presented live, so the video version is always best.
Let’s go through them one by one! All our talks were the best, so the only fair way to list them is in the order they were scheduled.
Mesh shaders in AMD RDNA™ 3 architecture
Lou Kramer (Member of Technical Staff, AMD)
Max Oberberger (Senior Software Engineer, AMD)
Our engineers Lou Kramer and Max Oberberger are experts on mesh shaders, and you can learn a lot from their session.
It started by explained how mesh shaders offer a more flexible alternative to the traditional geometry pipeline, allowing for more control on how to use the hardware to process the geometry. They can process any type of primitive, including quads, and can procedurally generate geometry in an efficient way – as discussed in our procedural grass rendering blog (jointly written with Coburg University) released just after the session.
The presentation highlighted the importance of meshlet generation, and vertex and primitive export for good performance, and covered how mesh shaders can lead to more opportunities for compression.
There was discussion on the future of the geometry pipeline, particularly with mesh shaders coming to GPU work graphs (the Advanced Graphics Summit session above!) and ended with a note on performance considerations.
High performance rendering in Snowdrop using AMD FidelityFX™ Super Resolution 3 (FSR 3)
Colin Riley (Senior Manager Software Development, AMD)
Hampus Siversson (Massive Entertainment)
Special guest Hampus Siversson (Massive Entertainment) joined the stage with Colin Riley, who has been heavily involved in AMD FSR technology from the beginning.
Colin explained how FSR 3 added frame generation to the graphics pipeline using frame interpolation, which provides more confidence in data sampling for generating frames. He then went into detail about how a custom swapchain implementation was required due to the complexity of frame pacing.
There was also discussion over the challenges involved in handling motion vectors, reactiveness, and UI compositing when integrating FSR 3.
Hampus then shared how the integration of FSR into their Snowdrop Engine aimed to improve their anti-aliasing solution and performance across all major platforms. Their render pipeline was adjusted to accommodate FSR, with the FSR upscaling and frame interpolation processes inserted before the post-effects and present stages.
Colin then closed the session with the AMD FSR 3.1 reveal!
AMD Ryzen™ processor software optimization
Ken Mitchell (Fellow, AMD)
Ken Mitchell (AMD) has become a regular fixture for a good reason in recent years at GDC, with his updated deep dives into the microarchitecture of current AMD Ryzen™ processors.
His presentation this year started with an overview of current-generation AMD Ryzen processors before going into detail on data flow and microarchitecture.
He then covered best practices, including using the latest compiler and Windows SDK. Optimizations followed, including guidance on user spin locks, modern synchronization APIs, and prefetch instructions for linked data.
As with all our sessions, Ken finished with a valuable Q&A!
Global Illumination with AMD FidelityFX™ Brixelizer, plus AMD FidelityFX SDK updates
Dihara Wijetunga (Senior Software Engineer, AMD)
Dihara Wijetunga made his debut presenter appearance at GDC by going into plenty of detail about AMD FidelityFX Brixelizer and Brixelizer GI, our upcoming new additions to the AMD FidelityFX SDK, as detailed above.
Dihara also provided a brief update on the AMD FidelityFX SDK, which will include updates to samples, and a new GDK backend.
There is also a new vendor-agnostic Breadcrumbs library, designed to help developers debug GPU crashes by leaving a trail of breadcrumbs around GPU work. When a device is lost, it dumps a tree of breadcrumbs which helps you to determine the workload that was executed during the crash. It allows you to choose the granularity of writes, for example per-pass or per-draw, which can be plugged into existing profile markers in the engine. Breadcrumbs lets you choose the level of granularity that fits your needs – it can be as coarse or granular as you want.
Game optimization with the Radeon™ Developer Tool Suite, and shader instrumentation with GPU Reshape
Amit Mulay (Senior Software Development Engineer, AMD)
Chris Hesik (Principal Member of Technical Staff, AMD)
Miguel Petersen (Senior Rendering Engineer, Striking Distance Studios)
This was a two part session, beginning with AMD Radeon Developer Tool Suite (RDTS) engineers Amit Mulay and Chris Hesik who provided an overview of the tools and new features in RDTS.
This included previewing some upcoming features in the suite, like a redesigned Radeon Developer Panel, Radeon GPU Profiler (RGP)/Radeon GPU Analyzer (RGA) interop, RGA DirectX® 12 single shader compilation, and new “Ray Inspector” features in Radeon Raytracing Analyzer (RRA).
Joining them on stage was another of our special guests – Miguel Petersen (Striking Distance Studios (Spain)) to present his new API-agnostic instrumentation and instruction-level validation tool, GPU Reshape.
He developed it in collaboration with AMD and Avalanche Studios Group, initially as a proof-of-concept Vulkan layer at Avalanche, after which development was continued externally, and it is available here on GPUOpen. Miguel introduced the tool, and previewed upcoming features such as in-shader debugging and profiling.
Post-mortem GPU crash analysis with AMD Radeon™ GPU Detective (RGD)
Adam Sawicki (Principal Member of Technical Staff, AMD)
Amit Mulay (Senior Software Development Engineer, AMD)
Marco Bouterse (Principal Graphics Programmer, Nixxes Software)
Our final session of the day had Amit Mulay return to the stage alongside AMD engineer Adam Sawicki. RGD is a tool for post-mortem analysis of GPU crashes, and was released last year to very popular acclaim.
The session began with the causes and consequences of GPU crashes, and the challenges involved in debugging them – and showing how RGD can help and what it does! Developers can capture AMD GPU crash dump files and receive a concise crash analysis report, which includes an execution marker tree, markers in progress, a page fault summary, and system info.
To illustrate just how valuable it can be, they were joined on stage by our final special guest – Marco Bouterse (Nixxes Software) – who demonstrated how RGD was used to debug GPU crashes caused by dubious descriptors and problematic particles.
He shared how he found RGD easy to use, and that it provided additional info on page faults, and had minimal overhead which made it suitable for normal development work.
Want to learn more about our GDC topics?
Procedural grass rendering – Mesh shaders on AMD RDNA™ graphics cards
The fourth post in our mesh shaders series takes a look at the specific example of rendering detailed vegetation.
GDC 2024: Work graphs and draw calls – a match made in heaven!
Introducing “mesh nodes”, which make draw calls an integral part of the work graph, providing a higher perf alternative to ExecuteIndirect dispatches.
GPU Reshape
GPU Reshape is a powerful tool that leverages on-the-fly instrumentation of GPU operations with instruction level validation of potentially undefined behavior.
AMD FidelityFX™ Super Resolution 3 (FSR 3)
Discover frame generation with AMD FidelityFX™ Super Resolution 3, and get the source code and documentation!
Radeon™ GPU Detective
Radeon™ GPU Detective (RGD) is a tool for post-mortem analysis of GPU crashes. RGD can capture AMD GPU crash dumps from DirectX® 12 apps.
AMD FidelityFX™ SDK
The AMD FidelityFX SDK is our easy-to-integrate solution for developers looking to include FidelityFX features into their games.
Getting Started – GPU Work Graphs
Find out what you need to get started with Work Graphs for DirectX 12, including the software required, configuration, compiling, and more.
AMD Ryzen CPU Performance Guide
Design faster. Render faster. Iterate faster. Our one-stop resource for getting great AMD Ryzen performance.
Tools
Analyze, Optimize, Profile, Benchmark. We provide you with the developer tools you need to make sure your game is the best it can be!
Find out about previous years at GDC on our Events page
Lots more content to explore here on GPUOpen!
Disclaimer
- Testing by AMD as of March 15, 2024, on the AMD Radeon RX 7900 XTX using AMD Software: Adrenalin Edition 31.0.24014.1002 pre-release driver, using the ExecuteIndirect command and Work Graphs with the mesh nodes extension to dispatch scene information to Microsoft® DirectX® 12, on a test system configured with an AMD Ryzen™ 7 5800X CPU, 32GB DDR4 RAM, Gigabyte X570 AORUS ELITE WIFI motherboard, and Windows 11 Pro 2023 Update, using the AMD procedural content Work Graphs demo with the overview, meadow, bridge, wall, and market scene views. System manufacturers may vary configurations, yielding different results. RS-640.
Ratchet & Clank: Rift Apart © 2023 Sony Interactive Entertainment LLC. Developed and created by Insomniac Games, Inc. PC version by Nixxes Software BV. Ratchet & Clank and Ratchet & Clank Rift Apart are registered trademarks or trademarks of Sony Interactive Entertainment LLC. Insomniac Games is a trademark of Insomniac Games, Inc.
Latest news from GPUOpen
Microsoft® DirectSR and AMD FidelityFX™ Super Resolution technology
With the introduction of Microsoft’s DirectSR, the need to integrate many super resolution APIs has been reduced. Instead, developers may integrate just one API – Microsoft DirectSR.
Vulkan Memory Allocator v3.1, with many fixes and improvements, is out now!
VMA V3.1 gathers fixes and improvements, mostly GitHub issues/PRs, including improved compatibility with various compilers and GPUs.
AMD GPU architecture programming documentation
A repository of AMD Instruction Set Architecture (ISA) and Micro Engine Scheduler (MES) firmware documentation
Pre-condition block compressed textures with Brotli-G
Brotli-G (v1.1 onwards) now supports pre-conditioning of block compressed textures. Take a look for a quick summary!