Bug 344864

Summary: Stutter @23.976hz, likely du to wrongly reported refresh rate
Product: [Plasma] kwin Reporter: jeremy9856
Component: scene-openglAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: 4.11.14   
Target Milestone: 5   
Platform: Ubuntu   
OS: Linux   
URL: https://forum.kde.org/viewtopic.php?f=111&t=124507
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description jeremy9856 2015-03-05 12:20:02 UTC
Playing a 23.976fps movie at 23.976hz with KWin compositing enabled generate a lot of stutter.
With "unredirect fullscreen windows" or disabling compositing the plaback is perfect.

The command "kwriteconfig --file kwinrc --group Compositing --key RefreshRate 24" helps a lot to kill stutter. 
I quote luebking :
"So KWin would run rather too "fast" than to slow, what *could* lead to a double frame in the buffer stack (a hanging frame), but only once every 42 seconds! ...unless libxrandr, xvidmode or nvidia-settings report the wrong number (or junk) altogether in the 23.976Hz case and/or we fall back to 60Hz"

Here is a summary of what we tests : https://forum.kde.org/viewtopic.php?f=111&t=124507

Reproducible: Always

Steps to Reproduce:
1. Set your TV at 23.976hz
2. Play a 23.976fps movie

Actual Results:  
A lot of stutter

Expected Results:  
Smooth playback
Comment 1 Thomas Lübking 2015-03-05 12:36:21 UTC
I would actually assume it's fixed in KWin5, but it would be better to know the reported refresh rate
Comment 2 jeremy9856 2015-03-05 12:44:53 UTC
The detected refresh rate seems to be 23hz :

kwin(14156) KWin::currentRefreshRate: Vertical Refresh Rate (as detected by XF86VM):  23 Hz
kwin(14156) KWin::currentRefreshRate: Vertical Refresh rate  23 Hz

Here is the full output "kwin --replace &" :

[code]kwin --replace &
[1] 14156
jeremy@jeremy-Dl:~$ QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave.
kwin(14156) KWin::Extensions::init:  non_native_pixmaps:  true
kwin(14156) KWin::Xcb::Extensions::init: Extensions: shape: 0x "11"  composite: 0x "4"  render: 0x "b"  fixes: 0x "50"  randr: 0x "14"  sync: 0x "31"  damage: 0x  "11"
kwin(14156) KDecorationPlugins::canLoad: kwin : path  "/usr/lib/kde4/kwin3_aurorae.so"  for  "kwin3_aurorae"
kwin(14156)/kwin (client errors) Aurorae::AuroraeThemePrivate::initButtonFrame: No button for:  "alldesktops"
kwin(14156)/kwin (client errors) Aurorae::AuroraeThemePrivate::initButtonFrame: No button for:  "keepabove"
kwin(14156)/kwin (client errors) Aurorae::AuroraeThemePrivate::initButtonFrame: No button for:  "keepbelow"
kwin(14156)/kwin (client errors) Aurorae::AuroraeThemePrivate::initButtonFrame: No button for:  "shade"
kwin(14156)/kwin (client errors) Aurorae::AuroraeThemePrivate::initButtonFrame: No button for:  "help"
kwin(14156) KWin::Workspace::updateClientArea: screens:  1 desktops:  1
kwin(14156) KWin::Workspace::updateClientArea: Done.
QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread
QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread
kwin(14156) KWin::Client::readUserTimeMapTimestamp: User timestamp, ASN: 4294967295
kwin(14156) KWin::Client::readUserTimeMapTimestamp: User timestamp, final: 'ID: 29360447 ;WMCLASS: "plasma" : "plasma" ;Caption: "plasma-desktop" ' : 4294967295
kwin(14156) KWin::Workspace::updateClientArea: screens:  1 desktops:  1
kwin(14156) KWin::Workspace::updateClientArea: Done.
kwin(14156) KWin::Client::checkActivities: no activities!?!?
Bus::open: Can not get ibus-daemon's address. 
IBusInputContext::createInputContext: no connection to ibus-daemon 
kwin(14156) KWin::Client::readUserTimeMapTimestamp: User timestamp, ASN: 4421392
kwin(14156) KWin::Client::readUserTimeMapTimestamp: User timestamp, final: 'ID: 25165922 ;WMCLASS: "nvidia-settings" : "nvidia-settings" ;Caption: "NVIDIA X Server Settings" ' : 4421392
kwin(14156) KWin::Workspace::updateClientArea: screens:  1 desktops:  1
kwin(14156) KWin::Workspace::updateClientArea: Done.
kwin(14156) KWin::Client::checkActivities: no activities!?!?
kwin(14156) KWin::Client::readUserTimeMapTimestamp: User timestamp, ASN: 4432822
kwin(14156) KWin::Client::readUserTimeMapTimestamp: User timestamp, final: 'ID: 23068754 ;WMCLASS: "konsole" : "konsole" ;Caption: "jeremy : bash – Konsole" ' : 4432822
kwin(14156) KWin::Workspace::updateClientArea: screens:  1 desktops:  1
kwin(14156) KWin::Workspace::updateClientArea: Done.
kwin(14156) KWin::Client::readUserTimeMapTimestamp: User timestamp, ASN: 4428848
kwin(14156) KWin::Client::readUserTimeMapTimestamp: User timestamp, final: 'ID: 29360438 ;WMCLASS: "plasma" : "plasma" ;Caption: "plasma-desktop" ' : 4428848
kwin(14156) KWin::Workspace::updateClientArea: screens:  1 desktops:  1
kwin(14156) KWin::Workspace::updateClientArea: Done.
kwin(14156) KWin::Workspace::updateClientArea: screens:  1 desktops:  1
kwin(14156) KWin::Workspace::updateClientArea: Done.
QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread
QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread
kwin(14156)/kdecore (KSycoca) KSycocaPrivate::openDatabase: Trying to open ksycoca from "/var/tmp/kdecache-jeremy/ksycoca4"
kwin(14156) KWin::Compositor::slotCompositingOptionsInitialized: Initializing OpenGL compositing
kwin(14156) KWin::GlxBackend::initDrawableConfigs: Drawable visual (depth  24 ): 0x "2a"
kwin(14156) KWin::GlxBackend::initDrawableConfigs: Drawable visual (depth  32 ): 0x "c0"
kwin(14156) KWin::GlxBackend::initBuffer: Buffer visual (depth  24 ): 0x "27"
OpenGL vendor string:                   NVIDIA Corporation
OpenGL renderer string:                 GeForce GT 430/PCIe/SSE2
OpenGL version string:                  4.4.0 NVIDIA 331.113
OpenGL shading language version string: 4.40 NVIDIA via Cg compiler
Driver:                                 NVIDIA
Driver version:                         331.113
GPU class:                              GF100
OpenGL version:                         4.4
GLSL version:                           4.40
X server version:                       1.16
Linux kernel version:                   3.16
Direct rendering:                       yes
Requires strict binding:                no
GLSL shaders:                           yes
Texture NPOT support:                   yes
Virtual Machine:                        no
kwin(14156) KWin::GlxBackend::init: Direct rendering: true
kwin(14156) KWin::SceneOpenGL2::slotColorCorrectedChanged: Color correction: false
kwin(14156) KWin::SceneOpenGL2::SceneOpenGL2: OpenGL 2 compositing successfully initialized
kwin(14156) KWin::currentRefreshRate: Vertical Refresh Rate (as detected by XF86VM):  23 Hz
kwin(14156) KWin::currentRefreshRate: Vertical Refresh rate  23 Hz
kwin(14156) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_login"
kwin(14156) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_blur"
kwin(14156) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_desktopgrid"
kwin(14156) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_slide"
kwin(14156) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_presentwindows"
kwin(14156) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_dashboard"
kwin(14156) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_kscreen"
kwin(14156) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_startupfeedback"
kwin(14156) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_dialogparent"
kwin(14156) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_cube"
kwin(14156) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_taskbarthumbnail"
kwin(14156) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_logout"
kwin(14156) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_screenshot"
kwin(14156) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_zoom"
kwin(14156) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_minimizeanimation"
kwin(14156) KWin::EffectsHandlerImpl::loadEffect: Trying to load  "kwin4_effect_coverswitch"[/code]
Comment 3 jeremy9856 2015-12-11 13:36:07 UTC
I made some tests on Manjaro, with Kwin 5.4.3 I think, and it seems that it's fixed !
I played a few 23.976fps videos at 23.976hz on my TV and no stutter with the compositing enabled.

Of course, when I will fully switch to Plasma 5 when it will be more mature, I will make some more extensive tests but for now this can be closed.

Thanks !