GPUOpen


GPUOpen is a middleware software suite originally developed by AMD's Radeon Technologies Group that offers advanced visual effects for computer games. It was released in 2016. GPUOpen serves as an alternative to, and a direct competitor of Nvidia GameWorks. GPUOpen is similar to GameWorks in that it encompasses several different graphics technologies as its main components that were previously independent and separate from one another. However, GPUOpen is partially open source software, unlike GameWorks which is proprietary and closed.

History

GPUOpen was announced on December 15, 2015, and released on January 26, 2016.

Rationale

Nicolas Thibieroz, AMD's Senior Manager of Worldwide Gaming Engineering, argues that "it can be difficult for developers to leverage their R&D investment on both consoles and PC because of the disparity between the two platforms" and that "proprietary libraries or tools chains with 'black box' APIs prevent developers from accessing the code for maintenance, porting or optimizations purposes". He says that upcoming architectures, such as AMD's RX 400 series "include many features not exposed today in PC graphics APIs".
AMD designed GPUOpen to be a competing open-source middleware stack released under the MIT License. The libraries are intended to increase software portability between video game consoles, PCs and also high-performance computing.

Components

GPUOpen unifies many of AMD's previously separate tools and solutions into one package, also fully open-sourcing them under the MIT License. GPUOpen also makes it easy for developers to get low-level GPU access.
Additionally AMD wants to grant interested developers the kind of low-level "direct access" to their GCN-based GPUs, that surpasses the possibilities of Direct3D 12 or Vulkan. AMD mentioned e.g. a low-level access to the Asynchronous Compute Engines. The ACE implement "Asynchronous Compute", but they cannot be freely configured under either Vulkan or Direct3D 12.
GPUOpen is made up of several main components, tools, and SDKs.

Games and CGI

Software for computer-generated imagery used in development of computer games and movies alike.

Visual effects libraries

NameAPISourceDescription
TressFXDirectX 12, VulkanThis visual effects library allows the creation of realistic hair, fur, and grass.
GeometryFXDirectX 11This library allows easy access to compute-based triangle filtering.
DepthOfFieldFXDirectX 11This library grants access to a depth of field implementation optimized for the GCN GPU architecture via a compute shader.
ShadowFXDirectX 11, DirectX 12This library grants access to an implementation for deferred shadow filtering that is optimized for the GCN GPU architecture.
FidelityFXDirectX 11, DirectX 12, VulkanFidelityFX is a suite of visual effects and effects-helper libraries.

FidelityFX

NameAlgorithmSourceDescription
FidelityFX CASContrast Adaptive SharpeningThis algorithm adaptively sharpens an image or scene while minimizing artifacts.
FidelityFX CACAOCombined Adaptive Compute Ambient OcclusionThis algorithm is an optimized implementation of adaptive sampling ambient occlusion.
FidelityFX LPMLuminance Preserving MapperThis algorithm is used to tone map the luma of an RGB pixel rather than tone mapping the color of the pixel.
FidelityFX SPDSingle Pass DownsamplerThis algorithm, optimized for the RDNA GPU architecture, is used to generate 12 MIP levels for a given texture.
FidelityFX SSSRStochastic Screen Space ReflectionsThis algorithm is used to add screen space reflections to a frame or scene.
FidelityFX VSVariable ShadingThis algorithm is used to generate image-based variable rate shading using the luminance of samples in the prior frame.
FidelityFX Parallel SortRadix SortThis algorithm provides a compute-based radix sort.
FidelityFX DenoiserShadow & Reflection DenoiserThis algorithm provides denoising functionality for ray-traced shadows and ray-traced or screen-space reflections.
FidelityFX Super Resolution 1Spatial UpsamplerThis algorithm is used to upsample an image or frame into a higher resolution using only the spatial information provided in the input frame.
FidelityFX Super Resolution 2Temporal UpscalerThis algorithm is used to upscale frame into a higher resolution using the temporal information provided by input frames.

FidelityFX Super Resolution

FidelityFX Super Resolution is used to upsample an input image into a higher resolution. There are multiple versions of FSR with distinctive upscaling technique and image quality:
The standard presets for FSR by AMD can be found in the table below. Note that these presets are not the only way in which the algorithm can be used, they are simply presets for input/output resolutions. Certain titles, such as Dota 2, offer resolution sliders to fine tune the scaling percentage or dynamically scaling the internal render resolution depending on the FPS cap. AMD has also created a command-line interface tool which allows the user to upscale any image using FSR1/EASU as in addition to other upsampling methods such as bilinear interpolation. It also allows the user to run various stages of the FSR pipeline, such as RCAS, independently.
ReleaseRelease dateHighlights
1.0 / 1.0.1Jun 2021FidelityFX Super Resolution launch, source code available July 2021.
1.0.2Nov 2021Robust Contrast-Adaptive Sharpening oversharpening hotfix.
1.1Jul 2023Available as part of FidelityFX SDK.
2.0.1 / 2.0.1aMar 2022FidelityFX Super Resolution 2.0 launch, source code available June 2022.
2.1.0Sep 2022Reduced ghosting and improved upscaling quality. Farming Simulator 2022 was one of early adopters with patch 1.7.1.
2.1.1Sep 2022
2.1.2Oct 2022
2.2.0 / 2.2.0aNov 2022HDR range improvements, ghosting and flickering artefacts reduction. Source code available February 2023.
2.2.1Jun 2023
2.2.2Jul 2023Available as part of FidelityFX SDK.
3.0 / 3.0.3Sep 2023FSR 3 adds frame generation combined with FSR 2 and Anti-Lag+ and supports GPUs from AMD, Nvidia, and Intel. FSR 3 is also compatible with the ninth generation of video game consoles.
Source code available December 2023 as part of FidelityFX SDK.
3.0.4Mar 2024
3.1.0Jun 2024Reduced ghosting, flickering and shimmering and improved temporal stability. Decoupled frame generation from upscaling. Made source file easily upgradable for developers. Vulkan and Xbox Game Development Kit support. Source code available July 2024 as part of FidelityFX SDK 1.1.

Quality presetScale factorRender scale
Native AA 1.00×100%
Ultra Quality 1.30×77.0%
Quality1.50×66.6%
Balanced1.70×58.8%
Performance2.00×50.0%
Ultra Performance 3.00×33.3%

FSR 2 can also be modded into nearly any game supporting DLSS by swapping the DLSS DLL with a translation layer DLL that maps the DLSS API calls to FSR 2 API calls.

Frame Generation

FSR 3 adds frame generation, a technique that creates new frames in between existing ones by using motion interpolation. Launching in September 2023, FSR 3 uses a combination of FSR 2 and optical flow analysis, which runs using asynchronous compute. Because FSR 3 uses a software-based solution, it is compatible with GPUs from AMD, Nvidia, and Intel as well as the ninth generation of video game consoles. To combat additional latency inherent to the frame generation process, AMD has a driver-level feature called Anti-Lag, which only runs on AMD GPUs.
AMD Fluid Motion Frames is a driver-level frame generation technology launching in Q1 2024 which is compatible with all DirectX 11 and DirectX 12 games, however it runs on RDNA 2 and RDNA 3 GPUs. AFMF uses optical flow analysis but not motion vectors, so it can only interpolate a new frame between two traditionally rendered frames. AFMF currently is not compatible with VSYNC.

Tools

The official AMD directory lists:
NameSource codeAPIOSTask
CodeXLCodeXLDirect3D, OpenGL, OpenCL, VulkanLinux
Windows
software development tool suite that includes a GPU debugger, a GPU profiler, a CPU profiler, a static OpenCL kernel analyzer and various plugins.
static analyzer for AMD CodeXLamd-codexl-analyzerDirect3D, OpenGL, OpenCLLinux
Windows 64bit
Off-line compiler and performance analysis CLI-tool for processing: OpenCL kernels, HLSL shaders and GLSL shaders
part of the AMD CodeXL tools suite
Requires either Radeon Software Crimson Edition or AMD Catalyst to be installed to run this tool.
D3D 12 plug-in for GPU PerfStudioamd-gpuperfstudio-dx12Direct3D 12Windowsa plug-in to GPU PerfStudio GPU perfstudio
Tootleamd-tootleagnosticLinux
Windows
Triangle Order Optimization Tool; originally developed in 2006; can be easily integrated as part of a rendering or mesh pre-processing tool chain Cf. http://mgarland.org/files/papers/quadrics.pdf

Having been released by ATI Technologies under the BSD license in 2006 HLSL2GLSL is not part of GPUOpen. Whether similar tools for SPIR-V will be available remains to be seen, as is the official release of the Vulkan itself. Source-code that has been defined as being part of GPUOpen is also part of the Linux kernel, Mesa 3D and LLVM.