This article needs to be updated.(January 2022) |
Original author(s) | Advanced Micro Devices |
---|---|
Developer(s) | Advanced Micro Devices |
Initial release | January 26, 2016 [1] |
Repository | |
Written in | C, C++, GLSL |
Operating system | Linux, Microsoft Windows |
Type | Game effects libraries, GPU debugging, CPU & GPU profiling |
License | MIT License |
Website | 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. [2] However, GPUOpen is partially open source software, unlike GameWorks which is proprietary and closed.
GPUOpen was announced on December 15, 2015, [3] [4] [2] [5] [6] and released on January 26, 2016.
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". [7] 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. [8]
GPUOpen unifies many of AMD's previously separate tools and solutions into one package, also fully open-sourcing them under the MIT License. [4] GPUOpen also makes it easy for developers to get low-level GPU access. [9]
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 (ACEs). 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. [2]
Software for computer-generated imagery (CGI) used in development of computer games and movies alike.
Name | API | Source | Description |
---|---|---|---|
TressFX | DirectX 12, Vulkan | GitHub | This visual effects library allows the creation of realistic hair, fur, and grass. |
GeometryFX | DirectX 11 | GitHub | This library allows easy access to compute-based triangle filtering. |
DepthOfFieldFX | DirectX 11 | GitHub | This library grants access to a depth of field implementation optimized for the GCN GPU architecture via a compute shader. |
ShadowFX | DirectX 11, DirectX 12 | GitHub | This library grants access to an implementation for deferred shadow filtering that is optimized for the GCN GPU architecture. |
FidelityFX | DirectX 11, DirectX 12, Vulkan | GitHub | FidelityFX is a suite of visual effects and effects-helper libraries. |
Name | Algorithm | Source | Description |
---|---|---|---|
FidelityFX CAS | Contrast Adaptive Sharpening | GitHub | This algorithm adaptively sharpens an image or scene while minimizing artifacts. |
FidelityFX CACAO | Combined Adaptive Compute Ambient Occlusion | GitHub | This algorithm is an optimized implementation of adaptive sampling ambient occlusion. |
FidelityFX LPM | Luminance Preserving Mapper | GitHub | This algorithm is used to tone map the luma of an RGB pixel rather than tone mapping the color of the pixel. |
FidelityFX SPD | Single Pass Downsampler | GitHub | This algorithm, optimized for the RDNA GPU architecture, is used to generate 12 MIP levels for a given texture. |
FidelityFX SSSR | Stochastic Screen Space Reflections | GitHub | This algorithm is used to add screen space reflections to a frame or scene. |
FidelityFX VS | Variable Shading | GitHub | This algorithm is used to generate image-based variable rate shading using the luminance of samples in the prior frame. |
FidelityFX Parallel Sort | Radix Sort | GitHub | This algorithm provides a compute-based radix sort. |
FidelityFX Denoiser | Shadow & Reflection Denoiser | GitHub | This algorithm provides denoising functionality for ray-traced shadows and ray-traced or screen-space reflections. |
FidelityFX Super Resolution 1 | Spatial Upsampler | GitHub | This 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 2 | Temporal Upscaler | GitHub | This algorithm is used to upscale frame(s) into a higher resolution using the temporal information provided by input frames. |
FidelityFX Super Resolution (FSR) 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 have offered 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. [15]
Release [a] | Release date | Highlights |
---|---|---|
1.0 / 1.0.1 | Jun 2021 | FidelityFX Super Resolution (FSR) launch, source code available July 2021. [16] [17] |
1.0.2 | Nov 2021 | Robust Contrast-Adaptive Sharpening (RCAS) oversharpening hotfix. [18] |
1.1 | Jul 2023 | Available as part of FidelityFX SDK. [19] |
2.0.1 / 2.0.1a | Mar 2022 | FidelityFX Super Resolution 2.0 (FSR 2) launch, source code available June 2022. [20] [21] |
2.1.0 | Sep 2022 | Reduced ghosting and improved upscaling quality. Farming Simulator 2022 was one of early adopters with patch 1.7.1. [22] |
2.1.1 | Sep 2022 | [23] |
2.1.2 | Oct 2022 | [24] |
2.2.0 / 2.2.0a | Nov 2022 | HDR range improvements, ghosting and flickering artefacts reduction. Source code available February 2023. [25] |
2.2.1 | Jun 2023 | [26] |
2.2.2 | Jul 2023 | Available as part of FidelityFX SDK. [19] [27] |
3.0 / 3.0.3 | Sep 2023 | FSR 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. [13] Source code available December 2023 as part of FidelityFX SDK. [28] |
3.0.4 | Mar 2024 | [29] |
Quality Preset [b] | Scale Factor [c] | Render Scale [d] |
---|---|---|
Native AA(since v3.0) | 1.00x | 100% |
Ultra Quality(v1.0 only) | 1.30x | 77.0% |
Quality | 1.50x | 66.6% |
Balanced | 1.70x | 58.8% |
Performance | 2.00x | 50.0% |
Ultra Performance(since v2.0) | 3.00x | 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. [33]
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 (as opposed to Nvidia's DLSS 3 which uses dedicated hardware). 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. [13]
AMD Fluid Motion Frames (AFMF) 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. [13]
The official AMD directory lists: [34]
Name | source-code | API | OS | Task |
---|---|---|---|---|
CodeXL | CodeXL | Direct3D, OpenGL, OpenCL, Vulkan | Linux Windows | software development tool suite that includes a GPU debugger, a GPU profiler, a CPU profiler, a static OpenCL kernel analyzer and various plugins. [35] |
static analyzer for AMD CodeXL | amd-codexl-analyzer | Direct3D, OpenGL, OpenCL | Linux 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. [36] |
D3D 12 plug-in for GPU PerfStudio | amd-gpuperfstudio-dx12 | Direct3D 12 | Windows | a plug-in to GPU PerfStudio GPU perfstudio [37] |
Tootle | amd-tootle | agnostic | Linux Windows | Triangle Order Optimization Tool; originally developed in 2006; can be easily integrated as part of a rendering or mesh pre-processing tool chain [38] 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 (API) itself. Source-code that has been defined as being part of GPUOpen is also part of the Linux kernel (e.g. amdgpu and amdkfd [39] ), Mesa 3D and LLVM.
Name | Source | API | OS | Task |
---|---|---|---|---|
Advanced Media Framework (AMF) SDK | GitHub | DirectX 12 | Linux, Windows 64-bit | Light-weight, portable multimedia framework that abstracts away most of the platform and API-specific details. |
AMD GPU Services (AGS) SDK | GitHub | DirectX | Windows 64-bit | |
LiquidVR SDK | GitHub | Direct3D 11 | Windows | improves the smoothness of virtual reality. [40] The aim is to reduce latency between hardware so that the hardware can keep up with the user's head movement, eliminating the motion sickness. A particular focus is on dual GPU setups where each GPU will now render for one eye individually of the display |
Radeon Machine Learning (RML) SDK | GitHub | DirectX 12, Metal, OpenCL | Linux, OS X, Windows | |
Radeon ProRender SDK (formerly FireRender) | GitHub | OpenCL | Linux, macOS, Windows | physically-based rendering engine |
RadeonRays SDK (formerly FireRays) | GitHub | DirectX 12, Vulkan | Linux 64-bit, OS X, Windows 64-bit | A high efficiency, high performance heterogeneous ray tracing intersection library for GPU and CPU or APU on any platform. |
RapidFire SDK | GitHub | DirectX, OpenGL | Windows | facilitates the use of AMD's video compression acceleration SIP blocks VCE (H.264 encoder) and UVD (H.264 decoder) for "Cloud gaming"/off-site rendering |
True Audio Next (TAN) SDK | GitHub | OpenCL | Windows 64-bit | SDK for Radeon GPU accelerated and multi-core high-performance audio signal processing. |
This section needs to be updated.(January 2022) |
As of 2022, AMD compute software ecosystem is regrouped under the ROCm metaproject.
Software around Heterogeneous System Architecture (HSA), General-Purpose computing on Graphics Processing Units (GPGPU) and High-Performance Computing (HPC)
AMD's "Boltzmann Initiative" (named after Ludwig Boltzmann) was announced in November 2015 at the SuperComputing15 [41] [42] [43] [44] [45] and productized as the Radeon Open Compute platform (ROCm). It aims to provide an alternative to Nvidia's CUDA which includes a tool to port CUDA source-code to portable (HIP) source-code which can be compiled on both HCC and NVCC.
GPUOpen are available under the MIT license to the general public through GitHub starting on January 26, 2016. [4]
There is interlocking between GPUOpen and well established and widespread free software projects, e.g. Linux kernel, Mesa 3D and LLVM.
A graphics processing unit (GPU) is a specialized electronic circuit initially designed for digital image processing and to accelerate computer graphics, being present either as a discrete video card or embedded on motherboards, mobile phones, personal computers, workstations, and game consoles. After their initial design, GPUs were found to be useful for non-graphic calculations involving embarrassingly parallel problems due to their parallel structure. Other non-graphical uses include the training of neural networks and cryptocurrency mining.
AMD FirePro was AMD's brand of graphics cards designed for use in workstations and servers running professional Computer-aided design (CAD), Computer-generated imagery (CGI), Digital content creation (DCC), and High-performance computing/GPGPU applications. The GPU chips on FirePro-branded graphics cards are identical to the ones used on Radeon-branded graphics cards. The end products differentiate substantially by the provided graphics device drivers and through the available professional support for the software. The product line is split into two categories: "W" workstation series focusing on workstation and primarily focusing on graphics and display, and "S" server series focused on virtualization and GPGPU/High-performance computing.
In computer graphics and digital imaging, imagescaling refers to the resizing of a digital image. In video technology, the magnification of digital material is known as upscaling or resolution enhancement.
In computing, CUDA is a proprietary parallel computing platform and application programming interface (API) that allows software to use certain types of graphics processing units (GPUs) for accelerated general-purpose processing, an approach called general-purpose computing on GPUs (GPGPU). CUDA API and its runtime: The CUDA API is an extension of the C programming language that adds the ability to specify thread-level parallelism in C and also to specify GPU device specific operations. CUDA is a software layer that gives direct access to the GPU's virtual instruction set and parallel computational elements for the execution of compute kernels. In addition to drivers and runtime kernels, the CUDA platform includes compilers, libraries and developer tools to help programmers accelerate their applications.
AMD FireStream was AMD's brand name for their Radeon-based product line targeting stream processing and/or GPGPU in supercomputers. Originally developed by ATI Technologies around the Radeon X1900 XTX in 2006, the product line was previously branded as both ATI FireSTREAM and AMD Stream Processor. The AMD FireStream can also be used as a floating-point co-processor for offloading CPU calculations, which is part of the Torrenza initiative. The FireStream line has been discontinued since 2012, when GPGPU workloads were entirely folded into the AMD FirePro line.
AMD Software is a device driver and utility software package for AMD's Radeon graphics cards and APUs. Its graphical user interface is built with Qt and is compatible with 64-bit Windows and Linux distributions.
OpenCL is a framework for writing programs that execute across heterogeneous platforms consisting of central processing units (CPUs), graphics processing units (GPUs), digital signal processors (DSPs), field-programmable gate arrays (FPGAs) and other processors or hardware accelerators. OpenCL specifies a programming language for programming these devices and application programming interfaces (APIs) to control the platform and execute programs on the compute devices. OpenCL provides a standard interface for parallel computing using task- and data-based parallelism.
The Radeon 200 series is a series of graphics processors developed by AMD. These GPUs are manufactured on a 28 nm Gate-Last process through TSMC or Common Platform Alliance.
CodeXL was an open-source software development tool suite which included a GPU debugger, a GPU profiler, a CPU profiler, a graphics frame analyzer and a static shader/kernel analyzer.
Video Code Engine is AMD's video encoding application-specific integrated circuit implementing the video codec H.264/MPEG-4 AVC. Since 2012 it was integrated into all of their GPUs and APUs except Oland.
TrueAudio is AMD's application-specific integrated circuit (ASIC) intended to serve as dedicated co-processor for the calculations of computationally expensive advanced audio signal processing, such as convolution reverberation effects and 3D audio effects. TrueAudio is integrated into some of the AMD GPUs and APUs available since 2013.
Nvidia NVENC is a feature in Nvidia graphics cards that performs video encoding, offloading this compute-intensive task from the CPU to a dedicated part of the GPU. It was introduced with the Kepler-based GeForce 600 series in March 2012.
Nvidia GameWorks is a middleware software suite developed by Nvidia. The Visual FX, PhysX, and Optix SDKs provide a wide range of enhancements pre-optimized for Nvidia GPUs. GameWorks is partially open-source. The competing solution being in development by AMD is GPUOpen, which was announced to be free and open-source software under the MIT License.
Vulkan is a low-level, low-overhead cross-platform API and open standard for 3D graphics and computing. It was intended to address the shortcomings of OpenGL, and allow developers more control over the GPU. It is designed to support a wide variety of GPUs, CPUs and operating systems, and it is also designed to work with modern multi-core CPUs.
AMD TressFX is a software library which provides for advanced simulation and rendering of hair, fur, and grass to be processed by the GPU. The initial library was written to perform well on AMD's GCN-based products. Version 3 was released on January 26, 2016, and works solely with Direct3D 11 and utilizes DirectCompute.
Video Core Next is AMD's brand for its dedicated video encoding and decoding hardware core. It is a family of hardware accelerator designs for encoding and decoding video, and is built into AMD's GPUs and APUs since AMD Raven Ridge, released January 2018.
ROCm is an Advanced Micro Devices (AMD) software stack for graphics processing unit (GPU) programming. ROCm spans several domains: general-purpose computing on graphics processing units (GPGPU), high performance computing (HPC), heterogeneous computing. It offers several programming models: HIP, OpenMP, and OpenCL.
Deep learning super sampling (DLSS) is a family of real-time deep learning image enhancement and upscaling technologies developed by Nvidia that are available in a number of video games. The goal of these technologies is to allow the majority of the graphics pipeline to run at a lower resolution for increased performance, and then infer a higher resolution image from this that approximates the same level of detail as if the image had been rendered at this higher resolution. This allows for higher graphical settings and/or frame rates for a given output resolution, depending on user preference.
Intel Arc is a brand of graphics processing units designed by Intel. These are discrete GPUs mostly marketed for the high-margin gaming PC market. The brand also covers Intel's consumer graphics software and services.
Ada Lovelace, also referred to simply as Lovelace, is a graphics processing unit (GPU) microarchitecture developed by Nvidia as the successor to the Ampere architecture, officially announced on September 20, 2022. It is named after the English mathematician Ada Lovelace, one of the first computer programmers. Nvidia announced the architecture along with the GeForce RTX 40 series consumer GPUs and the RTX 6000 Ada Generation workstation graphics card. The Lovelace architecture is fabricated on TSMC's custom 4N process which offers increased efficiency over the previous Samsung 8 nm and TSMC N7 processes used by Nvidia for its previous-generation Ampere architecture.
FSR 3 is a frame generation solution that operates along similar lines to Nvidia's DLSS 3 - combining frame generation (Fluid Motion Frames) with super resolution upscaling (FSR 2) and latency reduction (Anti-Lag+) in a small number of supported games, with Forspoken and Immortals of Aveum set to first debut the technology. FSR 3 will work on Radeon graphics cards, as well as Nvidia and Intel GPUs.
{{cite web}}
: CS1 maint: numeric names: authors list (link)