1. 15 Nov, 2019 1 commit
  2. 14 Nov, 2019 8 commits
    • David Edmundson's avatar
      [effects] Fix build on old Qt · cb702215
      David Edmundson authored
      cb702215
    • David Edmundson's avatar
      [effects] Forward wheel events · aedc9e62
      David Edmundson authored
      Summary:
      Effects::checkInputWindowEvent(QWheelEvent *e) existed but it was not
      hooked up to anything and would never be called.
      
      This patch adds the relevant handling in the wayland filter, X filter so
      the existing method gets called.
      
      EffectQuickView is updated to handle wheel events.
      
      Test Plan:
      Used a ListView via an EffectQuickView in an effect.
      I can now scroll with the mouse.
      
      Reviewers: #kwin, zzag
      
      Reviewed By: #kwin, zzag
      
      Subscribers: zzag, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D25292
      aedc9e62
    • David Edmundson's avatar
      [libkwineffects] Construct correct mouse event when forwarding to QtQuickView · 20a202b1
      David Edmundson authored
      Summary:
      Original code (copied from Aurorae) created a QMouseEvent for
      QHoverEvents. Whilst it apparently worked, it's technically wrong.
      
      It's safer to have an explicit type check given we come from a downcast
      QEvent* and then build the correct event.
      
      Test Plan: Hovered some icons
      
      Reviewers: #kwin, zzag
      
      Reviewed By: #kwin, zzag
      
      Subscribers: zzag, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D25207
      20a202b1
    • David Edmundson's avatar
      [aurorae] Use shared implementation of QtQuick rendering · 6dfb7ba1
      David Edmundson authored
      Summary:
      Removes a tonne of complex code, means any future improvements to our
      QtQuick integration only need to be in one place.
      
      QML logic remains in Aurorae as it does complex things. All other
      aurorae specialties remain.
      
      Only functional difference is that we now use a shared GL context
      between window frames, which Plasma::FrameSVG will make use of.
      
      Test Plan:
      kcmshell5 kwindecoration
      ran some aurorrae themes on my kwin. Look the same as master
      
      Reviewers: #kwin, mart
      
      Reviewed By: mart
      
      Subscribers: mart, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D25206
      6dfb7ba1
    • Roman Gilg's avatar
      [platforms/x11] Never block on retrace, always present after paint · 8d137290
      Roman Gilg authored
      Summary:
      Compositing in X11 was done time shifted, meaning that we paint first, then
      wait one vblank interval length and present on prepareRenderingFrame the
      previous paint result. This is supposed to make sure we don't miss the vblank
      and in case of block till retrace be able to continue issuing commands and
      only shortly before next vblank present.
      
      This is counter-intuitiv, not how we do it on Wayland or even on MESA with X.
      The reason seems to be that the GLX backend was in the beginning written
      against Nvidia proprietary driver which needed this but nowadays even this
      driver defaults to non-blocking behavior on buffer swap.
      
      Therefore remove this legacy anomaly fully and directly present after paint.
      We then wait one refresh cycle and in the future can optimize this by delaying
      the paint and present till shortly before vsync.
      
      Test Plan: kwin_x11 tested on i915 and Nvidia proprietary driver.
      
      Reviewers: #kwin
      
      Subscribers: zzag, alexeymin, kwin
      
      Tags: #kwin
      
      Maniphest Tasks: T11071
      
      Differential Revision: https://phabricator.kde.org/D23514
      8d137290
    • Roman Gilg's avatar
      Remove vsync detection and configurability · b3a19f9e
      Roman Gilg authored
      Summary:
      Selecting not to vsync does not make sense for an X11 compositor. In the end
      we want clients to be able to present async if they want to but the compositor
      is supposed to send swaps with vsync to the XServer in order to not generate
      tearing artifacts.
      
      There was also a detection logic which did some questionable things in case
      vsync was not available. I don't think this is necessary at all since we can
      just always run a timer to present with or without vsync.
      
      Test Plan: kwin_x11 tested on i915.
      
      Reviewers: #kwin, zzag
      
      Subscribers: zzag, kwin
      
      Tags: #kwin
      
      Maniphest Tasks: T11071
      
      Differential Revision: https://phabricator.kde.org/D23511
      b3a19f9e
    • Roman Gilg's avatar
      [platforms/x11/standalone] Remove SGI swap control and video sync · 285adc19
      Roman Gilg authored
      Summary:
      Current hardware should suppport either GLX_EXT_swap_control or
      GLX_MESA_swap_control. To simplify code remove the usage of SGI extensions.
      
      Test Plan: kwin_x11 tested on i915.
      
      Reviewers: #kwin, zzag
      
      Reviewed By: #kwin, zzag
      
      Subscribers: davidedmundson, kwin
      
      Tags: #kwin
      
      Maniphest Tasks: T11071
      
      Differential Revision: https://phabricator.kde.org/D23510
      285adc19
    • Roman Gilg's avatar
      [platforms/x11] Remove triple buffering detection · ad892ce3
      Roman Gilg authored
      Summary:
      It is not clear what the advantage of triple buffering is for KWin. An X11
      compositor is meant to swap buffers once every monitor cycle. For that triple
      buffering is not necessary.
      
      The functionality is not maintained, does not reliably work as displayed by
      the existence of an environment variable to force some behavior, pollutes
      our code and every compositing-related problem that might be mitigated with
      triple buffering should find a simpler and more fitting solution with other
      means.
      
      There is one caveat which is if we shall block for retrace. We set it
      currently according to the result of the swap profiler and in the most common
      case with double buffering it is set to true. But on Nvidia systems this might
      be actual the wrong behavior. Instead of trying to work around this ignore
      the issue for now and move the overall architecture to something less complex
      by presenting after paint how we do it in the Wayland DRM backend and with
      double buffering on GLX (although this is at the moment also borken because
      we actually present then twice).
      
      Test Plan: kwin_x11 tested on i915.
      
      Reviewers: #kwin, zzag
      
      Reviewed By: #kwin, zzag
      
      Subscribers: zzag, fredrik, kwin
      
      Tags: #kwin
      
      Maniphest Tasks: T11071
      
      Differential Revision: https://phabricator.kde.org/D23504
      ad892ce3
  3. 12 Nov, 2019 1 commit
  4. 11 Nov, 2019 1 commit
  5. 10 Nov, 2019 1 commit
  6. 09 Nov, 2019 1 commit
  7. 06 Nov, 2019 1 commit
  8. 05 Nov, 2019 3 commits
  9. 04 Nov, 2019 2 commits
    • David Edmundson's avatar
      Add KDEClangFormat cmake support · 0369011c
      David Edmundson authored
      Summary:
      This allows devs to run: "make clang-format" and format all files easily
      using the preset KDE clang format style
      
      This patch adds support so devs can easily test the intended formatting
      now, it doesn't change the code yet.
      
      Doing an initial run to commit everything will happen later.
      
      Test Plan:
      Ran script
      git diff was full of amazingly cleaned code
      
      See D25134
      0369011c
    • Script Kiddy's avatar
      SVN_SILENT made messages (.desktop file) - always resolve ours · a0d98a61
      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"
      a0d98a61
  10. 03 Nov, 2019 4 commits
  11. 02 Nov, 2019 1 commit
  12. 01 Nov, 2019 4 commits
    • Kai Uwe Broulik's avatar
      Merge branch 'Plasma/5.17' · 66f2e2b1
      Kai Uwe Broulik authored
      66f2e2b1
    • Kai Uwe Broulik's avatar
      [effects/startupfeedback] Fallback to small icon size when no cursor size is configured · 87f36f53
      Kai Uwe Broulik authored
      As appears to be the case with the default setup...
      
      BUG: 413605
      FIXED-IN: 5.17.3
      
      Differential Revision: https://phabricator.kde.org/D25065
      87f36f53
    • David Edmundson's avatar
      [effects] Add effect to hold the desktop window static after plasmashell quits · e4ac215f
      David Edmundson authored
      Summary:
      When a plasma session quits, the order of plasmashell and clients quitting is undetermined.
      
      This looks bad as our desktop background disappears quite early. Rather than changing the real order, we can have kwin reference the last pixmap of any desktop and hold on to it.
      
      Lasting till the compositor quits means it stays on the X frontbuffer till X quits and the experience is seamless.
      
      Test Plan: Logged out (with relevant other ksmserver patches)
      
      Reviewers: #kwin, zzag
      
      Reviewed By: #kwin, zzag
      
      Subscribers: zzag, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D24864
      e4ac215f
    • David Edmundson's avatar
      Port one of session management connections state to a custom API · ec610fd7
      David Edmundson authored
      Summary:
      Currently kwin opens a second ICE connection to ksmserver in order to
      tell the state of kwin's whether we're logging out and saving clients or
      not.
      
      This requires that kwin launches after ksmserver to have the connection
      which is a dependency I want to break.
      
      Practically this code is already ksmserver specific as it relies on some
      custom code that sends the first saveState request to kwin first.
      
      Instead we can replace it with a bespoke IPC over DBus and siplify the
      code both end. This will allow several other future enhancements that we
      want with regards to handling the session state, as well as make an
      effort platform agnostic session management, as well as cleaning up some
      complex code.
      
      Ksmserver calls into kwin, rather than having kwin watch ksmserver state
      to allow us make sure it's race free.
      
      Reviewers: #kwin, zzag
      
      Reviewed By: #kwin, zzag
      
      Subscribers: romangg, zzag, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D24862
      ec610fd7
  13. 31 Oct, 2019 1 commit
  14. 30 Oct, 2019 1 commit
    • Albert Astals Cid's avatar
      Add some const & · e144748c
      Albert Astals Cid authored
      Summary:
      Won't make things go much faster since everything that was
      being passed by value is refcounted but still const & is a bit faster
      than refcounting
      
      For shared pointers instead of adding const & we move them into the
      destination variable saving some cpu usage but at the same time making
      clear the pointer is being stored by not being const &
      
      Reviewers: zzag
      
      Reviewed By: zzag
      
      Subscribers: zzag, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D25022
      e144748c
  15. 29 Oct, 2019 4 commits
    • Martin Flöser's avatar
      Add support for virgl in GLPlatform · 92197242
      Martin Flöser authored
      Summary:
      This change adds detection support for virgl (Mesa gallium virtio guest driver).
      Results in proper detection in supportInformation and debug console.
      
      Test Plan: Modified test passes, run KWin_Wayland in kvm with virgl and verified supportInformation
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D25056
      92197242
    • Jonathan Riddell's avatar
      Update version number for 5.17.2 · c42a4234
      Jonathan Riddell authored
      GIT_SILENT
      c42a4234
    • Roman Gilg's avatar
      Merge branch 'Plasma/5.17' · affd4445
      Roman Gilg authored
      affd4445
    • Roman Gilg's avatar
      Dmabuf recovery on EGL reset · 7459aabc
      Roman Gilg authored
      Summary:
      The EGL platform might go away at any time through reconfiguration or because
      of a graphic error. KWin then resets the graphics. The dmabuf implementation
      must respect that and recover from a graphics reset by recreating all EGL
      images for existing buffer.
      
      This assumes that we won't change our graphics API mid-session and that
      supported plane and modifier configuration stays constant.
      
      In practise we remember all current dmabufs in a single map and only remove
      them if the client did destroy the resource.
      
      BUG: 411980
      CCBUG: 413403
      FIXED-IN: 5.17.2
      
      Test Plan: Applied screenedge configuration without crash.
      
      Reviewers: #kwin, zzag
      
      Reviewed By: #kwin, zzag
      
      Subscribers: fvogt, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D24954
      7459aabc
  16. 28 Oct, 2019 6 commits