Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use set interval setting to fix performance degration for AMD graphics adapters #11681

Merged
merged 1 commit into from Jun 27, 2023

Conversation

JoergAtGithub
Copy link
Member

Use set interval setting to fix performance degration for AMD graphics adapters on Windows with "Wait for vertical refresh" not set to "Allways off" in the driver settings.
see: #11617 (comment)

Closes: #11617

@github-actions github-actions bot added the ui label Jun 25, 2023
@m0dB
Copy link
Contributor

m0dB commented Jun 25, 2023

Great! Thanks for all your time and persistence getting to the bottom of this!

@daschuer
Copy link
Member

I have not tested it yet. But I could remember that this was a mayor issue when introducing the vsync code for waveforms.
The debug code for this is also still in place.
m_vSyncMode == ST_FREE
With this you should see the maximum possible frame rate. If this is limited to 60, we know that the swap is artificialy delayed by the system settings, which should not happen.

@JoergAtGithub
Copy link
Member Author

It's already confirmed by one of the two affected users, that this is the cause of the issue. It's easy to test, because the AMD driver allows to overwrite the setting in the application.
While we know the correct setting for Windows now, testing for the correct setting on MacOS and Linux is needed. Without this explicit setting in the application, we depend on the default of the graphics adapter driver.
This PR contains the same settings per OS, which we have in 2.3.

@Swiftb0y
Copy link
Member

Can't spot any regressions on Fedora 38 under 4.6 (Compatibility Profile) Mesa 23.1.2 (Mesa Intel(R) UHD Graphics (CML GT2)). Both native wayland and xwayland work equally well (though the xwayland layer causes about 10% extra gpu load).

src/widget/openglwindow.cpp Outdated Show resolved Hide resolved
Copy link
Member

@Swiftb0y Swiftb0y left a comment

Choose a reason for hiding this comment

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

LGTM. do you want to squash before merging?

@JoergAtGithub
Copy link
Member Author

Ok, will do!

@Swiftb0y
Copy link
Member

Do we still need a manual test on macOS?

@fwcd
Copy link
Member

fwcd commented Jun 27, 2023

Performance seems fine to me from a quick smoke test on macOS ARM.

@Swiftb0y
Copy link
Member

Thanks for the confirmation.

@Swiftb0y Swiftb0y merged commit 695d27c into mixxxdj:2.4 Jun 27, 2023
13 checks passed
@JoergAtGithub JoergAtGithub deleted the setSwapInterval branch June 27, 2023 19:21
@daschuer daschuer added this to the 2.4.0 milestone Dec 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants