Screen tearing issues + weird behavior?


I try the command “xrandr --output HDMI-2-2 --mode 1920x1080 --rate 120 && xrandr --output DP-2-1 --mode 2560x1080 --rate 199.99” y’know to have BOTH monitors be the way I want it to be on xrandr BUT FOR SOME REASON IT CHOOSES BETWEEN TWO MONITORS ON WHICH ONE TO KEEP ON??? THIS LITERALLY NEVER HAPPENED TO ME ON ANOTHER DISTRO NOT EVEN GENTOO! I installed multiple Desktop environments with the installer and then I ran xfce4-display settings cause xfce was one of the ones I downloaded right? that’s when this weird behavior started!! also I have screen tearing issues on XFCE aswell as DWM!! Arandr looks normal!! I can take screenshots of the display that’s off it’s just that I cant SEE WHAT IS GOING ON BCEAUSE THE SCREEN IS OFF?(the long one) this is my neofetch also if anybody knows how to get the xfce4-screenshooer save to clipboard option back in dwm pls tell this is what the screen tear looks like the amdgpu is connecting to the two monitors that have the problem

Have you tried creating 20-amdgpu.conf

Section "Device"
        Identifier      "AMD Graphics"
        Driver          "amdgpu"
        Option          "TearFree" "true"

Try this and reboot. Not sure if you have to do anything because of multiple monitors?
Maybe this doesn’t help? :man_shrugging:

Edit: It is my understanding amdgpu is automatically set for screen tearing. But maybe it helps or not?
My system shows this without any changes but I only use one monitor also on desktop.

[ricklinux@rick-ms7c37 ~]$ cd /etc/X11
[ricklinux@rick-ms7c37 X11]$ xrandr --verbose | grep "TearFree"
        TearFree: auto 
        TearFree: auto 
        TearFree: auto 
        TearFree: auto 
        TearFree: auto 
[ricklinux@rick-ms7c37 X11]$ 

Edit2: You can also set it automatically so I’m not sure if the conf file does anything?

xrandr --output *output* --set TearFree on

Where output should look like DisplayPort-0 or HDMI-A-0 and can be acquired by running xrandr -q.

xrandr --verbose | grep “TearFree” doesn’t have any output

xrandr --output output --set TearFree on gives me an error saying

X Error of failed request: BadName (named color or font does not exist)
Major opcode of failed request: 140 (RANDR)
Minor opcode of failed request: 11 (RRQueryOutputProperty)
Serial number of failed request: 72
Current serial number in output stream: 72

Not sure how i can help. I do see your output shows 3 different graphics. Intel, Nvidia and AMD. I’m not sure how you want to use it nor do i know what the hardware is and how it works. I assume it is a laptop with Intel and Nvidia mobile graphics plus AMD Radeon. I see it’s a predator G3. So i don’t know how the graphics works on it since it is hybrid. If you are using another external monitor some laptops automatically switch to the dedicated gpu. I assume your dedicated gpu is radeon? I think you need to first know how your system works with respect to it’s hardware. Then set it up accordingly. I’m not sure how you are switching graphics.


Edit: It is also my understanding the the Predator G3 Helios 300 doesn’t support video output on the usb-c port. Not sure how you have the monitors connected.

To fix screen tearing with NVIDIA cards, simply fire up the NVIDIA X Server Settings software. In it, navigate to X Server Display Configuration > Advanced.

There you will find an unchecked option: Force Full Composition Pipeline. Enable it and restart your Linux desktop.

Additionally, you might want to create an auto-start application with the command:

nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 {ForceFullCompositionPipeline=On}"

work for me so far i can play games if this help

If you have AMD GPU the easiest way to set tear free is through xrandr:

xrandr --output < your-display > --set TearFree on

example: xrandr --output DisplayPort-0 --set TearFree on
to disable: xrandr --output DisplayPort-0 --set TearFree off

I personally prefer Picom.