1. 16 Jan, 2020 13 commits
  2. 15 Jan, 2020 4 commits
  3. 14 Jan, 2020 4 commits
  4. 13 Jan, 2020 3 commits
  5. 12 Jan, 2020 3 commits
  6. 10 Jan, 2020 2 commits
    • David Edmundson's avatar
      [scenes/opengl] Remove outdated hack to reset vertex buffers · 212d87a3
      David Edmundson authored
      Scene opengl has a callback for when we have a GL error. One of the
      handlers for an error calls scheduleVboReInit the history shows it was a
      forerunner to the GLX_NV_robustness_video_memory_purge but resetting
      only one tiny part based on debug output.
      When we get here we schedule a reset of the vertex buffer, via a timer.
      When the timer is caled we have no idea what GL context was last
      current, if it's not the currect context then the main scene
      GLVertexBuffer will be deleted but not correctly re-initialised.
      We have two very common crashes with a corrupted
      GLVertexBuffer::streamingBuffer() which would match up perfectly.
      Given that we now have a proper mechanism to reset the entire scene, we
      don't need this timer based hack and resolve that problem.
      BUG: 399499
      BUG: 372305
      Reviewers: #kwin
      Subscribers: kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D26556
    • Vlad Zahorodnii's avatar
      Return correct shape for Unmanaged clients · 6e910c45
      Vlad Zahorodnii authored
      Currently EffectWindowImpl::shape() falls back to the frame geometry
      because isX11Client() returns invalid value for Unmanaged clients.
      BUG: 415475
      Reviewers: #kwin, romangg
      Reviewed By: #kwin, romangg
      Subscribers: kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D26542
  7. 09 Jan, 2020 4 commits
    • David Edmundson's avatar
      [colormanager] Fix build on older glib · 92855469
      David Edmundson authored
      Copies the approach we do for various GL calls not existing on the
      system headers.
      See D25962
      Reviewers: #kwin, romangg
      Reviewed By: #kwin, romangg
      Subscribers: kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D26553
    • Vlad Zahorodnii's avatar
      [scene] Fix decoration texture bleeding · af71763b
      Vlad Zahorodnii authored
      Quite long time ago, window decorations were painted on real X11 windows.
      The nicest thing about that approach is that we get both contents of the
      client and the frame window at the same time. However, somewhere around
      KDE 4.2 - 4.3 times, decoration rendering architecture had been changed
      to what we have now.
      I've mentioned the previous decoration rendering design because it didn't
      have a problem that the new design has, namely the texture bleeding issue.
      In the name of better performance, opengl scene puts all decoration parts
      to an atlas. This is totally reasonable, however we must be super cautious
      about things such as the GL_LINEAR filter.
      The GL_LINEAR filter may need to sample a couple of neighboring texels
      in order to produce the final texel value. However, since all decoration
      parts now live in a single texture, we have to make sure that we don't
      sample texels that belong to another decoration part.
      This patch fixes the texture bleeding problem by padding each individual
      decoration part in the atlas. There is another solution for this problem
      though. We could render a window into an offscreen texture and then map
      that texture on the transformed window geometry. This would work well and
      we definitely need an offscreen rendering path in the opengl scene,
      however it's not feasible at the moment since we need to break the window
      quads API. Also, it would be great to have as less as possible stuff going
      on between invocation of Scene::Window::performPaint() and getting the
      corresponding pixel data on the screen.
      There is a good chance that the new padding stuff may make you vomit. If
      it does so, I'm all ears for the suggestions how to make the code more
      BUG: 257566
      BUG: 360549
      CCBUG: 412573
      FIXED-IN: 5.18.0
      Reviewers: #kwin
      Subscribers: fredrik, kwin, fvogt
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D25611
    • David Edmundson's avatar
      Avoid texture bleed rendering X11 window · d1cfcf4c
      David Edmundson authored
      We currently see a gap on transformed windows between the window and the
      top decoration.
      This is partly the atlas bleed on the decoration, and partly a bleed on
      the window content itself.
      On X11, the window we composite is the frame window - which is a larger
      texture containing a transparent border where the frame normally would
      be. When we sample with a linear filter we include these texels. Hence
      GL_CLAMP_TO_EDGE doesn't work.
      Vlad's patch to composite the correct window, not the frame was my
      preferred approach, but we had to revert it as it caused an issue with
      xwayland :(
      Half pixel correction nearly worked, but caused blurry fonts.
      This patch resolves it in the fragment shader used by effects doing
      transforms. We pass the real texture geometry of the window to the
      client with a half pixel correction. Any samples outside the outer half
      pixel are then clamped within bounds.
      Arguably a hack, but solves the problem in a comparatively
      non-invasive way.
      BUG: 360549
      BUG: 257566
      Test Plan:
      Using Vlad's atlas padding for decoration
      Slowed animations, wobbled a dark window over a light background
      No artifacts
      This isn't needed. Now tested that everything still renders the same.
      Reviewers: #kwin, zzag
      Reviewed By: #kwin, zzag
      Subscribers: zzag, jgrulich, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D25737
    • Script Kiddy's avatar
      SVN_SILENT made messages (.desktop file) - always resolve ours · 0b1e9cfb
      Script Kiddy authored
      In case of conflict in i18n, keep the version of the branch "ours"
      To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
  8. 08 Jan, 2020 2 commits
  9. 07 Jan, 2020 5 commits
    • Sefa Eyeoglu's avatar
      [effects/slidingpopups] Tweak effect to make animation smoother and more consistent · ee5f63c0
      Sefa Eyeoglu authored and Nate Graham's avatar Nate Graham committed
      - Easing function for slide-in changed to InQuad
      - Easing function for slide-out changed to OutQuad
      - Opacity is now interpolated, too.
      Reviewers: #vdg, zzag, #kwin, sefaeyeoglu, ndavis, davidedmundson
      Reviewed By: #vdg, zzag, #kwin, sefaeyeoglu, ndavis, davidedmundson
      Subscribers: niccolove, ngraham, abetts, davidedmundson, zzag, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D18000
    • Vlad Zahorodnii's avatar
      [nightcolor] Use a dedicated class for detection of system clock changes · e728460a
      Vlad Zahorodnii authored
      The ClockSkewNotifier provides a convenient way for monitoring system
      clock changes. One of the key ideas was to hide platform details from
      users of the class. This allows us to add a QTimer fallback path for
      operating systems that don't provide anything to detect system clock
      In long term, I would like to move the new class to Frameworks.
      Reviewers: #kwin, davidedmundson
      Reviewed By: #kwin, davidedmundson
      Subscribers: davidedmundson, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D25962
    • Vlad Zahorodnii's avatar
      [nightcolor] Expose some properties to d-bus · 33f46f6d
      Vlad Zahorodnii authored
      Currently, in order to retrieve the current screen color temperature
      applied to all screen as well other attributes of night color manager,
      one has to call nightColorInfo() periodically. This goes against well
      established patterns in d-bus world. It is recommended to expose a
      bunch of d-bus properties rather than have a method that returns all
      relevant properties stored in a JSON object.
      The ugliest thing about this patch is that a lot of code is duplicated
      to emit the PropertiesChanged signal. Unfortunately, QtDBus doesn't
      take care of this and we are left with only two options - either do
      weird things with QMetaObject or manually emit the signal. I have
      picked the second option since it's more comprehensible and less magic
      is going on, but I have to admit that the chosen approach is ugly.
      I hope that "Qt 6 will fix it."
      CCBUG: 400418
      Reviewers: #kwin, davidedmundson
      Reviewed By: #kwin, davidedmundson
      Subscribers: kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D25946
    • Vlad Zahorodnii's avatar
      [nightcolor] Introduce inhibition API · 5bec89ac
      Vlad Zahorodnii authored
      The new API allows to block Night Color temporarily. This can be useful
      for applications such as video games and plasma applets.
      CCBUG: 400418
      Test Plan: Called inhibit() and uninhibit() from D-Feet.
      Reviewers: #kwin, davidedmundson
      Reviewed By: #kwin, davidedmundson
      Subscribers: kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D25786
    • Vlad Zahorodnii's avatar
      Merge branch 'Plasma/5.17' · 216c005e
      Vlad Zahorodnii authored