LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Games (https://www.linuxquestions.org/questions/linux-games-33/)
-   -   Strange screen tearing problems on Arch Linux with RX 6600 XT (https://www.linuxquestions.org/questions/linux-games-33/strange-screen-tearing-problems-on-arch-linux-with-rx-6600-xt-4175734553/)

Chloroxite 03-04-2024 12:54 PM

Strange screen tearing problems on Arch Linux with RX 6600 XT
 
Hello! I've been experiencing an issue with my recently installed RX 6600 XT gpu where without any sort of vsync enabled in various games, it'd appear as though portions of the screen were running at a significantly lower framerate than other portions. When enabled it would sort of fix it but then introduce extreme input delay (probably to be expected). I've been wracking my brain on this issue for a few months now. I should note that I did not experience this issue on my old gpu (An RX 570 8gb), nor do I experience this issue under windows 11. This also does not appear to happen outside of 3D graphical applications.

Here's a comprehensive list of things I've tried, and their effects, to the best of my memory:
-Turning TearFree on: caused some other issues where the entire screen would appear to run at a lower fps than reported by fps trackers such as mango hud under some circumstances. Also seemed to have a tear line consistently near the top of the screen.
-Turning OFF TearFree AND allowpageflipping: seemed to have no effect.
-Changing proton versions: no effect.
-Enabling vsync: partially fixed, but introduced horrible input latency. Still has tear line near the top of the screen. Looking for alternatives.
-Cranking up framerate cap to be significantly higher than refresh rate: Seemingly hides the effect entirely when feasible, but not feasible for heavier games.
-Forcing RADV: Some games were already using this, doesn't seem to have an effect.
-Attempted launching games with different schedulers: Admittedly I'm not sure what I'm doing here, and the effect appears to be nil.
-Launching the game using mesa mailbox mode: for some strange reason has no effect. Doesn't even report mailbox present mode in mango.
-Verifying that xrandr is configured correctly: xrandr is already set to my monitor's native resolution and refresh rate.
-Playing under Wayland: same effect as tearfree.
-Disabling Picom (my compositer): No effect.
-Using AMDVLK: Problem persists.
-Trying an OpenGL app: Game runs with seemingly normal tearing behavior. (perhaps the problem lies with DXVK?)
-Using dxvk tearfree: Same as normal tearfree.

Additional details as requested:
-Resolution: 1920x1080 60hz
-Mesa Ver: 24.0.2-1 (obtained via pacman)

I've been looking everywhere on the internet for solutions and have come up entirely empty. Any suggestions would be very much appreciated. I'll update if I find a fix myself as well.

EDIT: I should clarify - this doesn't occur on on the window manager (i3) itself. Only once i'm in a 3D game does it start appearing.

business_kid 03-05-2024 09:27 AM

Hello, Chloroxite & welcome to LQ.

I have exactly the same card, RX 6600XT on Slackware-15.0 and it runs with no issues. I'm onI'm not a gamer, so I'm not pushing limits. This is a cheapo version of the RX6800XT. The phoronix review pointed to the narrower memory bus width (128 bit) vs the RX6800XT, and said you'd notice it really above 1080p. I'm using mesa-21.3.5 & running on 1920x1080@60 Hz.

Detail your settings, and mesa version, & compile details if you compiled it. What are you running at (e.g 1920x1080@60Hz), and does it still tear if you reduce settings?

There's also proprietary drivers IIRC and you can try those. Check if the script includes an uninstall option, and keep it around if it does.

Chloroxite 03-05-2024 12:26 PM

Quote:

Originally Posted by business_kid (Post 6487790)
Hello, Chloroxite & welcome to LQ.

I have exactly the same card, RX 6600XT on Slackware-15.0 and it runs with no issues. I'm onI'm not a gamer, so I'm not pushing limits. This is a cheapo version of the RX6800XT. The phoronix review pointed to the narrower memory bus width (128 bit) vs the RX6800XT, and said you'd notice it really above 1080p. I'm using mesa-21.3.5 & running on 1920x1080@60 Hz.

Detail your settings, and mesa version, & compile details if you compiled it. What are you running at (e.g 1920x1080@60Hz), and does it still tear if you reduce settings?

There's also proprietary drivers IIRC and you can try those. Check if the script includes an uninstall option, and keep it around if it does.

I am running on that same resolution and refresh rate. I installed mesa (version 1:24.0.2-1) from pacman, so it wasn't compiled.
I'm assuming when you refer to the proprietary drivers you're refering to AMDGPU and AMDVLK. I suppose I could give those a shot to see what happens.

Chloroxite 03-05-2024 03:42 PM

Updated the post with the results of some of the things you suggested/requested. I haven't tried lowering my resolution past my monitor's native resolution, not sure I want to, since even if that worked it'd kinda be a non-solution. It's interesting you mention you're using an older version of Mesa than I am, but im not even sure if it matters in this case, since using pure AMDVLK also didn't fix it.

business_kid 03-06-2024 06:42 AM

Don't update posts. Nobody remembers clearly except you what the problem was. Make new posts. It also leaves me looking like a twit asking you for details given in post 1.

The card is more than capable of that. AFAIK, it does 4K respectably, but performance suffers. The chip is the RX6800XT, AMD's top gpu chip of 2022/2023.

I'm on the same card, same output, and 5.15.63 kernel modules, but I don't have your issues. Try and find a 3D test online that we both can take. I wouldn't pay much heed to Mesa versions unless you're on the bleeding edge. There are AMD proprietary modules, but the standard kit should work.

While you're gaming, have htop open in a terminal so you can check the load. It might get you somewhere.

Chloroxite 03-06-2024 08:26 PM

https://www.matthew-x83.com/online/gpu-test.php
How's this? It's an in-browser test but im lazy. :D
If you have any better ideas im all ears.

business_kid 03-07-2024 06:52 AM

I tried your test in on fullscreen in Brave Browser-1.61. I saw no tearing. I adjusted the number of balls until the refresh rate dropped. I could hold 60Hz pretty well with 440 balls. I occasionally dropped to 59 or 58, but it pulled back to 60. 440 also worked with Chromium & firefox.

That was a zoom level of 125-150% which is comfortable for my eyes. I'm on a six core AMD5600 & PCIE-4.x, FWIW. How does yours do?

As for better ideas, phoronix.com have a test suite. That's a better idea. That's thorough and does have some comparative results.

Chloroxite 03-07-2024 03:58 PM

I forgot to run the test today, however I have noticed in my testing on games that my voltage is seemingly a bit low at times, at about 0.7... Surely enough if I open corectrl and set it to high performance mode, the voltage holds at a out 1.1/1.2v and the tearingnactually smoothes out. it might be my voltage.

Chloroxite 03-07-2024 05:02 PM

I've narrowed it down further. I believe what fixes it is doing
Quote:

echo "manual" > /sys/class/drm/card1/device/power_dpm_force_performance_level
echo "1" > /sys/class/drm/card1/device/pp_power_profile_mode
the first command enables editing of any kind.
The second command sets the gpu to use power profile "3D_FULLSCREEN".
On testing it after changing these settings, it's a night and day difference. Although there's still tearing even with vsync on, the frame stutter effect is entirely absent. If I wanted to I could be entirely content playing games like this.

But I *would* like to figure out how to entirely cure the tearing. Will update as I learn more.

EDIT: forgot to mention, I created a service to point to an .sh file that just runs these commands at startup.

business_kid 03-08-2024 04:45 AM

Quote:

Originally Posted by Chloroxite (Post 6488260)
I forgot to run the test today, however I have noticed in my testing on games that my voltage is seemingly a bit low at times, at about 0.7... Surely enough if I open corectrl and set it to high performance mode, the voltage holds at a out 1.1/1.2v and the tearingnactually smoothes out. it might be my voltage.

0.7V isn't enough. Depending on devices and current, ≅0.6V switches a device on, and ≅0.1V is dropped across it. In many cases, 0.7V is used for full turn-on. So the critical question is, where did you measure "the voltage?" What voltage is it. For reference, AMD CPUs can run as low as 0.8V in the core, but that's a carefully monitored thermal strategy where the voltage is internally adjusted. They live at over a volt normally.

Chloroxite 03-08-2024 03:26 PM

I measured voltage in mangohud while playing a game to test it, it was measured in millivolts. All that being said all the problems have been figured out. In short I used the commands:
Quote:

echo "manual" > /sys/class/drm/card1/device/power_dpm_force_performance_level
echo "3" > /sys/class/drm/card1/device/pp_dpm_mclk
echo "5" > /sys/class/drm/card1/device/pp_power_profile_mode
to set the gpu manual, set the vram to run at max clock, and to set the profile mode to "compute". I created an bash script to run it, and created a service out of it that always runs on startup. This has solved the stuttering effect. The tearing was simply solved by enabling tear free. I actually thank you for your advice, I for some reason never thought to look at specifically what my gpu was doing while playing a game. That pretty much gave me the information I needed to solve it.
Suppose I should mark the thread as solved now! Thanks again!


All times are GMT -5. The time now is 02:45 AM.