A patch series posted last week for the open-source AMDGPU kernel driver implements HDMI Variable Rate Refresh “VRR” and other gaming features for HDMI displays. With the HDMI Forum blocking HDMI 2.1 open-source support, these HDMI gaming features for the AMDGPU driver were developed via trial-and-error and the limited public knowledge available. A second iteration of these patches are now available for testing.
Tomasz Pakuła posted a second version of the AMDGPU Linux driver patches providing VRR fixes and these HDMI Gaming Features. The main features are HDMI VRR similar to the existing DisplayPort FreeSync/Adaptive-Sync (VRR) and HDMI Auto Low Latency Mode (ALLM).
As for the changes in the patches posted on Sunday:
“- Updated BRR max value to 1023 after testing one by one. Which should’ve been obvious since 1023 is a max value for a 10-bit field.
– Fixed some somments to not trigger “not a kernel doc” warning
– Considered ALLM comments from Michel Dänzer, Daniel Stone and Jani Nikula. ALLM is now triggered only if wither VRR is active or Content Type Hint is Game. Content type hint is already supported by amdgpu and fully plumbed.
– Added module property for controlling ALLM trigger behavior. Now it can be configured to never trigger ALLM, trigger with VRR/Game (default) or be always forced on.
– Added HDMI VRR desktop mode module setting, which is on by default. This mimics how FreeSync is handeled on Windows and this fixes a lot of issues with unwanted screen balnking and glitches around entering/exiting VRR mode.
– Moved hdmi vic mode check to one central function to not check for 3D and ALLM in different places which could sometimes break the logic for translating HDMI VIC modes in CTA vic modes (when such translation is needed).”
The new module parameter for controlling HDMI Auto Low Latency Mode is amdgpu.allm_mode= with values of 0 to disable ALLM, 1 to dynamically trigger based on VRR state, or a value of 2 to always have it enabled. Meanwhile the new setting to toggle HDMI VRR is amdgpu.hdmi_vrr_desktop_mode= with the default value of true for matching the FreeSync behavior with it always active or setting it to false with disable the functionality.
The updated patch series for these HDMI Gaming Features for the AMDGPU open-source kernel driver are out for review now on the mailing list. These patches are too late for finding potentially in the upcoming Linux 6.20~7.0 kernel cycle but ideally they could be baked in time for the Linux kernel this summer, assuming nothing (i.e. legal team) blocks these HDMI patches from being picked up by the AMD developers for upstreaming to AMDGPU.
