https://bugs.kde.org/show_bug.cgi?id=484323

Kai Krakow <k...@kaishome.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |k...@kaishome.de

--- Comment #36 from Kai Krakow <k...@kaishome.de> ---
I can confirm this for 6.1.1. I'm using 4 monitors, one of them is sometimes
turned off. Perf data looks like this:

# Overhead  Command          Shared Object                    Symbol
# ........  ...............  ............................... 
...........................................................................................................................................................................
#
    24.22%  kwin_x11         [vdso]                           [.]
__vdso_clock_gettime
    15.66%  kwin_x11         libc.so.6                        [.] __sched_yield
    10.43%  kwin_x11         [unknown]                        [k]
0xffffffff81c00150
     1.71%  kwin_x11         libc.so.6                        [.]
clock_gettime@@GLIBC_2.17
     1.46%  kwin_x11         libnvidia-glcore.so.555.58       [.]
0x0000000000b00d13
     1.24%  kwin_x11         libnvidia-glcore.so.555.58       [.]
0x0000000000b00d00
     1.02%  kwin_x11         libnvidia-glcore.so.555.58       [.]
0x00000000009eea66
     0.78%  kwin_x11         libnvidia-glcore.so.555.58       [.]
0x00000000009eea61
     0.72%  kwin_x11         libnvidia-glcore.so.555.58       [.]
0x0000000000a03904
     0.71%  kwin_x11         libnvidia-glcore.so.555.58       [.]
0x0000000000b00d30
     0.68%  kwin_x11         libnvidia-glcore.so.555.58       [.]
0x00000000009eea59

It looks like most of the time is spent in a tight loop getting the clock and
yielding. Most of the time is spent outside of kwin_x11 but filtering by dso
shows where it is involved:

# dso: kwin_x11
#
# Total Lost Samples: 0
#
# Samples: 5K of event 'cpu_atom/cycles/Pu'
# Event count (approx.): 2421254389
#
# Overhead  Command          Symbol
# ........  ............... 
...............................................................................................................
#
     0.12%  kwin_x11         [.] KWin::BlendChanges::isActive
     0.07%  kwin_x11         [.] QtPrivate::QCallableObject<void
(KWin::ZoomEffect::*)(), QtPrivate::List<>, void>::impl
     0.04%  kwin_x11         [.] KWin::OutputFrame::presented@plt
     0.03%  vsync event mon  [.] std::chrono::_V2::steady_clock::now@plt
     0.03%  kwin_x11         [.] KWin::ApplicationX11::metaObject
     0.03%  kwin_x11         [.] KWin::ContrastEffect::shouldContrast
     0.03%  kwin_x11         [.] KWin::ContrastEffect::doContrast
     0.02%  kwin_x11         [.] KWin::ZoomEffect::slotWindowDamaged
     0.02%  kwin_x11         [.] KWin::GlxLayer::doBeginFrame
     0.02%  kwin_x11         [.] KWin::PaintData::yTranslation@plt
     0.02%  kwin_x11         [.] KWin::BlurEffect::blurRegion
     0.02%  kwin_x11         [.] KWin::EffectsHandler::prePaintScreen@plt
     0.02%  kwin_x11         [.] KWin::ContrastEffect::isActive
     0.02%  kwin_x11         [.] KWin::EffectWindow::isDesktop@plt
     0.02%  kwin_x11         [.] KWin::ContrastEffect::drawWindow
     0.02%  kwin_x11         [.] KWin::GlxBackend::primaryLayer
     0.02%  kwin_x11         [.] KWin::SlideEffect::isActive
     0.02%  kwin_x11         [.] QRegion::end@plt
     0.02%  vsync event mon  [.] KWin::SGIVideoSyncVsyncMonitorHelper::poll
     0.02%  kwin_x11         [.] KWin::OutputLocatorEffect::isActive
     0.01%  vsync event mon  [.] operator delete@plt
     0.01%  kwin_x11         [.] KWin::GlxBackend::makeCurrent
     0.01%  vsync event mon  [.] QMetaObject::activate@plt
     0.00%  vsync event mon  [.] QtPrivate::QCallableObject<void
(KWin::SGIVideoSyncVsyncMonitorHelper::*)(), QtPrivate::List<>, void>::impl

# Samples: 1M of event 'cpu_core/cycles/Pu'
# Event count (approx.): 737751025988
#
# Overhead  Command          Symbol

# ........  ............... 
.....................................................................................................................................................................................................................................................................................
.....................................................................................................................................................................
#
     0.01%  kwin_x11         [.] KWin::BlurEffect::blurRegion
     0.00%  kwin_x11         [.] KWin::GlxBackend::present
     0.00%  kwin_x11         [.] KWin::BlurEffect::prePaintWindow
     0.00%  kwin_x11         [.] QRegion::~QRegion@plt
     0.00%  kwin_x11         [.] KWin::BlurEffect::blur
     0.00%  kwin_x11         [.] KWin::GlxBackend::present
     0.00%  kwin_x11         [.] KWin::GlxBackend::doBeginFrame
     0.00%  kwin_x11         [.] KWin::GlxContext::makeCurrent
     0.00%  vsync event mon  [.] KWin::SGIVideoSyncVsyncMonitorHelper::poll
     0.00%  vsync event mon  [.] std::chrono::_V2::steady_clock::now@plt
     0.00%  kwin_x11         [.] KWin::GlxBackend::vblank
     0.00%  kwin_x11         [.] KWin::ContrastEffect::contrastRegion
     0.00%  kwin_x11         [.] KWin::ScreenShotEffect::isActive
     0.00%  kwin_x11         [.] QtPrivate::QCallableObject<void
(KWin::VsyncMonitor::*)(std::chrono::duration<long, std::ratio<1l, 1000000000l>
>), QtPrivate::List<std::chrono::duration<long, std::ratio<1l, 1000000000l> >
>, void>::impl
     0.00%  kwin_x11         [.] KWin::X11Output::renderLoop
     0.00%  kwin_x11         [.] KWin::BlurEffect::prePaintScreen
     0.00%  kwin_x11         [.] QTimer::isActive@plt
     0.00%  kwin_x11         [.] KWin::KscreenEffect::isActive
     0.00%  kwin_x11         [.] QRegion::intersects@plt
     0.00%  kwin_x11         [.] KWin::OutputFrame::presented@plt
     0.00%  kwin_x11         [.] KWin::OverlayWindowX11::isVisible
     0.00%  kwin_x11         [.] KWin::OutputLocatorEffect::isActive
     0.00%  kwin_x11         [.] QRegion::QRegion@plt
     0.00%  kwin_x11         [.] KWin::ContrastEffect::shouldContrast
     0.00%  kwin_x11         [.] std::_Hashtable<KWin::EffectWindow*,
std::pair<KWin::EffectWindow* const, KWin::BlurEffectData>,
std::allocator<std::pair<KWin::EffectWindow* const, KWin::BlurEffectData> >,
std::__detail::_Select1st, std::equal_to<KWin::EffectWindow*>,
std::hash<KWin::EffectWindow*>, std::__detail::_Mod_range_hashing,
std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy,
std::__detail::_Hashtable_traits<false, false, true> >::find
     0.00%  kwin_x11         [.] KWin::GlxBackend::endFrame
     0.00%  kwin_x11         [.] std::__detail::_Map_base<KWin::Output*,
std::pair<KWin::Output* const, KWin::BlurRenderData>,
std::allocator<std::pair<KWin::Output* const, KWin::BlurRenderData> >,
std::__detail::_Select1st, std::equal_to<KWin::Output*>,
std::hash<KWin::Output*>, std::__detail::_Mod_range_hashing,
std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy,
std::__detail::_Hashtable_traits<false, false, true>, true>::operator[]
     0.00%  kwin_x11         [.] KWin::GlxPixmapTexture::onDamage

Is this caused by the blur effects of plasma and konsole?

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to