1. 18 Jan, 2020 1 commit
  2. 17 Jan, 2020 1 commit
  3. 16 Jan, 2020 16 commits
  4. 15 Jan, 2020 4 commits
  5. 14 Jan, 2020 4 commits
  6. 13 Jan, 2020 3 commits
  7. 12 Jan, 2020 3 commits
  8. 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
  9. 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"
  10. 08 Jan, 2020 2 commits
    • Vlad Zahorodnii's avatar
      Use geometry conversion helpers from AbstractClient in InternalClient · 976730a4
      Vlad Zahorodnii authored
      mapFromClient and mapToClient are equivalent to clientRectToFrameRect and
      frameRectToClientRect, respectively.
      Test Plan: Compiles.
      Reviewers: #kwin, romangg
      Reviewed By: #kwin, romangg
      Subscribers: kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D26508
    • Roman Gilg's avatar
      [platforms/drm] Allow running without outputs · 2632e418
      Roman Gilg authored
      Set outputs enablement also when none outputs are present. This patch is
      similar to earlier attempt at D17985.
      BUG: 402827
      BUG: 389551
      BUG: 398680
      BUG: 413758
      Test Plan:
      Starting without outputs, manual disconnects and DPMS changes. There is still
      an issue when an output gets disconnected while the DPMS is off. But it's an
      improvement already.
      Reviewers: #kwin, davidedmundson
      Reviewed By: #kwin, davidedmundson
      Subscribers: kwin
      Tags: #kwin
      Maniphest Tasks: T10016
      Differential Revision: https://phabricator.kde.org/D26511