百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
F

FidelityFX-FSR2

> 编程语言
开源

FidelityFX 超级分辨率 2

2.1K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

FidelityFX 超级分辨率 2

FidelityFX Super Resolution 2.2 (FSR 2.2.1)

Copyright (c) 2023 Advanced Micro Devices, Inc. All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

AMD FidelityFX Super Resolution 2 (FSR 2) is an open source, high-quality solution for producing high resolution frames from lower resolution inputs.

You can find the binaries for FidelityFX FSR in the release section on GitHub.

Super Resolution 2

Table of contents

  • Introduction
    • Shading language requirements
  • Quick start checklist
  • Integration guidelines
    • Quality modes
    • Performance
    • Memory requirements
    • Input resources
    • Depth buffer configurations
    • Providing motion vectors
    • Reactive mask
    • Automatically generating reactivity
    • Transparency and composition mask
    • Automatically generating transparency and composition mask
    • Placement in the frame
    • Host API
    • Modular backend
    • Memory management
    • Temporal antialiasing
    • Camera jitter
    • Camera jump cuts
    • Mipmap biasing
    • Frame Time Delta Input
    • HDR support
    • Falling back to 32-bit floating point
    • 64-wide wavefronts
    • API Debug Checker
  • The technique
    • Algorithm structure
    • Compute luminance pyramid
    • Reconstruct & dilate
    • Depth clip
    • Create locks
    • Reproject & accumulate
    • Robust Contrast Adaptive Sharpening (RCAS)
  • Building the sample
  • Limitations
  • Version history
  • References

Introduction

FidelityFX Super Resolution 2 (or FSR2 for short) is a cutting-edge upscaling technique developed from the ground up to produce high resolution frames from lower resolution inputs.

algorithm.")

FSR2 uses temporal feedback to reconstruct high-resolution images while maintaining and even improving image quality compared to native rendering.

FSR2 can enable “practical performance” for costly render operations, such as hardware ray tracing.

Shading language requirements

HLSL CS_6_2 CS_6_6*

* - CS_6_6 is used on some hardware which supports 64-wide wavefronts.

Quick start checklist

To use FSR2 you should follow the steps below:

  1. Double click GenerateSolutions.bat in the build directory.

  2. Open the solution matching your API, and build the solution.

  3. Copy the API library from bin/ffx_fsr2_api into the folder containing a folder in your project which contains third-party libraries.

  4. Copy the library matching the FSR2 backend you want to use, e.g.: bin/ffx_fsr2_api/ffx_fsr2_api_dx12_x64.lib for DirectX12.

  5. Copy the following core API header files from src/ffx-fsr2-api into your project: ffx_fsr2.h, ffx_types.h, ffx_error.h, ffx_fsr2_interface.h, ffx_util.h, shaders/ffx_fsr2_common.h, and shaders/ffx_fsr2_resources.h. Care should be taken to maintain the relative directory structure at the destination of the file copying.

  6. Copy the header files for the API backend of your choice, e.g. for DirectX12 you would copy dx12/ffx_fsr2_dx12.h and dx12/shaders/ffx_fsr2_shaders_dx12.h. Care should be taken to maintain the relative directory structure at the destination of the file copying.

  7. Include the ffx_fsr2.h header file in your codebase where you wish to interact with FSR2.

  8. Create a backend for your target API. E.g. for DirectX12 you should call ffxFsr2GetInterfaceDX12. A scratch buffer should be allocated of the size returned by calling ffxFsr2GetScratchMemorySizeDX12 and the pointer to that buffer passed to ffxFsr2GetInterfaceDX12.

  9. Create a FSR2 context by calling ffxFsr2ContextCreate. The parameters structure should be filled out matching the configuration of your application. See the API reference documentation for more details.

  10. Each frame you should call ffxFsr2ContextDispatch to launch FSR2 workloads. The parameters structure should be filled out matching the configuration of your application. See the API reference documentation for more details, and ensure the frameTimeDelta field is provided in milliseconds.

  11. When your application is terminating (or you wish to destroy the context for another reason) you should call ffxFsr2ContextDestroy. The GPU should be idle before calling this function.

  12. Sub-pixel jittering should be applied to your application's projection matrix. This should be done when performing the main rendering of your application. You should use the ffxFsr2GetJitterOffset function to compute the precise jitter offsets. See Camera jitter section for more details.

  13. For the best upscaling quality it is strongly advised that you populate the Reactive mask and Transparency & composition mask according to our guidelines. You can also use ffxFsr2ContextGenerateReactiveMask as a starting point.

  14. Applications should expose scaling modes, in their user interface in the following order: Quality, Balanced, Performance, and (optionally) Ultra Performance.

  15. Applications should also expose a sharpening slider to allow end users to achieve additional quality.

Integration guidelines

Scaling modes

For the convenience of end users, the FSR2 API provides a number of preset scaling ratios which are named.

Quality Per-dimension scaling factor Quality 1.5x Balanced 1.7x Performance 2.0x Ultra performance 3.0x

We strongly recommend that applications adopt consistent naming and scaling ratios in their user interface. This is to ensure that user experience is consistent for your application's users which may have experience of other applications using FSR2.

Performance

Depending on your target hardware and operating configuration FSR2 will operate at different performance levels.

The table below summarizes the measured performance of FSR2 on a variety of hardware in DX12.

Target resolution Quality RX 7900 XTX RX 6950 XT RX 6900 XT RX 6800 XT RX 6800 RX 6700 XT RX 6650 XT RX 5700 XT RX Vega 56 RX 590 3840x2160 Quality (1.5x) 0.7ms 1.1ms 1.2ms 1.2ms 1.4ms 2.0ms 2.8ms 2.4ms 4.9ms 5.4ms Balanced (1.7x) 0.6ms 1.0ms 1.0ms 1.1ms 1.4ms 1.8ms 2.6ms 2.2ms 4.1ms 4.9ms Performance (2x) 0.6ms 0.9ms 1.0ms 1.0ms 1.3ms 1.7ms 2.3ms 2.0ms 3.6ms 4.4ms Ultra perf. (3x) 0.5ms 0.8ms 0.8ms 0.9ms 1.1ms 1.5ms 1.8ms 1.7ms 2.9ms 3.7ms 2560x1440 Quality (1.5x) 0.3ms 0.5ms 0.5ms 0.5ms 0.7ms 0.9ms 1.2ms 1.1ms 1.9ms 2.3ms Balanced (1.7x) 0.3ms 0.5ms 0.5ms 0.5ms 0.6ms 0.8ms 1.1ms 1.0ms 1.7ms 2.1ms Performance (2x) 0.3ms 0.4ms 0.4ms 0.4ms 0.6ms 0.8ms 0.9ms 0.9ms 1.5ms 1.9ms Ultra perf. (3x) 0.2ms 0.4ms 0.4ms 0.4ms 0.5ms 0.7ms 0.8ms 0.8ms 1.2ms 1.7ms 1920x1080 Quality (1.5x) 0.2ms 0.3ms 0.3ms 0.3ms 0.4ms 0.5ms 0.6ms 0.6ms 1.0ms 1.3ms Balanced (1.7x) 0.2ms 0.3ms 0.3ms 0.3ms 0.4ms 0.5ms 0.6ms 0.6ms 0.9ms 1.2ms Performance (2x) 0.2ms 0.2ms 0.2ms 0.3ms 0.3ms 0.5ms 0.5ms 0.5ms 0.8ms 1.1ms Ultra perf. (3x) 0.1ms 0.2ms 0.2ms 0.2ms 0.3ms 0.4ms 0.4ms 0.4ms 0.7ms 0.9ms

Figures are rounded to the nearest 0.1ms and are without additional sharpness and are subject to change.

Memory requirements

Using FSR2 requires some additional GPU local memory to be allocated for consumption by the GPU. When using the FSR2 API, this memory is allocated when the FSR2 context is created, and is done so via the series of callbacks which comprise the backend interface. This memory is used to store intermediate surfaces which are computed by the FSR2 algorithm as well as surfaces which are persistent across many frames of the application. The table below includes the amount of memory used by FSR2 under various operating conditions. The "Working set" column indicates the total amount of memory used by FSR2 as the algorithm is executing on the GPU; this is the amount of memory FSR2 will require to run. The "Persistent memory" column indicates how much of the "Working set" column is required to be left intact for subsequent frames of the application; this memory stores the temporal data consumed by FSR2. The "Aliasable memory" column indicates how much of the "Working set" column may be aliased by surfaces or other resources used by the application outside of the operating boundaries of FSR2.

You can take control of resource creation in FSR2 by ove

GitHub Issues· 0 开放

在 GitHub 查看全部

暂无开放 Issues,或尚未同步最近议题。

核心特点

  • •Introduction
  • •Shading language requirements
  • •Quick start checklist
  • •Integration guidelines
  • •Quality modes
  • •Performance
  • •Memory requirements
  • •Input resources
  • •Depth buffer configurations
  • •Providing motion vectors

> 标签

C

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言