How to enable and check support for VRS tier 2 in UE 5.4?

Hi everyone,

I recently jumped into UE5 as I’m looking to enable foveated rendering for standard desktop/laptop gaming using our webcam-based eye tracker (Beam Eye Tracker).

The current best target rendering technology for performance gains based on foveation is VRS tier 2, and I was happy to find some fair coverage inside UE 5.4 (although out-of-the-box support of eye-tracking based foveation is only available for XR).

My problem, and the reason for this post, is that I can’t seem to achieve the very first step of enabling VRS tier 2. I wanted to have a minimal functioning system so I created a first-person template based project using UE 5.4.3 engine; then, following documentation and blogs to enable the out-of-the-box ConstrastAdaptiveShading VRS algorithm, I entered these commands into console:

  • r.VRS.Enable 1
  • r.VRS.EnableImage 1
  • r.VRS.EnableSoftware 1
  • r.VRS.ContrastAdaptiveShading 1
  • r.VRS.Preview 1 (This is Optional, just to visualize in real-time the shading rates tiles with color coding.)

…but it does not seem to work, and I can’t find any log, or info related to it. Here is what I have tried in addition:

  • I confirm my hardware supports VRS tier 2, as it has AMD RDNA 2 discrete graphics.
  • I tried using Vulkan, and DirectX 12 for API
  • I’ve tried a project using C++ and Blueprints (technically should not matter… but one never knows)

Has someone succeeded activating this feature ? Did you have to do something extra to visualize ? How can I confirm that UE correctly detects my platform as supporting VRS tier 2 ? Are there other rendering features which, if enabled, block the usage of VRS tier 2?

Thanks in advance,

Additional source: Nanite-enabled Variable Rate Shading in Unreal Engine 5.4

Entering the commands you listed seemed to work for me in 5.4, including the preview overlay. It was no longer enabled when I restarted the editor so it probably has to be added to an .ini file if you want it on by default.

Does your output log show any errors or warnings?

I was amazed that I’m not getting any VRS enabled as well in UE5.4.4 :slight_smile: . One of the problems is that I was trying to use 4x4 mode and surprise, my 7900 XT only goes to 2x2 so if you put 4x4 it’s going to revert to 1x1. Then the preview visualization was broken and I discovered the bug by analyzing UE source code ( I do that often :slight_smile: ). In case you’re wondering, it’s just one line at fault in VariableRateShadingImageManager.cpp line 649.

TStaticBlendState<CW_RGB, BO_Add, BF_SourceAlpha, BF_InverseSource1Alpha>::GetRHI();
//Needs to be replaced with
TStaticBlendState<CW_RGB, BO_Add, BF_SourceAlpha, BF_InverseSourceAlpha>::GetRHI();

I tried multiple times closing / reopening and re-entering the commands to avail. I did not find logs or errors.

Thank you! that’s a nice hint. I’ll try it as soon as I can get to it.

An issue here, however, is that I was simply aiming to enable the out-of-the-box ContrastAdaptiveShading algorithm. I wasn’t explicitly selecting either 2x2 or 4x4.

But I’ll test after changing that line of code you suggested which, a priori, does not seem exclusively related to the preview visualization.

Do you get any output on any preview setting with r.VRS.DebugForceRate 3? That should force 2x2 rate VRS globally, which should also be noticeable in editor without preview, on the off chance it’s a preview issue.

If that isn’t working, it might be worth confirming that D3D12 SM6 is in use rather than SM5. I haven’t checked Vulkan, but it does appear to have VRS extensions, so VK SM6 may also work.