Skip to content

Commit 9f2f5d5

Browse files
committed
Update ASR LP
1 parent ce1c355 commit 9f2f5d5

File tree

6 files changed

+76
-75
lines changed

6 files changed

+76
-75
lines changed

content/learning-paths/mobile-graphics-and-gaming/get-started-with-arm-asr/01-what-is-arm-asr.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ layout: learningpathall
88

99
## Introduction
1010

11-
[Arm® Accuracy Super Resolution™ (ASR)](https://www.arm.com/developer-hub/mobile-graphics-and-gaming/accuracy-super-resolution) is a mobile-optimized temporal upscaling technique derived from [AMD's Fidelity Super Resolution 2 v2.2.2](https://github.com/GPUOpen-LibrariesAndSDKs/FidelityFX-SDK/blob/main/docs/techniques/super-resolution-temporal.md). Arm ASR extends this technnology with multiple optimizations to make the technique suited for the more resource-constrained environment of mobile gaming.
11+
[Arm® Accuracy Super Resolution™ (ASR)](https://www.arm.com/developer-hub/mobile-graphics-and-gaming/accuracy-super-resolution) is a mobile-optimized temporal upscaling technique derived from [AMD's Fidelity Super Resolution 2 v2.2.2](https://github.com/GPUOpen-LibrariesAndSDKs/FidelityFX-SDK/blob/main/docs/techniques/super-resolution-temporal.md). Arm ASR extends this technology with multiple optimizations to make the technique suited for the more resource-constrained environment of mobile gaming.
1212

1313
With an Unreal Engine plug-in available now, open-source library code to integrate into your customized engines, and Unity and Godot plug-ins coming later in the year, you can easily improve frames per second, enhance visual quality, and prevent thermal throttling for smoother, longer gameplay.
1414

@@ -29,19 +29,19 @@ You can control a range of different settings for Arm ASR:
2929
- Use a Robust Contrast Adaptive Sharpening (RCAS) filter to sharpen the output image.
3030
- The shader quality preset: 1 - Quality, 2 - Balanced, 3 - Performance.
3131

32-
## How to get Arm ASR
32+
## Overview of Arm ASR
3333

34-
The Arm ASR experience kit is a combination of materials that provide access to the technology, to help you evaluate it and make the best use of it. It includes:
34+
The [Arm ASR experience kit](https://github.com/arm/accuracy-super-resolution) is a combination of materials that provide access to the technology, to help you evaluate it and make the best use of it. It includes:
3535

3636
- The Arm ASR source code so developers can access it fully and even evolve the technology for their needs.
3737
- Tutorials and sample materials to help developers with the integration of the technology and how to use it.
38-
- Plugin for Unreal Engine
38+
- Plugins for multiple game engines
3939

40-
[Get Arm ASR on GitHub](https://github.com/arm/accuracy-super-resolution)
40+
Specific repositories for each game engine integration is also available. The following sections will cover those currently available.
4141

4242
## Unreal Engine Plugin
4343

44-
We provide an Unreal Engine 5 plugin that you can install into your project in a matter of minutes. Once installed, simply enable temporal upscaling on your project and the plugin will automatically handle the upscaling of all frames.
44+
The Unreal Engine 5 plugin can be integrated into your project in a matter of minutes. Once installed, simply enable temporal upscaling on your project and the plugin will automatically handle the upscaling of all frames.
4545

4646
[Using Arm ASR in Unreal Engine](../03-ue)
4747

content/learning-paths/mobile-graphics-and-gaming/get-started-with-arm-asr/02-ue.md

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -23,30 +23,28 @@ The following steps describe how to install the Arm ASR plugin in Unreal Engine:
2323

2424
![Third person pack](images/third_person_pack.png "Third person pack")
2525

26-
![Third person pack opening screen](images/third_person_pack_opening_screen.png "Third person pack opening screen")
27-
28-
1. Download the plugin by running the following command.
26+
2. Download the plugin by cloning the repository.
2927

3028
```
3129
git clone https://github.com/arm/accuracy-super-resolution-for-unreal
3230
```
3331
34-
1. Depending on your Unreal Engine version, navigate to the corresponding directory in the cloned repository.
32+
3. Depending on your Unreal Engine version, navigate to the corresponding directory in the cloned repository.
3533
3634
| Unreal Engine version | Directory |
3735
|-----------------------|-----------|
3836
| 4.27 | UE-4.27 |
3937
| 5.3-5.5 | UE-5 |
4038
41-
1. Copy the Arm ASR plugin into the `Plugins` folder in the game directory.
39+
4. Copy the Arm ASR plugin into the `Plugins` folder in the game directory.
4240
4341
![Plugin folder](images/plugin_folder.png "Plugin folder")
4442
4543
![Copied Arm ASR plugin](images/copied_arm_asr_plugin.png "Copied Arm ASR plugin")
4644
47-
1. Navigate back to your Unreal Engine project.
45+
5. Navigate back to your Unreal Engine project.
4846
49-
1. When the pop-up window opens asking to build Arm ASR, select **Yes**.
47+
6. When the pop-up window opens asking to build Arm ASR, select **Yes**.
5048
5149
![Arm ASR pop up window](images/asr_popup.png "Arm ASR pop up window")
5250
@@ -82,9 +80,19 @@ After reopening the Unreal Engine project, the Arm ASR plugin should be enabled.
8280
8381
## Further configuration {.section}
8482
85-
Arm ASR's behaviour can be configured via the following plugin-specific console variables:
83+
There are two ways to configure further settings.
84+
85+
Option 1 is using the UI. Go to **Edit > Project Settings > Plugins > Arm ASR**.
86+
87+
![Configure settings using UI](images/ui_settings.png "Configure settings using UI")
88+
89+
Option 2 is through the console. By typing `r.ArmASR.` into the console window, you can see the configuration options.
90+
91+
![Configuration options](images/configuration_options.png "Configuration options")
92+
93+
For example, you can change the upscaling ratio by modifying the **ScreenPercentage**, via the command option `r.ScreenPercentage`. A value of `50.0` will mean that the plugin upscales frames by a factor of 2.
8694
87-
Table: Arm ASR Setting options
95+
Arm ASR's behavior can be configured via the following plugin-specific console variables:
8896
8997
|Console Variable | Default Value | Value Range | Details |
9098
|:------------------------------------------------- | :------------ | :---------- | :----------------------------------------------------------------------------------------------------- |
@@ -107,16 +115,5 @@ Table: Arm ASR Setting options
107115
|`r.ArmASR.ReactiveMaskForceReactiveMaterialValue` | 0 | 0, 1 | Force the reactive mask value for Reactive Shading Model materials, when > 0 this value can be used to override the value supplied in the Material Graph. |
108116
|`r.ArmASR.ReactiveMaskReactiveShadingModelID` | MSM_NUM | - | Treat the specified shading model as reactive, taking the CustomData0.x value as the reactive value to write into the mask. |
109117
110-
There are two ways to configure further settings.
111-
112-
Option 1 is using the UI. Go to **Edit > Project Settings > Plugins > Arm ASR**.
113-
114-
![Configure settings using UI](images/ui_settings.png "Configure settings using UI")
115-
116-
Option 2 is through the console. By typing `r.ArmASR.` into the console window, you can see the configuration options.
117-
118-
![Configuration options](images/configuration_options.png "Configuration options")
119-
120-
For example, you can change the upscaling ratio by modifying the [ScreenPercentage]{.ui}. The upscaling ratio of Arm ASR can be set via `r.ScreenPercentage`. For example, a value of `50.0` will mean that the plugin upscales frames by a factor of 2.
121118
122119
You are now ready to use Arm ASR in your Unreal Engine projects. You can use [Arm Performance Studio](https://developer.arm.com/Tools%20and%20Software/Arm%20Performance%20Studio) tools to measure the performance of your game as it runs on a mobile device, allowing you to monitor the effect of Arm ASR.

content/learning-paths/mobile-graphics-and-gaming/get-started-with-arm-asr/04-universal-sdk.md

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ layout: learningpathall
88

99
## Introduction
1010

11-
Use the following steps to implement **Arm Accuracy Super-Resolution** in your own custome engine. Arm ASR is an optimized version of [Fidelity Super Resolution 2](https://github.com/GPUOpen-LibrariesAndSDKs/FidelityFX-SDK/blob/main/docs/techniques/super-resolution-temporal.md) that has been heavily modified to included many mobile-oriented optimizations to make the technique suited for mobile.
11+
Use the following steps to implement **Arm Accuracy Super-Resolution** in your own custome engine. Arm ASR is an optimized version of [Fidelity Super Resolution 2](https://github.com/GPUOpen-LibrariesAndSDKs/FidelityFX-SDK/blob/main/docs/techniques/super-resolution-temporal.md) that has been heavily modified to include many mobile-oriented optimizations to make the technique suited for mobile.
1212

1313
There are two ways you can integrate Arm ASR into your custom engine:
1414

@@ -24,37 +24,37 @@ To quickly integrate Arm ASR, which means the built-in standalone backend is use
2424
```
2525
git clone https://github.com/arm/accuracy-super-resolution-universal-sdk
2626
```
27-
1. For the purposes of this tutorial, we will set a variable to identify the location of the Arm ASR package. This path will be used to refer to files in the repository throughout this learning path.
27+
2. For the purposes of this tutorial, we will set a variable to identify the location of the Arm ASR package. This path will be used to refer to files in the repository throughout this learning path.
2828
2929
```
3030
export $ARMASR_DIR=$(pwd)
3131
```
3232
33-
1. Copy the **Arm_ASR** directory into your project, and add **Arm_ASR/src/backends/shared/blob_accessors/prebuilt_shaders** in the incude path if you want to use prebuilt shaders.
33+
3. Copy the **Arm_ASR** directory into your project, and add **Arm_ASR/src/backends/shared/blob_accessors/prebuilt_shaders** in the include path if you want to use prebuilt shaders.
34+
35+
4. Include the following header files in your codebase where you wish to interact with the technique:
3436
35-
1. Include the following header files in your codebase where you wish to interact with the technique:
36-
3737
- `$ARMASR_DIR/include/host/ffxm_fsr2.h#L1`
3838
- `$ARMASR_DIR/include/host/backends/vk/ffxm_vk.h#L1`
3939
40-
1. Create a Vulkan backend.
40+
5. Create a Vulkan backend.
4141
- Allocate a Vulkan scratch buffer of the size returned by `$ARMASR_DIR/include/host/backends/vk/ffxm_vk.h#L65`.
4242
- Create `FfxmDevice` via `$ARMASR_DIR/include/host/backends/vk/ffxm_vk.h#L65`.
4343
- Create `FfxmInterface` by calling `$ARMASR_DIR/include/host/backends/vk/ffxm_vk.h#L99`.
4444
45-
1. Create a context by calling `ffxmFsr2ContextCreate` accessed via `$ARMASR_DIR/include/host/ffxm_fsr2.h#L296`. The parameters structure should be filled out matching the configuration of your application.
45+
6. Create a context by calling `ffxmFsr2ContextCreate` accessed via `$ARMASR_DIR/include/host/ffxm_fsr2.h#L296`. The parameters structure should be filled out matching the configuration of your application.
4646
47-
1. Each frame call `ffxmFsr2ContextDispatch` via `$ARMASR_DIR/include/host/ffxm_fsr2.h#L337' to record/execute the technique's workloads. The parameters structure should be filled out matching the configuration of your application.
47+
7. Each frame call `ffxmFsr2ContextDispatch` via `$ARMASR_DIR/include/host/ffxm_fsr2.h#L337' to record/execute the technique's workloads. The parameters structure should be filled out matching the configuration of your application.
4848
49-
1. When your application is terminating (or you wish to destroy the context for another reason) you should call `ffxmFsr2ContextDestroy` accessed via `$ARMASR_DIR/include/host/ffxm_fsr2.h#L360`. The GPU should be idle before calling this function.
49+
8. When your application is terminating (or you wish to destroy the context for another reason) you should call `ffxmFsr2ContextDestroy` accessed via `$ARMASR_DIR/include/host/ffxm_fsr2.h#L360`. The GPU should be idle before calling this function.
5050
51-
1. 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 `ffxmFsr2GetJitterOffset` function accessed via `$ARMASR_DIR/include/host/ffxm_fsr2.h#L504` to compute the precise jitter offsets.
51+
9. 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 `ffxmFsr2GetJitterOffset` function accessed via `$ARMASR_DIR/include/host/ffxm_fsr2.h#L504` to compute the precise jitter offsets.
5252
53-
1. A global mip bias should be applied when texturing.
53+
10. A global mip bias should be applied when texturing.
5454
55-
1. For the best upscaling quality it is strongly advised that you populate the Reactive mask according to our guidelines. You can also use `ffxmFsr2ContextGenerateReactiveMask` accessed via `$ARMASR_DIR/include/host/ffxm_fsr2.h#L348` as a starting point.
55+
11. For the best upscaling quality it is strongly advised that you populate the Reactive mask according to our guidelines. You can also use `ffxmFsr2ContextGenerateReactiveMask` accessed via `$ARMASR_DIR/include/host/ffxm_fsr2.h#L348` as a starting point.
5656
57-
1. Finally, link the two built libraries (**Arm_ASR_api** and **Arm_ASR_backend**).
57+
12. Finally, link the two built libraries (**Arm_ASR_api** and **Arm_ASR_backend**).
5858
5959
## Tight integration
6060
@@ -64,11 +64,11 @@ In this approach the shaders are expected to be built by the engine. Arm ASR's s
6464
6565
1. Include the `ffxm_interface.h` header file from `$ARMASR_DIR/include/host/ffxm_interface.h#L1` in your codebase.
6666
67-
1. Implement your own functions (assume the names are `xxxGetInterfacexxx`, `xxxGetScratchMemorySizexxx`) and callbacks in `FfxmInterface` accessed via `$ARMASR_DIR/include/host/ffxm_interface.h#L438` to link Arm ASR with the engine's renderer.
67+
2. Implement your own functions (assume the names are `xxxGetInterfacexxx`, `xxxGetScratchMemorySizexxx`) and callbacks in `FfxmInterface` accessed via `$ARMASR_DIR/include/host/ffxm_interface.h#L438` to link Arm ASR with the engine's renderer.
6868
69-
1. Create your own backend by calling `xxxGetInterfacexxx`. A scratch buffer should be allocated of the size returned by calling `xxxGetScratchMemorySizexxx` and the pointer to that buffer passed to `xxxGetInterfacexxx`.
69+
3. Create your own backend by calling `xxxGetInterfacexxx`. A scratch buffer should be allocated of the size returned by calling `xxxGetScratchMemorySizexxx` and the pointer to that buffer passed to `xxxGetInterfacexxx`.
7070
71-
1. Now, you can follow the same steps from quick integration above, starting from step 6, creating a Arm ASR context. In the final step it is only necessary to link the **Arm_ASR_api** library.
71+
4. Now, you can follow the same steps from quick integration above, starting from step 6, creating a Arm ASR context. In the final step it is only necessary to link the **Arm_ASR_api** library.
7272
7373
### HLSL-based workflows
7474
@@ -81,3 +81,7 @@ In an HLSL-based workflow using DirectX Shader Compiler to cross-compile to SPIR
8181
```
8282
8383
- The extension **VK_KHR_shader_float16_int8** should be used at runtime.
84+
85+
(...)
86+
87+
You are now ready to use Arm ASR in your game engine projects. Go to the next section to explore more resources on Arm ASR.

content/learning-paths/mobile-graphics-and-gaming/get-started-with-arm-asr/05-get-help.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: How to get help
2+
title: Getting help and finding resources
33
weight: 6
44

55
### FIXED, DO NOT MODIFY
@@ -9,3 +9,13 @@ layout: learningpathall
99
## Get support
1010

1111
You can reach out to us on the following email address: <[email protected]>.
12+
13+
## Additional resources
14+
15+
The following links provide additional information about Arm ASR.
16+
17+
* [Arm ASR on Arm Developer Hub](https://www.arm.com/developer-hub/mobile-graphics-and-gaming/accuracy-super-resolution)
18+
* [Arm ASR Manga Comic](https://developer.arm.com/Mobile%20Graphics%20and%20Gaming/FeaturedContent/Mali%20Manga/FeaturedContent-MaliManga-Volume4)
19+
* [Arm Community Blog](https://community.arm.com/arm-community-blogs/b/graphics-gaming-and-vr-blog/posts/introducing-arm-accuracy-super-resolution)
20+
* [Arm Accuracy Super Resolution for Unreal Engine Tutorial](https://developer.arm.com/documentation/109993/latest/)
21+
* [Arm Accuracy Super Resolution for Unreal Engine Tutorial](https://developer.arm.com/documentation/109993/latest/)

content/learning-paths/mobile-graphics-and-gaming/get-started-with-arm-asr/06-additional-resources.md

Lines changed: 0 additions & 17 deletions
This file was deleted.

content/learning-paths/mobile-graphics-and-gaming/get-started-with-arm-asr/_index.md

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,43 +5,50 @@ minutes_to_complete: 20
55

66
who_is_this_for: Mobile gaming and graphics developers who want to install and configure Arm Accuracy Super Resolution (ASR) in their projects, to improve performance on highly complex game content without compromising on image quality.
77

8-
learning_objectives:
8+
learning_objectives:
99
- Understand Arm Accuracy Super Resolution
1010
- Integrate Arm ASR into your game project
11-
- Control how Arm ASR upscales your content
11+
- Control how Arm ASR upscales your content
1212

1313
prerequisites:
1414
- A game project that uses high-quality rendering features (such as hardware ray tracing) that stretch the performance capabilities of everyday smartphones.
15+
- A development machine with Git set up.
1516

1617
author: Julie Gaskin
1718

1819
### Tags
19-
skilllevels: Beginner
20-
subjects: Graphics performance
20+
skilllevels: Advanced
21+
subjects: Graphics
2122
armips:
22-
- Arm CPUs
23-
- Arm GPUs
23+
- Mali
2424
tools_software_languages:
2525
- Unreal Engine
26-
- Unity
2726
operatingsystems:
2827
- Android
2928

3029

3130

3231
further_reading:
3332
- resource:
34-
title: PLACEHOLDER MANUAL
35-
link: PLACEHOLDER MANUAL LINK
36-
type: documentation
33+
title: Arm ASR on Arm Developer Hub
34+
link: https://www.arm.com/developer-hub/mobile-graphics-and-gaming/accuracy-super-resolution
35+
type: website
36+
- resource:
37+
title: Arm ASR Manga Comic
38+
link: https://developer.arm.com/Mobile%20Graphics%20and%20Gaming/FeaturedContent/Mali%20Manga/FeaturedContent-MaliManga-Volume4
39+
type: website
3740
- resource:
38-
title: PLACEHOLDER BLOG
39-
link: PLACEHOLDER BLOG LINK
41+
title: Arm Community Blog
42+
link: https://community.arm.com/arm-community-blogs/b/graphics-gaming-and-vr-blog/posts/introducing-arm-accuracy-super-resolution
4043
type: blog
4144
- resource:
42-
title: PLACEHOLDER GENERAL WEBSITE
43-
link: PLACEHOLDER GENERAL WEBSITE LINK
44-
type: website
45+
title: Arm Accuracy Super Resolution for Unreal Engine Tutorial
46+
link: https://developer.arm.com/documentation/109993/latest/
47+
type: documentation
48+
- resource:
49+
title: Arm Accuracy Super Resolution for Universal SDK Tutorial
50+
link: https://developer.arm.com/documentation/110404/latest/
51+
type: documentation
4552

4653

4754

0 commit comments

Comments
 (0)