Bug 376116

Summary: Output limited to 60 FPS?
Product: [Plasma] kwin Reporter: grmat
Component: scene-openglAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED WORKSFORME    
Severity: normal CC: edgbla, grizzlyuser, woroof
Priority: NOR    
Version First Reported In: 5.9.0   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:
Attachments: requested KWin support info
kwin support info (60 fps)
kwin support info (120 fps)
kwin support info (GLX)

Description grmat 2017-02-07 01:03:36 UTC
The graphical desktop output feels locked at 60 FPS, even when the screen supports a higher refresh rate. Screen is set to 90, 120 or 144 Hz and only the hardware cursor seems to benefit from that. Using the plasma desktop effect to show the current fps does confirm the lock just above 60 (~62).

This results in noticeable stuttering and non smooth output. It might be related to #353038, additional tests to confirm are scrolling, moving windows or open a browser and visit http://testufo.com/#test=photo&photo=quebec.jpg

Also, setting V-Sync to "never" seems not to be accepted. This might explain stuttering. I can't observe tearing as long as compositing is enabled. When disabled (alt+shift+f12 or disable on start), tearing is clearly visible.

I'm using Arch, but also can confirm the problem exists on Neon. Using xf86-video-ati, -amdgpu or the generic modesetting driver. Also tried en-/disabling TearFree and PageFlip options.
Comment 1 Martin Flöser 2017-02-07 06:00:08 UTC
Please provide the output of:
qdbus org.kde.KWin /KWin supportInformation
Comment 2 grmat 2017-02-07 12:37:29 UTC
Created attachment 103880 [details]
requested KWin support info

attached output of `qdbus org.kde.KWin /KWin supportInformation`
Comment 3 grmat 2017-02-07 15:24:26 UTC
Created attachment 103883 [details]
kwin support info (60 fps)

sorry, the previous output was wrong (fell back to actual 60 Hz on the monitor after unplugging)
Comment 4 grmat 2017-02-07 15:24:57 UTC
Created attachment 103884 [details]
kwin support info (120 fps)

Found info about MaxFPS and RefreshRate options in kwinrc, set both to 120 and it works.

support info also outputs the correct maxFpsInterval (8333333) and refreshRate (120). vBlankTime is still at 6000000, though.
Comment 5 Martin Flöser 2017-02-07 18:33:47 UTC
> OpenGL platform interface: EGL

EGL is unsupported on X11 and we removed this gui setting some time ago. It could be an explanation why the auto-detection didn't work.
Comment 6 grmat 2017-02-07 23:59:18 UTC
I don't know where this setting came from. But I can confirm the problem exists with an empty/fresh kwinrc. I've tried this before opening the bug here, obviously.
Showing 'GLX' then, still locked at 60.
Comment 7 Martin Flöser 2017-02-08 05:57:54 UTC
Can you please attach the supportInformation for the glx case?
Comment 8 grmat 2017-02-08 12:19:51 UTC
Created attachment 103900 [details]
kwin support info (GLX)
Comment 9 grmat 2017-02-08 12:21:55 UTC
Added support info with untouched kwinrc
Comment 10 Martin Flöser 2017-02-08 17:03:09 UTC
Version
=======
KWin version: 5.9.0
Qt Version: 5.8.0
Qt compile version: 5.8.0
XCB compile version: 1.12

Operation Mode: X11 only

Build Options
=============
KWIN_BUILD_DECORATIONS: yes
KWIN_BUILD_TABBOX: yes
KWIN_BUILD_ACTIVITIES: yes
HAVE_INPUT: yes
HAVE_DRM: yes
HAVE_GBM: yes
HAVE_X11_XCB: yes
HAVE_EPOXY_GLX: yes
HAVE_WAYLAND_EGL: yes

X11
===
Vendor: The X.Org Foundation
Vendor Release: 11901000
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: 
Blur: 0
onAllDesktopsAvailable: false
alphaChannelSupported: true
closeOnDoubleClickOnMenu: false
decorationButtonsLeft: 0, 1, 2
decorationButtonsRight: 6, 3, 4, 5
borderSize: 3
gridUnit: 10
font: Noto Sans,10,-1,5,50,0,0,0,0,0,Regular
smallSpacing: 2
largeSpacing: 10

Options
=======
focusPolicy: 0
nextFocusPrefersMouse: false
clickRaise: true
autoRaise: false
autoRaiseInterval: 0
delayFocusInterval: 0
shadeHover: false
shadeHoverInterval: 250
separateScreenFocus: false
placement: 4
focusPolicyIsReasonable: true
borderSnapZone: 10
windowSnapZone: 10
centerSnapZone: 0
snapOnlyWhenOverlapping: false
rollOverDesktops: true
focusStealingPreventionLevel: 1
legacyFullscreenSupport: false
operationTitlebarDblClick: 5000
operationMaxButtonLeftClick: 5000
operationMaxButtonMiddleClick: 5015
operationMaxButtonRightClick: 5014
commandActiveTitlebar1: 0
commandActiveTitlebar2: 30
commandActiveTitlebar3: 2
commandInactiveTitlebar1: 4
commandInactiveTitlebar2: 30
commandInactiveTitlebar3: 2
commandWindow1: 7
commandWindow2: 8
commandWindow3: 8
commandWindowWheel: 31
commandAll1: 10
commandAll2: 3
commandAll3: 14
keyCmdAllModKey: 16777251
showGeometryTip: false
condensedTitle: false
electricBorderMaximize: true
electricBorderTiling: true
electricBorderCornerRatio: 0.25
borderlessMaximizedWindows: false
killPingTimeout: 5000
hideUtilityWindowsForInactive: true
inactiveTabsSkipTaskbar: false
autogroupSimilarWindows: false
autogroupInForeground: true
compositingMode: 1
useCompositing: true
compositingInitialized: true
hiddenPreviews: 1
glSmoothScale: 2
xrenderSmoothScale: false
maxFpsInterval: 16666666
refreshRate: 0
vBlankTime: 6000000
glStrictBinding: true
glStrictBindingFollowsDriver: true
glCoreProfile: false
glPreferBufferSwap: 101
glPlatformInterface: 1
windowsBlockCompositing: 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
=======
Multi-Head: no
Active screen follows mouse:  no
Number of Screens: 1

Screen 0:
---------
Name: DP-1
Geometry: 0,0,2560x1440
Refresh Rate: 119.881


Compositing
===========
Compositing is active
Compositing Type: OpenGL
OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD HAWAII (DRM 2.48.0 / 4.9.7-1-ARCH, LLVM 3.9.1)
OpenGL version string: 3.0 Mesa 13.0.4
OpenGL platform interface: GLX
OpenGL shading language version string: 1.30
Driver: Unknown
GPU class: Unknown
OpenGL version: 3.0
GLSL version: 1.30
Mesa version: 13.0.4
X server version: 1.19.1
Linux kernel version: 4.9.7
Direct rendering: Requires strict binding: yes
GLSL shaders:  yes
Texture NPOT support:  yes
Virtual Machine:  no
OpenGL 2 Shaders are used
Painting blocks for vertical retrace:  no

Loaded Effects:
---------------
zoom
slidingpopups
kwin4_effect_login
slide
screenshot
kwin4_effect_windowaperture
kwin4_effect_translucency
minimizeanimation
desktopgrid
colorpicker
kwin4_effect_morphingpopups
kwin4_effect_maximize
kwin4_effect_fade
presentwindows
highlightwindow
kwin4_effect_dialogparent
blur
contrast
startupfeedback
screenedge
kscreen

Currently Active Effects:
-------------------------
blur
contrast

Effect Settings:
----------------
zoom:
zoomFactor: 1.2
mousePointer: 0
mouseTracking: 0
enableFocusTracking: false
followFocus: true
focusDelay: 350
moveFactor: 20
targetZoom: 1

slidingpopups:
fadeInTime: 150
fadeOutTime: 250

kwin4_effect_login:

slide:

screenshot:

kwin4_effect_windowaperture:

kwin4_effect_translucency:

minimizeanimation:

desktopgrid:
zoomDuration: 300
border: 10
desktopNameAlignment: 0
layoutMode: 0
customLayoutRows: 2
usePresentWindows: true

colorpicker:

kwin4_effect_morphingpopups:

kwin4_effect_maximize:

kwin4_effect_fade:

presentwindows:
layoutMode: 0
showCaptions: true
showIcons: true
doNotCloseWindows: false
ignoreMinimized: false
accuracy: 20
fillGaps: true
fadeDuration: 150
showPanel: false
leftButtonWindow: 1
rightButtonWindow: 2
middleButtonWindow: 0
leftButtonDesktop: 2
middleButtonDesktop: 0
rightButtonDesktop: 0

highlightwindow:

kwin4_effect_dialogparent:

blur:
blurRadius: 12
cacheTexture: true

contrast:

startupfeedback:
type: 0

screenedge:

kscreen:
Comment 11 Vlad Zahorodnii 2022-01-19 19:22:00 UTC
A lot of things have changed about compositing scheduling. Please reopen this bug report if the issue is still reproducible.