Skip to content

fix(HDMI): Hdmi vrr refactor - #4

Closed
andy10115 wants to merge 3 commits into
OpenGamingCollective:masterfrom
andy10115:hdmi-vrr-refactor
Closed

fix(HDMI): Hdmi vrr refactor#4
andy10115 wants to merge 3 commits into
OpenGamingCollective:masterfrom
andy10115:hdmi-vrr-refactor

Conversation

@andy10115

Copy link
Copy Markdown

This ports the passive HDMI VRR behavior into linux-unstable on top of the HDMI VRR work already present there.

The changes:

Enable freesync_on_desktop for supported HDMI streams in the refactored amdgpu_dm_freesync.c path.
Keep HDMI VTEM VRR_EN asserted while the stream is in VRR_STATE_INACTIVE when freesync_on_desktop is enabled.
Reuse that effective VRR state when deciding whether VTEM should advertise a zero-length data set.

The goal is to keep HDMI VRR signaling active during fixed-refresh desktop use without actually varying the refresh rate. This avoids repeatedly transitioning the sink between VRR and non-VRR signaling states, which appears to be related to intermittent HDMI blanking on affected TVs.

This is a port of the behavior from:

8a4de24a7483d722807d94115eb0c99516d5e172
cc20b93d879eca1ec6e88f2927c25df95bcf78ba

The first change was adapted to the newer linux-unstable AMD display refactor, where the relevant logic now lives in amdgpu_dm_freesync.c.

@NeroReflex

Copy link
Copy Markdown
Collaborator

Hi, this linux fork is for ensuring what is being sent here is ready to be upstreamed and I see commits (as in text) are basically empty and no Signed-off-by is present: could you rephrase commit messages and add Sob lines please?

@andy10115

Copy link
Copy Markdown
Author

Apologies, learning as I go on this. So more detail in commit messages, and SOB just looks like "Signed off by: Me?"

@NeroReflex

Copy link
Copy Markdown
Collaborator

Apologies, learning as I go on this. So more detail in commit messages, and SOB just looks like "Signed off by: Me?"

Yeah no problem: linux-unstable is being made for this exact reason: helping people learn kernel development and also gather info before sending patches to the LKML.

You can see an example in hid-asus: https://lore.kernel.org/all/20260823185849.2478673-2-denis.benato@linux.dev/

Also if your commit is a bugfix You should also use the Fixes: commit_hash ("commit_title") tag.

See https://www.kernel.org/doc/html/latest/process/submitting-patches.html for more

Comment thread drivers/gpu/drm/amd/display/modules/info_packet/info_packet.c Outdated
Comment thread drivers/gpu/drm/amd/display/modules/info_packet/info_packet.c
@andy10115

andy10115 commented Aug 24, 2026

Copy link
Copy Markdown
Author

I'll take a look at your comments later tonight. I wanted to share some additional context that might help in the larger picture as well. Apologies, it's not light reading. :)

https://gitlab.freedesktop.org/drm/amd/-/work_items/5649

That issue will give all the context and testing I've done, some troubleshooting with some of the folks over there, as well as links to a patch series Cachy has put in to essentially rewire their display stack to do exactly this as a workaround to the signalling issues. I'm essentially trying to take what Lawstorant has done and adapt it to the patches we are carrying.

Cachy is still carrying the Pakula patches.

One more thing...how do I alter my commit messages?

@andy10115 andy10115 left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe I've updated this and used the correct commit and sign off. I do want to preserve the functionality here, but I believe the constant is better.

Enable freesync_on_desktop for HDMI streams so the display can keep
FreeSync enabled during normal desktop use.

This allows the HDMI VRR path to support fixed-refresh desktop
operation while retaining FreeSync signaling for the display.

Signed-off-by: Andy East <andy10115@gmail.com>
Refactor VRR state checks for clarity and maintainability.
Treat VRR_STATE_INACTIVE as VRR-active when freesync_on_desktop is
enabled so HDMI VTEM continues advertising VRR during fixed-refresh
desktop use.

Use a single vrr_active value for both the VTEM VRR_EN bit and the
Data_Set_Length decision. This keeps VTEM signaling consistent while
allowing the display to remain in its VRR mode without varying the
actual refresh rate.

Signed-off-by: Andy East <andy10115@gmail.com>
@andy10115

Copy link
Copy Markdown
Author

I got this cleaned up. Let me know if there is anything else you need.

@NeroReflex

Copy link
Copy Markdown
Collaborator

Dunno what happened but I see one of your commits as being the ayaneo driver from yestarday.

Also you may want to change the title of patches to be the same as what amdgpu devs send to the lkml and also your discussion is on the amdgpu bugtracker so you have to include a Closes: to at least one of the patches involved.

@andy10115

andy10115 commented Aug 25, 2026 via email

Copy link
Copy Markdown
Author

@KyleGospo

Copy link
Copy Markdown
Member

Continue here: #6

@KyleGospo KyleGospo closed this Aug 25, 2026
@andy10115
andy10115 deleted the hdmi-vrr-refactor branch August 26, 2026 03:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants