https://bugs.freedesktop.org/show_bug.cgi?id=96326
Bug ID: 96326 Summary: Heavy screen flickering in OpenGL apps on R9 390 Product: Mesa Version: git Hardware: Other OS: Linux (All) Status: NEW Severity: normal Priority: medium Component: Drivers/Gallium/radeonsi Assignee: dri-devel@lists.freedesktop.org Reporter: 0xe2.0x9a.0x9b@gmail.com QA Contact: dri-devel@lists.freedesktop.org
GPU: R9 390 GPU manufacturer: Gigabyte Kernel: 4.5, 4.6, etc Firmware: both hawaii_smc.bin and hawaii_k_smc.bin
Hello,
I am experiencing heavy LCD screen flickering in OpenGL apps when automatic GPU power management is enabled.
The flickering is related to mclk transitions. Forcing mclk=1.5GHz, and letting sclk be controlled by DPM, removes the flickering.
Related issues: http://bugs.freedesktop.org/show_bug.cgi?id=91880 http://bugs.freedesktop.org/show_bug.cgi?id=92302
https://bugs.freedesktop.org/show_bug.cgi?id=96326
Vedran Miletić vedran@miletic.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |vedran@miletic.net
--- Comment #1 from Vedran Miletić vedran@miletic.net --- Confirmed by lilleman on #radeon: https://people.freedesktop.org/~cbrill/dri-log/?channel=radeon&date=2016...
https://bugs.freedesktop.org/show_bug.cgi?id=96326
--- Comment #2 from Jan Ziak 0xe2.0x9a.0x9b@gmail.com --- The flickering disappears after switching from X11 to Linux console (Ctrl+Alt+F1) and back (Ctrl+Alt+F7). mclk transitions 150MHz <-> 1500MHz no longer cause monitor flickering after that.
The code in the Linux kernel executed during the switch to Linux console and back fixes the issue, we just need to pinpoint the code lines responsible for the fix.
https://bugs.freedesktop.org/show_bug.cgi?id=96326
Alex Deucher alexdeucher@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- QA Contact|dri-devel@lists.freedesktop | |.org | Product|Mesa |DRI Component|Drivers/Gallium/radeonsi |DRM/Radeon Version|git |unspecified
--- Comment #3 from Alex Deucher alexdeucher@gmail.com --- Please attach your xorg log and dmesg output. What resolution and refresh rate are you using on your monitor? Also are you using radeon or amdgpu?
https://bugs.freedesktop.org/show_bug.cgi?id=96326
--- Comment #4 from Jan Ziak 0xe2.0x9a.0x9b@gmail.com --- Created attachment 125424 --> https://bugs.freedesktop.org/attachment.cgi?id=125424&action=edit dmesg (linux kernel git 2016-jul-29 with custom patches)
https://bugs.freedesktop.org/show_bug.cgi?id=96326
--- Comment #5 from Jan Ziak 0xe2.0x9a.0x9b@gmail.com --- Created attachment 125425 --> https://bugs.freedesktop.org/attachment.cgi?id=125425&action=edit Xorg.0.log (xorg-server-1.17.4, no custom patches)
https://bugs.freedesktop.org/show_bug.cgi?id=96326
--- Comment #6 from Jan Ziak 0xe2.0x9a.0x9b@gmail.com --- (In reply to Alex Deucher from comment #3)
Please attach your xorg log and dmesg output.
Upstream Linux kernel does not support variable mclk on R9 390. I enabled variable mclk by patching some code in drivers/gpu/drm/amd/amdgpu/ (mostly ci_dpm.c).
dmesg output contains some logging messages I added to my copy of Linux kernel source code.
What resolution and refresh rate are you using on your monitor?
1920x1080 60Hz
Also are you using radeon or amdgpu?
Currently amdgpu.ko, radeon.ko in the past.
https://bugs.freedesktop.org/show_bug.cgi?id=96326
--- Comment #7 from Alex Deucher alexdeucher@gmail.com --- (In reply to Jan Ziak from comment #6)
(In reply to Alex Deucher from comment #3)
Please attach your xorg log and dmesg output.
Upstream Linux kernel does not support variable mclk on R9 390. I enabled variable mclk by patching some code in drivers/gpu/drm/amd/amdgpu/ (mostly ci_dpm.c).
What patch(es) did you use?
dmesg output contains some logging messages I added to my copy of Linux kernel source code.
What resolution and refresh rate are you using on your monitor?
1920x1080 60Hz
Also are you using radeon or amdgpu?
Currently amdgpu.ko, radeon.ko in the past.
https://bugs.freedesktop.org/show_bug.cgi?id=96326
--- Comment #8 from Jan Ziak 0xe2.0x9a.0x9b@gmail.com --- (In reply to Alex Deucher from comment #7)
(In reply to Jan Ziak from comment #6)
(In reply to Alex Deucher from comment #3)
Please attach your xorg log and dmesg output.
Upstream Linux kernel does not support variable mclk on R9 390. I enabled variable mclk by patching some code in drivers/gpu/drm/amd/amdgpu/ (mostly ci_dpm.c).
What patch(es) did you use?
I added a function based on ci_dpm_force_state_mclk() in ci_dpm.c.
mask is 0x3.
---- static int ci_dpm_force_state_mclk_mask(struct amdgpu_device *adev, u32 mask) { struct ci_power_info *pi = ci_get_pi(adev);
if (!pi->mclk_dpm_key_disabled) { PPSMC_Result smc_result = amdgpu_ci_send_msg_to_smc_with_parameter(adev, PPSMC_MSG_MCLKDPM_SetEnabledMask, mask); printk("[atomsymbol] %s:%d: mask=0x%X, ok=%d\n", __FUNCTION__, __LINE__, mask, smc_result == PPSMC_Result_OK); if (smc_result != PPSMC_Result_OK) return -EINVAL; } return 0; } ----
/sys/class/drm/card?/device/power_dpm_force_performance_level is set to "auto".
https://bugs.freedesktop.org/show_bug.cgi?id=96326
Martin Peres martin.peres@free.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |MOVED Status|NEW |RESOLVED
--- Comment #9 from Martin Peres martin.peres@free.fr --- -- GitLab Migration Automatic Message --
This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.
You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/drm/amd/issues/720.
dri-devel@lists.freedesktop.org