You are not logged in.
I'm on a laptop with 2 GPUs, and when I connect it to my 144hz external display, wayland seems to be running at only 72hz. The mouse clearly moves at 72Hz, 3d apps like glxgears vsync to 72hz. Issue is that the display is set to 144hz and everything i can check says its running at 144hz even though it clearly isnt. It's also clearly outputting at 144hz, even though everything is running at half that. My laptop display, which is connected to the integrated gpu, outputs at 144hz just fine.
Is there a way to fix this? I can't use X11 on this laptop for several reasons, so I'm hoping I can find a way to fix this so that I can use my monitor at its max refresh rate. Using KDE Plasma, if it helps.
Last edited by queenbiscuit311 (2023-08-17 13:35:48)
Offline
Try exporting KWIN_FORCE_SW_CURSOR=1 like in this thread: https://bbs.archlinux.org/viewtopic.php?id=282219
Which GPUs are involved here?
Offline
That solution does not appear to have done anything as far as I can tell, unless I did it wrong.
The GPUs involved are whatever iGPU is in an intel i7-11800H (uhd 630 probably) and an nvidia rtx 3060 laptop gpu.
Offline
I've found that when the refresh rate is lower, like 60Hz, the refresh rate works properly, but whenever something moving is displaying on the external display, it lags things on all displays, including the mouse.
Offline
3d apps like glxgears vsync to 72hz
Is that the actual ourtput of glxgears or one of your "clearly" perceptions?
Also, being an xwayland client, it's maybe not the best possible testcase (unfortunately eglgears doesn't seem to prints the FPS)
Let's first see where the outputs are wired and what chip you're running on and what kwin thinks about the situation
head /sys/class/drm/card*/edid
eglinfo -B
qdbus org.kde.KWin /KWin supportInformation
I can't use X11 on this laptop for several reasons
Which are "clearly" all made-up BS: you don't want to use X11 and that's fine, but I'll bet your right arm that you can use it for testing purposes and that's what I'd suggest next, so buckle up.
Optimus/wayland is still premature and you might also want to test the performance of various compositors itr (sway, weston, gnome)
Offline
Is that the actual ourtput of glxgears or one of your "clearly" perceptions?
That's based on fps printouts of the apps I've tested. I'll try seeing if I can test an app that has an fps printout that runs on wayland.
Which are "clearly" all made-up BS
I don't see why I wouldn't just say "I don't want to use X11" if that's what I meant. It has a lag spike issue when optimus is enabled that makes the computer nigh unusable, and also doesn't work properly with my monitor setup even if I could get around that. It does work well enough to do some testing, but "works well enough to manage if i have to" and "works well enough to actually daily drive" are two very very different things. Trust me, I am not using wayland on nvidia with optimus by choice.
Anyways, here's the output of those commands:
$ head /sys/class/drm/card*/edid
==> /sys/class/drm/card0-DP-3/edid <==
PT1h1|EhE|aha|:▒q8-@X,EVP!GYGM6HA42296027G2G4
0!
f'L?# m▒07p8@▒ 5VP!op8@@0 5VP![p85@0 5VP!*Dp8'@0 5VP!▒
==> /sys/class/drm/card0-DP-4/edid <==
==> /sys/class/drm/card0-eDP-2/edid <==
==> /sys/class/drm/card0-HDMI-A-1/edid <==
==> /sys/class/drm/card1-DP-1/edid <==
==> /sys/class/drm/card1-DP-2/edid <==
==> /sys/class/drm/card1-eDP-1/edid <==
&xpuXZ) PTΏp8@0 ~▒;p8@0 ~▒<%
B173HAN04.9
$ eglinfo -B
GBM platform:
eglinfo: eglInitialize failed
Wayland platform:
EGL API version: 1.5
EGL vendor string: Mesa Project
EGL version string: 1.5
EGL client APIs: OpenGL OpenGL_ES
OpenGL core profile vendor: Intel
OpenGL core profile renderer: Mesa Intel(R) UHD Graphics (TGL GT1)
OpenGL core profile version: 4.6 (Core Profile) Mesa 23.1.3
OpenGL core profile shading language version: 4.60
OpenGL compatibility profile vendor: Intel
OpenGL compatibility profile renderer: Mesa Intel(R) UHD Graphics (TGL GT1)
OpenGL compatibility profile version: 4.6 (Compatibility Profile) Mesa 23.1.3
OpenGL compatibility profile shading language version: 4.60
OpenGL ES profile vendor: Intel
OpenGL ES profile renderer: Mesa Intel(R) UHD Graphics (TGL GT1)
OpenGL ES profile version: OpenGL ES 3.2 Mesa 23.1.3
OpenGL ES profile shading language version: OpenGL ES GLSL ES 3.20
X11 platform:
EGL API version: 1.5
EGL vendor string: Mesa Project
EGL version string: 1.5
EGL client APIs: OpenGL OpenGL_ES
OpenGL core profile vendor: Intel
OpenGL core profile renderer: Mesa Intel(R) UHD Graphics (TGL GT1)
OpenGL core profile version: 4.6 (Core Profile) Mesa 23.1.3
OpenGL core profile shading language version: 4.60
OpenGL compatibility profile vendor: Intel
OpenGL compatibility profile renderer: Mesa Intel(R) UHD Graphics (TGL GT1)
OpenGL compatibility profile version: 4.6 (Compatibility Profile) Mesa 23.1.3
OpenGL compatibility profile shading language version: 4.60
OpenGL ES profile vendor: Intel
OpenGL ES profile renderer: Mesa Intel(R) UHD Graphics (TGL GT1)
OpenGL ES profile version: OpenGL ES 3.2 Mesa 23.1.3
OpenGL ES profile shading language version: OpenGL ES GLSL ES 3.20
Surfaceless platform:
EGL API version: 1.5
EGL vendor string: NVIDIA
EGL version string: 1.5
EGL client APIs: OpenGL_ES OpenGL
OpenGL core profile vendor: NVIDIA Corporation
OpenGL core profile renderer: NVIDIA GeForce RTX 3060 Laptop GPU/PCIe/SSE2
OpenGL core profile version: 4.6.0 NVIDIA 535.54.03
OpenGL core profile shading language version: 4.60 NVIDIA
OpenGL compatibility profile vendor: NVIDIA Corporation
OpenGL compatibility profile renderer: NVIDIA GeForce RTX 3060 Laptop GPU/PCIe/SSE2
OpenGL compatibility profile version: 4.6.0 NVIDIA 535.54.03
OpenGL compatibility profile shading language version: 4.60 NVIDIA
OpenGL ES profile vendor: NVIDIA Corporation
OpenGL ES profile renderer: NVIDIA GeForce RTX 3060 Laptop GPU/PCIe/SSE2
OpenGL ES profile version: OpenGL ES 3.2 NVIDIA 535.54.03
OpenGL ES profile shading language version: OpenGL ES GLSL ES 3.20
Device platform:
Device #0:
Platform Device platform:
EGL API version: 1.5
EGL vendor string: NVIDIA
EGL version string: 1.5
EGL client APIs: OpenGL_ES OpenGL
OpenGL core profile vendor: NVIDIA Corporation
OpenGL core profile renderer: NVIDIA GeForce RTX 3060 Laptop GPU/PCIe/SSE2
OpenGL core profile version: 4.6.0 NVIDIA 535.54.03
OpenGL core profile shading language version: 4.60 NVIDIA
OpenGL compatibility profile vendor: NVIDIA Corporation
OpenGL compatibility profile renderer: NVIDIA GeForce RTX 3060 Laptop GPU/PCIe/SSE2
OpenGL compatibility profile version: 4.6.0 NVIDIA 535.54.03
OpenGL compatibility profile shading language version: 4.60 NVIDIA
OpenGL ES profile vendor: NVIDIA Corporation
OpenGL ES profile renderer: NVIDIA GeForce RTX 3060 Laptop GPU/PCIe/SSE2
OpenGL ES profile version: OpenGL ES 3.2 NVIDIA 535.54.03
OpenGL ES profile shading language version: OpenGL ES GLSL ES 3.20
Device #1:
Platform Device platform:
EGL API version: 1.5
EGL vendor string: Mesa Project
EGL version string: 1.5
EGL client APIs: OpenGL OpenGL_ES
OpenGL core profile vendor: Intel
OpenGL core profile renderer: Mesa Intel(R) UHD Graphics (TGL GT1)
OpenGL core profile version: 4.6 (Core Profile) Mesa 23.1.3
OpenGL core profile shading language version: 4.60
OpenGL compatibility profile vendor: Intel
OpenGL compatibility profile renderer: Mesa Intel(R) UHD Graphics (TGL GT1)
OpenGL compatibility profile version: 4.6 (Compatibility Profile) Mesa 23.1.3
OpenGL compatibility profile shading language version: 4.60
OpenGL ES profile vendor: Intel
OpenGL ES profile renderer: Mesa Intel(R) UHD Graphics (TGL GT1)
OpenGL ES profile version: OpenGL ES 3.2 Mesa 23.1.3
OpenGL ES profile shading language version: OpenGL ES GLSL ES 3.20
Device #2:
Platform Device platform:
libEGL warning: egl: failed to create dri2 screen
libEGL warning: egl: failed to create dri2 screen
eglinfo: eglInitialize failed
Device #3:
Platform Device platform:
EGL API version: 1.5
EGL vendor string: Mesa Project
EGL version string: 1.5
EGL client APIs: OpenGL OpenGL_ES
OpenGL core profile vendor: Mesa
OpenGL core profile renderer: llvmpipe (LLVM 15.0.7, 256 bits)
OpenGL core profile version: 4.5 (Core Profile) Mesa 23.1.3
OpenGL core profile shading language version: 4.50
OpenGL compatibility profile vendor: Mesa
OpenGL compatibility profile renderer: llvmpipe (LLVM 15.0.7, 256 bits)
OpenGL compatibility profile version: 4.5 (Compatibility Profile) Mesa 23.1.3
OpenGL compatibility profile shading language version: 4.50
OpenGL ES profile vendor: Mesa
OpenGL ES profile renderer: llvmpipe (LLVM 15.0.7, 256 bits)
OpenGL ES profile version: OpenGL ES 3.2 Mesa 23.1.3
OpenGL ES profile shading language version: OpenGL ES GLSL ES 3.20
$ qdbus org.kde.KWin /KWin supportInformation
KWin Support Information:
The following information should be used when requesting support on e.g. https://forum.kde.org.
It provides information about the currently running instance, which options are used,
what OpenGL driver and which effects are running.
Please post the information provided underneath this introductory text to a paste bin service
like https://paste.kde.org instead of pasting into support threads.
==========================
Version
=======
KWin version: 5.27.6
Qt Version: 5.15.10
Qt compile version: 5.15.10
XCB compile version: 1.15
Operation Mode: Xwayland
Build Options
=============
KWIN_BUILD_DECORATIONS: yes
KWIN_BUILD_TABBOX: yes
KWIN_BUILD_ACTIVITIES: yes
HAVE_X11_XCB: yes
HAVE_EPOXY_GLX: yes
X11
===
Vendor: The X.Org Foundation
Vendor Release: 12301002
Protocol Version/Revision: 11/0
SHAPE: yes; Version: 0x11
RANDR: yes; Version: 0x14
DAMAGE: yes; Version: 0x11
Composite: yes; Version: 0x4
RENDER: yes; Version: 0xb
XFIXES: yes; Version: 0x50
SYNC: yes; Version: 0x31
GLX: yes; Version: 0x0
Decoration
==========
Plugin: org.kde.breeze
Theme:
Plugin recommends border size: None
onAllDesktopsAvailable: false
alphaChannelSupported: true
closeOnDoubleClickOnMenu: false
decorationButtonsLeft: 0, 2, 8, 9, 7, 1
decorationButtonsRight: 6, 3, 4, 5
borderSize: 0
gridUnit: 10
font: Noto Sans,10,-1,0,50,0,0,0,0,0
smallSpacing: 2
largeSpacing: 10
Output backend
==============
Name: DRM
Active: true
Atomic Mode Setting on GPU 0: true
Atomic Mode Setting on GPU 1: true
Cursor
======
themeName: DiamOS
themeSize: 32
Options
=======
focusPolicy: 0
xwaylandCrashPolicy:
xwaylandMaxCrashCount: 3
nextFocusPrefersMouse: false
clickRaise: true
autoRaise: false
autoRaiseInterval: 0
delayFocusInterval: 0
shadeHover: false
shadeHoverInterval: 250
separateScreenFocus: false
activeMouseScreen: true
placement:
activationDesktopPolicy: 0
focusPolicyIsReasonable: true
borderSnapZone: 10
windowSnapZone: 10
centerSnapZone: 0
snapOnlyWhenOverlapping: false
rollOverDesktops: false
focusStealingPreventionLevel: 1
operationTitlebarDblClick: 5000
operationMaxButtonLeftClick: 5000
operationMaxButtonMiddleClick: 5015
operationMaxButtonRightClick: 5014
commandActiveTitlebar1: 0
commandActiveTitlebar2: 28
commandActiveTitlebar3: 2
commandInactiveTitlebar1: 4
commandInactiveTitlebar2: 28
commandInactiveTitlebar3: 2
commandWindow1: 7
commandWindow2: 8
commandWindow3: 8
commandWindowWheel: 28
commandAll1: 10
commandAll2: 3
commandAll3: 14
keyCmdAllModKey: 16777250
condensedTitle: false
electricBorderMaximize: true
electricBorderTiling: true
electricBorderCornerRatio: 0.25
borderlessMaximizedWindows: false
killPingTimeout: 5000
hideUtilityWindowsForInactive: true
compositingMode: 1
useCompositing: true
hiddenPreviews: 1
glSmoothScale: 2
glStrictBinding: false
glStrictBindingFollowsDriver: true
glPreferBufferSwap: 101
glPlatformInterface: 2
windowsBlockCompositing: true
latencyPolicy:
renderTimeEstimator:
allowTearing: true
Screen Edges
============
desktopSwitching: false
desktopSwitchingMovingClients: false
cursorPushBackDistance: 1x1
timeThreshold: 150
reActivateThreshold: 350
actionTopLeft: 0
actionTop: 0
actionTopRight: 0
actionRight: 0
actionBottomRight: 0
actionBottom: 0
actionBottomLeft: 0
actionLeft: 0
Screens
=======
Active screen follows mouse: yes
Number of Screens: 2
Screen 0:
---------
Name: eDP-1
Enabled: 1
Geometry: 0,0,1920x1080
Scale: 1
Refresh Rate: 144028
Adaptive Sync: never
Screen 1:
---------
Name: DP-3
Enabled: 1
Geometry: 1920,0,1920x1080
Scale: 1
Refresh Rate: 144000
Adaptive Sync: automatic
Compositing
===========
Compositing is active
Compositing Type: OpenGL
OpenGL vendor string: Intel
OpenGL renderer string: Mesa Intel(R) UHD Graphics (TGL GT1)
OpenGL version string: 4.6 (Core Profile) Mesa 23.1.3
OpenGL platform interface: EGL
OpenGL shading language version string: 4.60
Driver: Intel
GPU class: Tiger Lake
OpenGL version: 4.6
GLSL version: 4.60
Mesa version: 23.1.3
Linux kernel version: 6.3.9
Direct rendering: Requires strict binding: no
GLSL shaders: yes
Texture NPOT support: yes
Virtual Machine: no
OpenGL 2 Shaders are used
Loaded Effects:
---------------
colorpicker
outputlocator
screenshot
screenedge
zoom
blur
contrast
kwin4_effect_logout
kwin4_effect_sessionquit
kwin4_effect_login
slidingpopups
kwin4_effect_windowaperture
slide
kwin4_effect_morphingpopups
kwin4_effect_squash
kwin4_effect_maximize
kwin4_effect_fadingpopups
kwin4_effect_fullscreen
kwin4_effect_scale
kwin4_effect_frozenapp
kwin4_effect_dialogparent
desktopgrid
highlightwindow
overview
tileseditor
windowview
blendchanges
startupfeedback
kscreen
screentransform
Currently Active Effects:
-------------------------
blur
contrast
Effect Settings:
----------------
colorpicker:
outputlocator:
screenshot:
screenedge:
zoom:
zoomFactor: 1.2
mousePointer: 0
mouseTracking: 0
focusTrackingEnabled: false
textCaretTrackingEnabled: false
focusDelay: 350
moveFactor: 20
targetZoom: 1
blur:
contrast:
kwin4_effect_logout:
pluginId: kwin4_effect_logout
isActiveFullScreenEffect: false
kwin4_effect_sessionquit:
pluginId: kwin4_effect_sessionquit
isActiveFullScreenEffect: false
kwin4_effect_login:
pluginId: kwin4_effect_login
isActiveFullScreenEffect: false
slidingpopups:
slideInDuration: 150
slideOutDuration: 250
kwin4_effect_windowaperture:
pluginId: kwin4_effect_windowaperture
isActiveFullScreenEffect: false
slide:
horizontalGap: 45
verticalGap: 20
slideBackground: true
kwin4_effect_morphingpopups:
pluginId: kwin4_effect_morphingpopups
isActiveFullScreenEffect: false
kwin4_effect_squash:
pluginId: kwin4_effect_squash
isActiveFullScreenEffect: false
kwin4_effect_maximize:
pluginId: kwin4_effect_maximize
isActiveFullScreenEffect: false
kwin4_effect_fadingpopups:
pluginId: kwin4_effect_fadingpopups
isActiveFullScreenEffect: false
kwin4_effect_fullscreen:
pluginId: kwin4_effect_fullscreen
isActiveFullScreenEffect: false
kwin4_effect_scale:
pluginId: kwin4_effect_scale
isActiveFullScreenEffect: false
kwin4_effect_frozenapp:
pluginId: kwin4_effect_frozenapp
isActiveFullScreenEffect: false
kwin4_effect_dialogparent:
pluginId: kwin4_effect_dialogparent
isActiveFullScreenEffect: false
desktopgrid:
activeView:
gridRows: 1
gridColumns: 1
animationDuration: 300
layout: 1
partialActivationFactor: 0
gestureInProgress: false
showAddRemove: true
desktopNameAlignment: 0
desktopLayoutMode: 0
customLayoutRows: 2
highlightwindow:
overview:
activeView:
animationDuration: 300
layout: 1
ignoreMinimized: false
blurBackground: true
partialActivationFactor: 0
gestureInProgress: false
searchText:
tileseditor:
activeView:
animationDuration: 200
windowview:
activeView:
animationDuration: 300
layout: 1
ignoreMinimized: false
mode: 957624032
partialActivationFactor: 0
gestureInProgress: false
searchText:
blendchanges:
startupfeedback:
type: 1
kscreen:
screentransform:
Loaded Plugins:
---------------
kwin5_plugin_buttonrebinds
kwin5_plugin_colord
kwin5_plugin_krunner
kwin5_plugin_nightcolor
kwin5_plugin_screencast
Available Plugins:
------------------
kwin5_plugin_buttonrebinds
kwin5_plugin_colord
kwin5_plugin_krunner
kwin5_plugin_nightcolor
kwin5_plugin_screencast
As far as I'm aware, the internal display of my laptop is wired to the iGPU, all of the physical outputs are wired to the nvidia gpu, and all outputs from usb c dp alt mode connections are wired to the iGPU.
Last edited by queenbiscuit311 (2023-06-29 09:58:38)
Offline
After testing, running eglgears_wayland with mangohud to get an fps counter yields the same result, locked at 72fps.
Offline
It has a lag spike issue when optimus is enabled that makes the computer nigh unusable
Don't use xf86-video-intel
doesn't work properly
is not a usefulproblem description, https://bbs.archlinux.org/viewtopic.php?id=57855
Operation Mode: Xwayland
This all looks very much as if kwin would run as xwayland application, not as a wayland compositor.
https://wiki.archlinux.org/title/KDE#Starting_Plasma
How exactly do you start the session?
Offline
Don't use xf86-video-intel
I am not using it.
not a usefulproblem description
I didn't provide a description because it's not at all what this post is about, unless you're saying it may be related.
This all looks very much as if kwin would run as xwayland application, not as a wayland compositor.
I see. That's strange, if that's the case I have no idea why it would be doing that.
How exactly do you start the session?
I'm just using sddm. I can attempt to start it directly from the terminal. In addition to that I'm going to try another DE and see if the problem persists, that should hopefully help determine if this is a kwin problem.
Offline
If it's not the kwin/xwayland situation:
unless you're saying it may be related
You're getting some sort of double vsync, if the symptoms on X11 are anything like that, they're probably relevant, yes.
Offline
you're getting some sort of double vsync, if the symptoms on X11 are anything like that, they're probably relevant, yes.
The issue that I was experiencing on X11 was that I have 2 144hz and one 75hz monitor. This meant that if I wanted vsync while using a compositor of any kind, everything except the mouse cursor would display at 75Hz when the compositor was enabled, even though vsync was working properly. From searching, all I found basically amounted to "X11 wasn't designed for that" and not much else.
I tried gnome, and while the mouse did move at 144Hz, everything else still ran at 72 and when something is moving on the screen, the mouse lowers to 72fps as well.
Offline
So what's the deal w/ the 75Hz output in the wayland context??
This seems like an incredibly relevant omission wrt your original post.
From searching, all I found basically amounted to "X11 wasn't designed for that" and not much else.
PSA: the internet is full of shit.
Which GPUs are those 3 outputs attached to?
the mouse lowers to 72fps as well
PSA #2: you cannot actually see that. You might rather see some artifacts, but we still lack any human to demonstrate perception of FPS > 75Hz and that's rare AF to begin with, most people can't separate 50Hz from 60Hz.
The only thing that counts here is what the system actually reports, everthing else is esoteric delusion - or actual artifacts lowering the FPS *way* below that.
Let me be very clear: you cannot see whether sth. is moving at 144Hz or 72Hz, if you could, you'd be subject to various 3-letter agency experiments right now. Get that out of your head.
If you /are/ seeing something, that's an artifact that can come from god knows where (eg. CPU overload could limit the input event processing)
As evidence: unless you explicitly configure the system to use a software cursor, the mouse is painted outside the compositor, directly into the framebuffer, whether or not "something is moving on the screen" has no impact on that whatsoever.
Offline
So what's the deal w/ the 75Hz output in the wayland context??
Nothing's wrong with it on wayland, that's part of the reason why i'm trying to use it over x11. Regardless of which GPU the display is connected to it runs at a proper framerate as far as I can tell, but I'd have to do some actual testing to make sure it's not also running at 72hz or something. It only seems to be an issue on the high refresh rate display when connected to the nvidia gpu.
PSA #2: you cannot actually see that. You might rather see some artifacts, but we still lack any human to demonstrate perception of FPS > 75Hz and that's rare AF to begin with, most people can't separate 50Hz from 60Hz.
The only thing that counts here is what the system actually reports, everthing else is esoteric delusion - or actual artifacts lowering the FPS *way* below that.
Let me be very clear: you cannot see whether sth. is moving at 144Hz or 72Hz, if you could, you'd be subject to various 3-letter agency experiments right now. Get that out of your head.
If you /are/ seeing something, that's an artifact that can come from god knows where (eg. CPU overload could limit the input event processing)
I don't want to sound rude, but I don't know where you heard all of that because I can promise you, as someone who has a 144hz monitor right next to a 75hz one right now, I can absolutely tell the difference. You are currently telling me the thing that I am seeing on my computer with my eyes right now doesn't exist. I can tell you that the mouse is running at 72fps, because I have another 144hz monitor right next to it and using my eyes I can see that the mouse is smoother and that there are physically more frames on screen. Could it be moving at some framerate slightly off from 72fps? Maybe, i dont know, but I can at least tell you it's similar enough to how everything else on the display moves that I can't tell the difference, and if the mouse was moving at 144hz while everything else was at 72 I would be able to tell. I know it's not something lower because I know what 60Hz and below looks like and I can assure you it's running above that. I can also tell because I move the mouse on the screen, then turn on glxgears and move it again on any monitor and its clearly moving sub 100fps to my eyes. Maybe I'm some weird mutant or something but idk what to tell you other than I absolutely can tell the difference especially when I have 2 other monitors to compare against on the same desk. Idk what to say other than please stop trying to tell me what I am and am not seeing with my own eyes on my own computer. I can take a slow mo video of my screen or something if that'll convince you. I don't think arguing about it gets me any closer to trying to figure this out.
As evidence: unless you explicitly configure the system to use a software cursor, the mouse is painted outside the compositor, directly into the framebuffer, whether or not "something is moving on the screen" has no impact on that whatsoever.
I mean yeah, that makes sense and that's what I would think and expect too, except that what I am seeing on the computer is in direct contradiction to that. I don't know why, and that's what I'm posting here to try to find out. Clearly something is not working correctly at all. The fact that on KDE it's acting like a software cursor may indicate a KDE problem or something, because I don't have it set to use a software cursor right now AFAIK.
Last edited by queenbiscuit311 (2023-07-01 00:43:01)
Offline
Update for anyone finding this post in the future:
I was screwing around with KDE Plasma settings, and since I was just throwing things at the wall to see what stuck, I set "Adaptive sync" on my monitor from "Automatic" to "Always". This has mostly fixed the issues I've described in this thread, but not fully. Wayland is now displaying at well over half refresh rate, but it seems like it's incapable of vsyncing, leading to a constantly fluctuating framerate below the target of 144Hz. By enabling my monitor's gsync refresh rate counter, I can see that the monitor's refresh is constantly changing as well. It's still much, much better than being locked to 72fps though, and im vsyncing to 90-138 instead. And since it's using gsync, theres no sccreen tearing even though vsync seems entirely busted.
The issue with this solution is that setting "Adaptive sync" to always just enables free/gsync/whatever your display uses. That means that if your monitor doesnt have variable refresh rate or your gpu doesnt support vrr or something, you seem to be SOL. This also doesn't fix the other wayland issues im having that seem to be directly related to this one.
All in all, it seems like nvidia just needs to fix their damn drivers. They're the lowest common denominator here. I'm going to open a bug report and pray someone tries to fix it (they wont).
Offline
Update: problem FINALLY solved on KDE Plasma by adding "KWIN_DRM_USE_MODIFIERS=0" to /etc/environment and restarting. Instantly fixed every refresh rate and vsync issue I was having. Credit to this post on r/kde: https://www.reddit.com/r/kde/comments/1 … sync_look/
I'm not sure if this has any secondary impacts yet, but I have not noticed any so far. This seems to circumvent whatever is busted in the NVIDIA drivers that causes this problem. I'm not sure how to solve it on other DEs, however, but there might be similar options that can be set in them.
Offline