With a seasonal frame of mind, in one fluid motion we’ve generated the AMD FSR 3 GitHub source code repo for gamedevs everywhere!

We are very excited to share with you the latest version of AMD FidelityFX™ Super Resolution 3 (FSR 3) technology on GPUOpen, complete with full source code for DirectX® 12 and Unreal Engine 5.

FSR 3 integration diagram

After our preview releases in “Forspoken” and “Immortals of Aveum”, we were very happy to see how gamers received the technology. Our engineers were primarily concerned with quality, with VSync enabled, to deliver a measurable increase in smooth gameplay on high refresh rate monitors.

We are pleased to confirm that this latest version of AMD FSR 3 includes quality improvements and extends support for Variable Refresh Rate (VRR) monitors within the frame pacing logic.

Variable Refresh Rate monitors

AMD FreeSync™ technology and Adaptive Sync are forms of Variable Refresh Rate (VRR) technology, whereby your computer monitor allows for judder-free and tear-free visuals to be presented with minimal latency and the highest performance. It relies on the game providing the presentation surfaces to the graphics driver in a specific manner, so that the monitor does not show an image with tear lines.

FSR 3 attempts to pace frames with as small a frame-to-frame variability as possible, whilst accounting for any additional UI rendering work that needs to be undertaken by the game in callbacks. This allows for good VRR behavior, as below.

An example of where poor pacing can cause issues is below. If the delta between presents is too small, the monitor can believe we are outside the VRR range. When VSync is enabled, this will result in dropped frames. When VSync is disabled, this will result in screen tearing – even though the game FPS can show a value well within the VRR range.

One thing to note is that utility overlays provided by third parties will incur a cost which the FSR 3 frame pacing algorithm may be unable to measure and consider. Overlays should always be implemented efficiently, with minimal GPU resource cost to minimize impact. We also recommend that Hardware Accelerated GPU Scheduling be turned on if supported for best frame pacing results.

FSR 3 provides debugging options for developers to inspect frame pacing without additional third-party overlays to diagnose possible integration issues.

Developer integration facilities

Debug tear lines

AMD FSR 3 can be configured to output two bars to generated frames to aid integration debugging. There is a solid green bar on the left, and on the right a bar which cycles colors each frame. These bars can be used to verify that generated frames are:

  1. Presented correctly to the monitor.
  2. Displayed on the monitor without screen tearing.

It is very easy to see tear lines on the right-hand side bars, as multiple colors or a partial bar will appear to be rendered. If tearing is occurring when it shouldn’t, the integration needs to be investigated for items such as erroneous high-priority threads which disrupt FSR 3’s own high-priority timing threads, or for UI callback rendering taking too much time, throwing off pacing.

In this mode, in addition to the tear lines, there are two squares which may appear in the top left corner of the output. A red square indicates the Optical Flow algorithm has detected a scene change event, and history will be discarded. A blue square indicates that the game has requested a reset be applied this frame – also discarding history.

FSR3 tear lines view. Breaks in the vertical bars on each side shows presentation tear lines.

Debug view

When the debug view is requested by enabling the respected flag, the FrameInterpolationSwapChain will only present interpolated frames and execute an additional pass to visualize internal surfaces onto the output for debugging purposes.

FSR3 debug view example.

The following surfaces will be presented:

  • On the top row the leftmost image shows the GameMotionVectorFieldVectors.
  • On the top row the middle image shows GameMotionVectorFieldDepthPriority.
  • On the top row the right image shows the OpticalFlowMotionVectorField.
  • The middle row consists of only the generated frame output.
  • On the bottom row the left image shows the disocclusion mask.
  • On the bottom row the middle image shows the interpolation source image (without User Interface)
  • On the bottom row the right image shows the latest real backbuffer (only if HUDless mode is used)

This can be used to examine internal state, and developers should ensure sensible results are seen. For example, moving around should change the GameMotionVectorFieldVectors viewport. If there are items in the scene which do not have game-provided motion vectors, but move, you should expect to see some data in the OpticalFlowMotionVectorField in those areas of the scene. Additionally, the disocclusion mask can be used to ensure items like depth format and configuration is correct.

If developers have any more ideas for views which would assist the process of integrating AMD FSR 3, please let your AMD Game Engineering representative know.

Non-async compute path

Whilst we always recommend using asynchronous compute with FSR 3 to enable higher performance, it can be harder to integrate into engines in one step. To assist with this, we have also enabled the ability to run Optical Flow and Frame Interpolation workloads on the main graphics queue used for present.

Doing this requires slightly less memory, however, it means you cannot overlap the workloads and as such can be slower overall. Using the present queue allow for a quicker integration and this is the option we recommend first to validate any possible integration quality concerns. Once the FSR 3 Present Queue integration is working correctly then move to async compute mode via the relevant context creation flags.

Open source, permissive, multi-vendor Frame Generation for everyone

AMD FidelityFX Super Resolution 3 technology is released in source form with the MIT license, to allow for maximum adoption. We recommend developers integrate FSR 3 into their games using the AMD FidelityFX SDK DLL build as this method will allow easier debugging should you need support from AMD, and is also more future-proof in terms of API compatibility with any future update.

FSR 3 is the result of many years of research and development to enable this technology in an open and multi-platform fashion and we’re delighted to finally be able to share it with you on GPUOpen.

The AMD FSR 3 source code is linked from our new FSR 3 page.

We also provide guidelines for how to describe AMD FSR 3 and its configuration options in the UI of your game, along with localization strings:

If you are integrating AMD FSR 3 into your game and require assistance, please reach out to your AMD Game Engineering representative.

AMD FSR 3 will be coming in more games titles!

Recently, Avatar: Frontiers of Pandora joined Immortals of Aveum and Forspoken as games where you can experience AMD FSR 3. Today we’re excited to update our list of future titles which have announced they will be integrating AMD FSR 3.

FSR 3 future game support

We’d love for you to join our rapidly growing list of developers – head over to our brand new FSR 3 page to find out more about our AMD FidelityFX Super Resolution 3 technology, and download it today.

We’re also releasing our Unreal Engine 5 plugin too – don’t miss our brand new FSR 3 UE plugin page with all the details on how to use it. As a bonus for Unreal Engine developers, we’ve also just updated our Unreal Engine Performance Guide with tips on FSR 3.

We can’t wait to see what you can do with AMD FSR 3!

Disclaimers

Some combinations of high-refresh rate monitors and graphics cards may not support VRR behavior at the top range of the monitor’s refresh rate. You may therefore have to set your monitor’s max refresh rate to a value where VRR is supported.

FORSPOKEN © 2023 SQUARE ENIX CO., LTD. All Rights Reserved.

Immortals of Aveum © 2023 Electronic Arts Inc.

DirectX is either a registered trademark or trademark of Microsoft Corporation in the US and/or other countries.

Unreal® is a trademark or registered trademark of Epic Games, Inc. in the United States of America and elsewhere.

Avatar: Frontiers of Pandora™ © 2023 20th Century Studios. Game Software excluding 20th Century Studios elements: © 2023 Ubisoft Entertainment. All Rights Reserved. Avatar: Frontiers of Pandora™ and the 20th Century Studios logo are trademarks of 20th Century Studios. Licensed to Ubisoft Entertainment by 20th Century Studios. Ubisoft and the Ubisoft logo are registered or unregistered trademarks of Ubisoft Entertainment in the U.S. and/or other countries.

11 BIT STUDIOS®, FROSTPUNK 2® are registered trademarks of 11 BIT STUDIOS S.A. © 11 BIT STUDIOS S.A. All other marks and trademarks are the property of their respective owners. All rights reserved.

The Alters © 2022 11 BIT STUDIOS S.A. All rights reserved.

Ascendant Studios logo © 2022 Ascendant Studios, LLC.

Black Myth: Wukong copyright © Game Science Interactive Technology Co., Ltd. All Rights Reserved

CD PROJEKT®, CD PROJEKT RED®, the CD PROJEKT RED® logo, Cyberpunk®, Cyberpunk 2077®, and the Cyberpunk 2077® logo are registered trademarks of CD PROJEKT S.A. © 2020 CD PROJEKT S.A. All rights reserved.

Crimson Desert copyright © Pearl Abyss Corp. All Rights Reserved.

Enduring Games © copyright 2023 Enduring Games® Inc.

EVE Online® and the EVE Online logo are the registered trademarks of CCP ehf. All rights are reserved worldwide. All other trademarks are the property of their respective owners. EVE Online, the EVE Online logo, EVE, and all associated logos and designs are the intellectual property of CCP ehf. CCP Games and the CCP logo are the registered trademarks of CCP ehf.

FARMING SIMULATOR 22 © 2021 GIANTS Software. Farming Simulator, GIANTS Software and its logos are trademarks or registered trademarks of GIANTS Software. All rights reserved. All other names, trademarks and logos are property of their respective owners.

Like a Dragon Gaiden: The Man Who Erased His Name and Like a Dragon: Infinite Wealth © SEGA. All rights reserved. SEGA is registered in the U.S. Patent and Trademark Office. SEGA, the SEGA logo, Yakuza and LIKE A DRAGON are registered trademarks or trademarks of SEGA CORPORATION or its affiliates. All other trademarks, logos and copyrights are property of their respective owners.

Massive Entertainment – a Ubisoft studio. © 2023 Ubisoft Entertainment. All Rights Reserved. Ubisoft, Massive and their logos are trademarks of Ubisoft.

Pax Dei © 2023 Mainframe Industries, all rights reserved. Pax Dei is protected through EU and international trademark registrations of Mainframe Industries. Other trademarks belong to their respective owners.

Reflector logo © 2023 Reflector Entertainment Ltd. All rights reserved. © Bandai Namco Entertainment America Inc.

Squad © 2023 Offworld Industries Ltd. Offworld Industries® and the Offworld logo are both registered Canadian trademarks.

SQUARE ENIX and the SQUARE ENIX logo are registered trademarks or trademarks of Square Enix Holdings Co., Ltd.

Starfield © 2023 ZeniMax Media Inc. Starfield, Bethesda, Bethesda Game Studios, Bethesda Softworks, ZeniMax and related logos are registered trademarks or trademarks of ZeniMax Media Inc. in the U.S. and/or other countries. All Rights Reserved.

Starship Troopers™ & © 2023 TriStar Pictures, Inc. All Rights Reserved. Published by Offworld Industries Ltd. Game software excluding TriStar Pictures, Inc. elements: © 2023 Offworld Industries Ltd. All Rights Reserved.

Warhammer 40,000: Darktide © Copyright Games Workshop Limited 2022. Darktide, the Darktide logo, GW, Games Workshop, Space Marine, 40K, Warhammer, Warhammer 40,000, 40,000, the ‘Aquila’ Double-headed Eagle logo, and all associated logos, illustrations, images, names, creatures, races, vehicles, locations, weapons, characters, and the distinctive likeness thereof, are either ® or TM, and/or © Games Workshop Limited, variably registered around the world, and used under licence. All rights reserved to their respective owners.

Warhammer 40,000: Space Marine 2 © Games Workshop Limited 2022. Space Marine, the Space Marine logo, GW, Games Workshop, Space Marine, 40K, Warhammer, Warhammer 40,000, 40,000, the ‘Aquila’ Double-headed Eagle logo, and all associated logos, illustrations, images, names, creatures, races, vehicles, locations, weapons, characters, and the distinctive likeness thereof, are either ® or TM, and/or © Games Workshop Limited, variably registered around the world, and used under license. Focus Entertainment, Focus Home Interactive and their logos are trademarks or registered trademarks of Focus Home Interactive. Saber Interactive and its logos are trademarks or registered trademarks of Saber Interactive. All rights reserved to their respective owners.

Warhammer Age of Sigmar: Realms of Ruin © Copyright Games Workshop Limited 2023. Warhammer Age of Sigmar, the Warhammer Age of Sigmar logo, Realms of Ruin logo, GW, Games Workshop, Warhammer, Warhammer Age of Sigmar, Stormcast Eternals, and all associated logos, illustrations, images, names, creatures, races, vehicles, locations, weapons, characters, and the distinctive likeness thereof, are either ® or TM, and/or © Games Workshop Limited, variably registered around the world, and used under licence. Sourcecode and technology © Frontier Developments plc 2023. ‘Frontier’ and the Frontier Developments logo are trademarks of Frontier Developments, plc. All rights reserved.

Other product names used herein are for identification purposes and may be trademarks of their respective owners.

Enjoy this news post? If you found it useful, why not share it with other game developers?

Latest news

HIP Ray Tracing

Introducing HIP RT v2.2

With the release of v2.2, HIP RT now support multi-level instancing. Multi-level instancing can help to reduce memory requirements, allowing you to render large scenes with limited memory.

Looking for a good place to get started with exploring GPUOpen?

Getting started: AMD GPUOpen software

New or fairly new to AMD’s tools, libraries, and effects? This is the best place to get started on GPUOpen!

AMD GPUOpen Getting Started Development and Performance

Looking for tips on getting started with developing and/or optimizing your game, whether on AMD hardware or generally? We’ve got you covered!

You may also like...

AMD GPUOpen documentation

Explore our huge collection of detailed tutorials, sample code, presentations, and documentation to find answers to your graphics development questions.

AMD GPUOpen Effects - AMD FidelityFX technologies

Create wonder. No black boxes. Meet the AMD FidelityFX SDK!

AMD GPUOpen Performance Guides

The home of great performance and optimization advice for AMD RDNA™ 2 GPUs, AMD Ryzen™ CPUs, and so much more.

AMD GPUOpen Samples

Browse all our useful samples. Perfect for when you’re needing to get started, want to integrate one of our libraries, and much more.

AMD GPUOpen developer SDKs

Discover what our SDK technologies can offer you. Query hardware or software, manage memory, create rendering applications or machine learning, and much more!

AMD GPUOpen Developer 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!