Madvr 0.92.17 Radeon RX 570 4GB/8GB Profiles

Tested on 1920x1080 monitor:

I got an RX 570 8GB from MSI this Christmas. I can now test the results for Madvr. While this serves enough for 1080p display, this card is good for 4K content. NGU performance is noted that Polaris cards performs less than Nvidia’s counterpart. However, they look like a big upgrade from GTX 950 2GB.

Presets for 1080p display:

Turning on RCA with NGU Sharp shows that the performance doesn’t really change. Crispen Sharpening is used for users who wants to use it. It’s not neccessary for 1080p sources, especially 4K. We’re using Error Diffusion since it is good for 1080p displays on performance.

480p All:

Chroma upscaling: NGU AA low quality

Image downscaling: SSIM 1D 100% + AR + LL

Image upscaling: NGU

-Luma quality: Very High

-Chroma quality: Very High (NGU-mid)

-Upscale quality: Lanczos3 AR

-Downscale quality: SSIM 1D 100% + AR + LL

Upscaling refinement: Off

Artifact removal - Debanding: Medium/High

Artifact removal - Deringing: Off

Artifact removal - RCA & RRN: RCA (NGU Sharp) Luma 1

Image enhancements: Crispen Edges 0.5 AR

Dithering: Error Diffusion 2

Average rendering: 12 ms

Max rendering: 13 ms

Since the card is strong enough for 480p content on 1080p display, there is not really any setting that would beat the performance for 480p content. Even using RCA without NGU-Sharp, it still is solid.

720p 60fps:

Chroma upscaling: NGU low quality

Image downscaling: SSIM 1D 100% + AR + LL

Image upscaling: NGU

-Luma quality: High

-Chroma quality: High (NGU-Low)

-Upscale quality: Lanczos3 AR

-Downscale quality: SSIM 1D 100% + AR + LL

Upscaling refinement: Off

Artifact removal - Debanding: Medium/High

Artifact removal - Deringing: Off

Artifact removal - RCA & RRN: RCA (NGU Sharp) Luma 1

Image enhancements: Crispen Edges 0.5 AR

Dithering: Error Diffusion 2

Average rendering: 13 ms

Max rendering: 14 ms

720p 30fps:

Chroma upscaling: NGU low quality

Image downscaling: SSIM 1D 100% + AR + LL

Image upscaling: NGU

-Luma quality: Very High

-Chroma quality: Very High (NGU-Mid)

-Upscale quality: Lanczos3 AR

-Downscale quality: SSIM 1D 100% + AR + LL

Upscaling refinement: Off

Artifact removal - Debanding: Medium/High

Artifact removal - Deringing: Off

Artifact removal - RCA & RRN: RCA (NGU Sharp) Luma 1

Image enhancements: Crispen Edges 0.5 AR

Dithering: Error Diffusion 2

Average rendering: 28 ms

Max rendering: 29 ms

720p content on 1080p looks pretty good. I just put both profiles. However, I suggest picking the 60fps profile since you can’t tell the difference between NGU High and Very High on a 1080p display. 720p doubles to 1440p, and then it downscales to 1080p, so seeing the details difference is minimal.

1080p 60fps:

Chroma upscaling: NGU AA low quality

Image downscaling: SSIM 1D 100% + AR + LL

Image upscaling: NGU (Unused)

Upscaling refinement: Off

Artifact removal - Debanding: Medium/High

Artifact removal - Deringing: Off

Artifact removal - RCA & RRN: Off

Image enhancements: Crispen Edges 0.5 + AR

Dithering: Error Diffusion 2

Average rendering: 9 ms

Max rendering: 10 ms

1080p 30fps:

Chroma upscaling: NGU AA low quality

Image downscaling: SSIM 1D 100% + AR + LL

Image upscaling: NGU (Unused)

Upscaling refinement: Off

Artifact removal - Debanding: Medium/High

Artifact removal - Deringing: Off

Artifact removal - RCN & RNN: RCA Luma 1 Med

Image enhancements: Crispen Edges 0.5 + AR

Dithering: Error Diffusion 2

Average rendering: 21 ms

Max rendering: 22 ms

1080p content is fine for 1080p display. The 30fps profile only uses RCA without NGU Sharp involved. However, it’s uncommon to use RCA on 1080p content. I’ll go over the 4k display later.

2160p:

Chroma upscaling: Bicubic60 AR

Image downscaling: SSIM 1D 100% + AR + LL

Image upscaling: Lanczos AR (Unused)

Upscaling refinement: Off

Artifact removal - Debanding: Medium/High

Artifact removal - Deringing: Off

Artifact removal - RCN & RNN: Off

Image enhancements: Off

Dithering: Error Diffusion 2

Average rendering: 7 ms

Max rendering: 9 ms

4K content on 1080p display only needs downscaling quality. Chroma scaling didn’t need to be fancy since yopu won’t see any difference. Bicubic or Bilinear is fine. However, I get somewhat better speed on NGU Low on Chroma on certain cases. Check below. This preset is for all 4K sources without HDR. Debanding doesn’t alter the performance.

2160p HDR:

Convert HDR content to SDR by using pixel shader math

Chroma upscaling: Bicubic60 AR

Image downscaling: Bilinear

Image upscaling: Lanczos AR (Unused)

Upscaling refinement: Off

Artifact removal - Debanding: Medium/High

Artifact removal - Deringing: Off

Artifact removal - RCN & RNN: Off

HDR Settings: Balanced, Medium

Image enhancements: Off

Dithering: Error Diffusion 2

Average rendering: 11 ms

Max rendering: 13 ms

Debanding may not be needed, but barely impacts performance. However, it can help for much brighter displays. This setting is identical to the 4K presets, only changing dithering setting.

 

Presets from 4k resolution:

I changed the dithering to Ordered Dithering since Error Diffusions can be a little bit demanding on a 4K resolution. You may not see the difference on that high of a resolution anyway.

480p 60fps:

Chroma upscaling: NGU AA low quality

Image downscaling: Bilinear

Image upscaling: NGU

-Luma quality: Direct 4x High

-Chroma quality: Normal (Bicubic60 AR)

-Upscale quality: Lanczos 3 AR

-Downscale quality: Bilinear

Upscaling refinement: Off

Artifact removal - Debanding: Medium/High

Artifact removal - Deringing: Off

Artifact removal - RCN & RNN: RCN Luma 1 Med

Image enhancements: Crispen Edges 0.5 AR

Dithering: Ordered Dithering

Average rendering: 13 ms

Max rendering: 14 ms

480p 30fps:

Chroma upscaling: NGU AA low quality

Image downscaling: Bilinear

Image upscaling: NGU

-Luma quality: Direct 4x Very High

-Chroma quality: High (NGU Low)

-Upscale quality: Lanczos 3 AR

-Downscale quality: Bilinear

Upscaling refinement: Off

Artifact removal - Debanding: Medium/High

Artifact removal - Deringing: Off

Artifact removal - RCN & RNN: RCN Luma 1 Med

Image enhancements: Crispen Edges 0.5 AR

Dithering: Ordered Dithering

Average rendering: 27 ms

Max rendering: 29 ms

480p on a 4K display seems to be great for direct 4x NGU.

720p 60fps:

Chroma upscaling: NGU AA low quality

Image downscaling: Bilinear

Image upscaling: NGU

-Luma quality: Direct 4x Low

-Chroma quality: Normal (Bicubic60 AR)

-Upscale quality: Lanczos 3 AR

-Downscale quality: Bilinear

Upscaling refinement: Off

Artifact removal - Debanding: Medium/High

Artifact removal - Deringing: Off

Artifact removal - RCN & RNN: RCN Luma 1 Med

Image enhancements: Crispen Edges 0.5 AR

Dithering: Ordered Dithering

Average rendering: 11 ms

Max rendering: 12 ms

Chroma upscaling: NGU AA low quality

Image downscaling: Bilinear

Image upscaling: NGU

-Luma quality: NGU High

-Chroma quality: Normal (Bicubic60 AR)

-Upscale quality: Lanczos 3 AR

-Downscale quality: Bilinear

Upscaling refinement: Off

Artifact removal - Debanding: Medium/High

Artifact removal - Deringing: Off

Artifact removal - RCN & RNN: RCN Luma 1 Med

Image enhancements: Crispen Edges 0.5 AR

Dithering: Ordered Dithering

Average rendering: 12 ms

Max rendering: 13 ms

720p 30fps:

Chroma upscaling: NGU AA low quality

Image downscaling: Bilinear

Image upscaling: NGU

-Luma quality: Direct 4x High

-Chroma quality: Normal (Bicubic60 AR)

-Upscale quality: Lanczos 3 AR

-Downscale quality: Bilinear

Upscaling refinement: Off

Artifact removal - Debanding: Medium/High

Artifact removal - Deringing: Off

Artifact removal - RCA & RRN: RCA (NGU Sharp) Luma 1

Image enhancements: Crispen Edges 0.5 AR

Dithering: Error Diffusion 2

Average rendering: 23 ms

Max rendering: 25 ms

Chroma upscaling: NGU AA low quality

Image downscaling: Bilinear

Image upscaling: NGU

-Luma quality: NGU Very High

-Chroma quality: High (NGU Low)

-Upscale quality: Lanczos 3 AR

-Downscale quality: Bilinear

Upscaling refinement: Off

Artifact removal - Debanding: Medium/High

Artifact removal - Deringing: Off

Artifact removal - RCA & RRN: RCA (NGU Sharp) Luma 1

Image enhancements: Crispen Edges 0.5 AR

Dithering: Error Diffusion 2

Average rendering: 25 ms

Max rendering: 27 ms

I included both direct 4x and simple 2x image doublers. Pretty much, direct 4x looks sharper, but 2x is there for the results.

1080p 60fps:

Chroma upscaling: NGU AA low quality

Image downscaling: Bilinear

Image upscaling: NGU

-Luma quality: NGU Mid

-Chroma quality: Normal (Bicubic60 AR)

-Upscale quality: Lanczos 3 AR

-Downscale quality: Bilinear

Upscaling refinement: Off

Artifact removal - Debanding: Medium/High

Artifact removal - Deringing: Off

Artifact removal - RCA & RRN: RCA (NGU Sharp) Luma 1

Image enhancements: Crispen Edges 0.5 AR

Dithering: Ordered Dithering

Average rendering: 11 ms

Max rendering: 13 ms

1080p 30fps:

Chroma upscaling: NGU AA low quality

Image downscaling: Bilinear

Image upscaling: NGU

-Luma quality: NGU High

-Chroma quality: High (NGU Low)

-Upscale quality: Lanczos 3 AR

-Downscale quality: Bilinear

Upscaling refinement: Off

Artifact removal - Debanding: Medium/High

Artifact removal - Deringing: Off

Artifact removal - RCA & RRN: RCA (NGU Sharp) Luma 1

Image enhancements: Crispen Edges 0.5 AR

Dithering: Ordered Dithering

Average rendering: 25 ms

Max rendering: 27 ms

1080p sources on a 4k are really good for just simply double the image from NGU Sharp. Any quality can make 1080p look much better on 4K. Although I used RCA with NGU Sharp, you may not need it since mosat 1080p sources are good enough to see NGU benefits without noticing artifacts. Compression artifacts are barely on those resolutions.

 

2160p all and without HDR:

Chroma upscaling: NGU AA low quality

Image downscaling: Bilinear

Image upscaling: Lanczos AR (Unused)

Upscaling refinement: Off

Artifact removal - Debanding: Medium/High

Artifact removal - Deringing: Off

Artifact removal - RCN & RNN: Off

Image enhancements: Off

Dithering: Ordered Dithering

Average rendering: 10 ms

Max rendering: 14 ms

Although, I did test out the NGU AA chroma, it performs fine. I recommend using lower settings if the output is not RGB 4:4:4 or YUV 4:4:4, since there won’t be any difference on the color information. Bicubic or Bilinear is fine since you won’t be seeing chroma difference with a 4k source on a 4k display.

2160p HDR:

Convert HDR content to SDR by using pixel shader math

Chroma upscaling: Bicubic60 AR

Image downscaling: Bilinear

Image upscaling: Lanczos AR (Unused)

Upscaling refinement: Off

Artifact removal - Debanding: Medium/High

Artifact removal - Deringing: Off

Artifact removal - RCN & RNN: Off

HDR Settings: Balanced, Medium

Image enhancements: Off

Dithering: Ordered Dithering

Average rendering: 9 ms

Max rendering: 11 ms

Debanding may not be needed, but barely impacts performance. However, it can help for much brighter displays. Although on 4K sources, you can now see more separate render times between average and max. It can be due to how a video is decoded, or if 4K sources uses higher bitrates, like a hundred mbps or so. However, HDR videos decoded on some drivers or certain players can show better results.

4K results are pretty good for the RX 570. Being near $140 4GB card is a good value for Madvr. NGU scaling seems to be fine. I haven’t had any terrible performance on NGU. 4GB VRAM is plenty, so you don’t have to play around the buffer settings. It does perform better than GTX 1050 Ti.

All Test:

Smooth Motion: Enable

Trade Quality for Performance: Unchecked all

3DLUT was off, but doesn’t really change the performance at all.

The reason why I listed 60fps and 30fps presets is because certain sources are rendered at 60fps. Sources like camera capture, screen and gameplay captures, capture cards, bob deinterlaced video, video testing, and variable framerate sources can reach 60fps. Some users would want to go further because a lot of their sources are 30fps, 25fps, or 24fps. I personally want to only use the 60fps profiles just to be safe for any video sources. I also have certain sources that has variable framerates.

I take a look at two websites for profiles and posted preferences.

https://forum.kodi.tv/showthread.php?tid=259188

https://forum.doom9.org/showthread.php?t=146228

Benchmarks on few scenarios:

-1080p Chroma Settings (no scaling), no sharpening or artificial removal used.

Bicubic60 AR           7ms

Bilateral Old          7.5ms

Bilateral Soft         8ms

Bilateral Sharp        8ms

Reconsoft Soft         8.4ms

Reconsoft Sharp        12.4ms

Reconsoft Placebo      23ms

Super-xBR AR 100       8ms

NGU AA Low             6ms

NGU AA Med             6.5ms

NGU AA High            9.4ms

NGU AA Med             23.3ms

It is pretty weird that NGU Low has better performance than Bicubic60 AR on this test.

-720p 60fps image double, Chroma=Bicubic60 AR, Downscale=Bilinear, no chroma doubling.

None                   3ms

NGU-Sharp

Low                    4.3ms (232+fps)

Medium                 5.2ms (192+fps)

High                   7.3ms (137+fps)

Very High              20.7ms (48.2fps)

Super-XBR              3.9ms


-1080p 60fps image double, Chroma=Bicubic60 AR, Downscale=Bilinear, no chroma doubling.

None                   3ms

NGU-Sharp

Low                    7.1ms (140+fps)

Medium                 9.2ms (108+fps)

High                   17.5ms (56.9fps)

Very High              44.1ms (22.7fps)

Super-XBR              6.1ms


For a Polaris Radeon user, I generally get double the performance with NGU from GTX 950. The RX 570 does well on NGU with latest drivers. I’m using 19.9 drivers. Polaris NGU issue relates to driver issues, but I haven’t heard about NGU issue on Vega or Navi yet, but can be present. MadVR still uses D3D9 assests even though you’re using DX11 presentation. I wonder if you get slightly better performance if MadVR somehow worked on Wine with Mesa Drivers using Gallium Nine or D9VK. Early drivers do have real issue on NGU performance when Polaris cards came out. As of Late 2018 and even as of November 2019, I do get around double the performance when switched out GTX 950, and RX 570 generally doubles the performance when I got it from Christmas. Although I only notice 1.5x performance when using NGU 4x, but I still got enough performance for tests above.

For sharpening, even with anti-ringing and anti-bloating 100%, performance is too good for 1080p or lower, and not really needed for 4K most of the time. I recommend Crispen Edges 0.5 AR since that sharpening filter doesn’t really bloat the edges when using NGU, compared to others, regardless if AB is set to 150%.


-1080p 60fps Reduce Compression Artifact (RCA) test, Chroma=Bilinear, RCA=3.

None                   4.7ms

Low                    5.3ms

Medium                 7.5ms

High                   14.0ms

Very High              38.1ms

Low+Chroma             6.6ms

Medium+Chroma          9.8ms

High+Chroma            20.5ms

Very High+Chroma       58.3ms


Doing RCA filter without NGU involved is a good way to reduce compression artifacts when watching a video in native resolution of your screen. If you don’t use NGU Sharp or can’t upscale any higher, you won’t get a free performance with RCA when using other NGU or upscaling methods currently if you want RCA active. Besides, RCA with NGU Sharp is done after other post processing effects like deband and sharpness, which is bad for sharpness if it picks up the artifacts from sharpen filters. The good order would be RCA+Deband+Dehalo, and then Sharpness to affect the artifacts less. Although this sounds good, it does involve performance compromise. If you don’t use any sharp filters and upscale with NGU Sharp, you can use free performance option.


Anyway, the quality of RCA between Low and Very High relate to how it can take a bit more artifacts away without using higher strength value to ruin details. Low to Very High can vary between lowest and highest strength value. I tested 7, the middle of the strength value, and the difference between low and very high are little. It can be noticable, but pretty little. Artifacts are slightly visible, but still blurred, and lines on very high are slightly sharp, but won’t matter when pairing with a sharpening filter. Lower strength values are subtle for differences. Higher values, especially at 14 max strength, shows quite noticable difference. Lines are sharper and parts of the details are more visible on very high, but still looks smudged all over. Lines can be blurred on animation. It’s not really bad looking, but you can tell it’s looks overprocessed, especially if you pair it with upscaling like NGU or Lanczos. I do recommend 7 for max processing since it gets rid of a lot of artifacts fairly while details have little loss, including a little difference between low and very high quality. As for Chroma, it does help a bit, but differences between low and very high can be similar, but you may notice it on small red chroma dots of the video. Difference between with and without chroma RCA is a bit less noticable than Luma one.


MPV Benchmarks:

720p Sources:

FSRCNN8 - 2.7ms (368fps)

FSRCNN16 - 7.0ms (142fps)

FSRCNN32 - 23.9ms (41.8fps)

FSRCNNX8 - 3.0ms (328fps)

FSRCNNX16 - 11.1ms (90.0fps)

I put out the benchmarks for MPV player, using FSRCNN and FSRCNNX. I only used FPS estimated numbers since they’re more consistent and easier to calaulate. Unlike Nvidia, I had issues with OpenGL when using FSRCNN32, not others, and Vulkan seems to perform a bit less. I use gpu-api=d3d11 to use the most stable API available. It performs the fastest out of all APIs. Lanczos is used for upscaling and bilinear is used for downscaling. It is used to show how these shaders actually perform. On Linux with Mesa drivers, Vulkan performs pretty well, and OpenGL works with all shaders. Vulkan with RADV drivers performs the best. On MPV, FSRCNNX16 is best for 720p sources, unless if you decide to throw a few more shaders and use 60fps, then use FSRCNNX8. I skipped FSRCNNX56 and GAN one since they are very slow to use on any resolution.

The best quality for upscaling would be NGU. As of April 2019, FSCRNNX are more competivive to NGU Sharp. The non-X variants has little higher performance, with sharpness being identical to NGU-Standard and quality is slightly lower. Generally, FSRCNN shaders have the lines with ringing, however. FSRCNNX are sharper with more better results than the standard, and can go through a bit more on compression artifacts. FSRCNNX-8 looks between NGU Med and NGU High, and looks slightly sharper, albert little more ringing, and FSRCNNX-16 looks between NGU High and Very High, and retains sharpness as FSRCNNX-8 with less ringing and lines are better. 16 performs around twice as fsst as NGU Very High, and competes pretty good with NGU Sharp Very High on the image benchmark below. 8 non-x is between standard low and med, 16 non-x is between standard med and 32 non-x looks something like NGU Standard High while performs lower, and FSRCNNX-56-16-4-1 doesn’t perform in real time. However, both NGU Sharp Very High and FSRCNNX-16 are great. 16 will look better than 8, but performance is more faster on 8. However, these are your alternatives if you use other OS like Linux or Android, but I recommend Madvr on Windows for easier usability. RAVU performs pretty fast and look similar to NGU-AA High on RAVU-R4. It does have few artifacts on certain X crossed lines that NGU-AA doesn’t have on any level. Super-XBR does look worse than NGU-AA or RAVU. For best quality on smooth upscaling, NGU-AA Very High is the best one out there. Here are the benchmarks on quality and performance on most of the shaders listed here:

https://artoriuz.github.io/mpv_upscaling.html

Setup MPV:

https://iamscum.wordpress.com/guides/videoplayback-guide/mpv-conf/

Edit 11/1/19: Added RCA test and MPV Linux info added.

11/2/19: Test on image double 1080p, benchmark test with FPS on most, and add more info about Polaris NGU and MPV shaders.