1. 13 Dec, 2019 1 commit
  2. 12 Dec, 2019 7 commits
    • Vlad Zahorodnii's avatar
      Revert "[effects/fallapart] Override scale, fade, and glide effect" · 31e66478
      Vlad Zahorodnii authored
      This reverts commit 1747e497.
      
      Unfortunately, this patch causes fall apart effect to override sliding
      popups effect, which we really don't want to do.
      31e66478
    • Vlad Zahorodnii's avatar
      [scenes/xrender] Correctly render client-side decorated clients · 8ab72776
      Vlad Zahorodnii authored
      Summary:
      The buffer shape is in buffer-local coordinates and must be mapped to
      window coordinates. After that, we are free to map it to the global screen
      coordinates.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D25733
      8ab72776
    • Vlad Zahorodnii's avatar
      Fix crash in XRenderPictureData::~XRenderPictureData · a7e18789
      Vlad Zahorodnii authored
      Summary:
      If the XRender scene has cross-faded a window, then, eventually, KWin/X11 will
      crash in the destructor of the XRenderPictureData class during tear down with
      the following message in the terminal
      
      ```
      ASSERT: "qApp" in file /home/vlad/Workspace/KDE/src/kde/workspace/kwin/libkwineffects/kwinxrenderutils.cpp, line 163
      ```
      
      The crash happens because X11StandalonePlatform attempts to clean up XRender
      resources, including XRenderUtils::s_blendPicture, after the application object
      has been destroyed.
      
      In order to fix the crash, we have to destroy the platform object before the
      destructor of QCoreApplication is executed.
      
      Test Plan:
      - Enable maximize effect
      - Maximize a window
      - Replace the current instance of KWin/X11 with another one
      
      Without this patch, KWin/X11 crashes after the third step.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D25768
      a7e18789
    • Script Kiddy's avatar
      SVN_SILENT made messages (.desktop file) - always resolve ours · 2c8ff565
      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"
      2c8ff565
    • Roman Gilg's avatar
      [platforms/x11/standalone] Use intel swap events by default · e7da4d65
      Roman Gilg authored
      Summary:
      Activate intel swap events by default if available. They were hidden behind an
      environmental variable because of some critical release blocking issue years
      ago.
      
      Manual testing indicates that there are no issues anymore with this extension.
      Since it allows us to use swap events with MESA drivers for optimized repaints
      enable swap events by default again.
      
      For now leave a modified environment variable to switch back to using no swap
      events easily.
      
      CCBUG: 342582
      
      Test Plan: i915
      
      Reviewers: #kwin
      
      Subscribers: zzag, broulik, kwin
      
      Tags: #kwin
      
      Maniphest Tasks: T11071
      
      Differential Revision: https://phabricator.kde.org/D25300
      e7da4d65
    • Roman Gilg's avatar
      Composite without timer on swap events · 00bf75d0
      Roman Gilg authored
      Summary:
      When swap events are available do not delay the next repaint by one frame
      through the composite timer but directly repaint on swap event.
      
      Test Plan: i915
      
      Reviewers: #kwin
      
      Subscribers: davidedmundson, zzag
      
      Maniphest Tasks: T11071
      
      Differential Revision: https://phabricator.kde.org/D25299
      00bf75d0
    • Roman Gilg's avatar
      Add hasSwapEvent getter · a55dee3b
      Roman Gilg authored
      Summary:
      Add a small getter to query information internally if the backend supports
      swap events. Defaults to true as it is the default in the GBM Wayland backend.
      
      Test Plan: i915
      
      Reviewers: #kwin
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Maniphest Tasks: T11071
      
      Differential Revision: https://phabricator.kde.org/D25298
      a55dee3b
  3. 11 Dec, 2019 5 commits
    • Roman Gilg's avatar
      [platforms/drm] Return when property found · 7eafab73
      Roman Gilg authored
      When initializing a property we loop through the drmModeObjectProperties
      object and search for the property by its name.
      
      Once found we create the Property object and there should be not another one
      with the same name afterwards. In any case we would leak memory. Therefore just
      directly return once the property was found.
      
      This gives us the added benefit that we can put out a warning in case the
      property was not found in the loop, what should not happen with the properties
      we use.
      7eafab73
    • Roman Gilg's avatar
      [platforms/drm] Align plane type enum with kernel · daa1cf94
      Roman Gilg authored
      This is just a code cosmetic change to have the same values internally like the
      kernel for the type enum. In the logic there should not be a difference since
      the enum values are mapped at runtime.
      daa1cf94
    • Roman Gilg's avatar
      [platforms/drm] Do plane and object chore · cec4e57b
      Roman Gilg authored
      Summary:
      This cleans up some of the code, moves and deletes superfluous functions,
      improves in-code docs and runtime warnings.
      
      Test Plan: On vt.
      
      Reviewers: #kwin
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D25867
      cec4e57b
    • Roman Gilg's avatar
      [scenes/opengl] Remove glDrawBuffer call · 33bcc43f
      Roman Gilg authored
      Summary:
      According to Gl 3.2 (page 501) and 4.5 (page 204) specs the initial state of
      the default framebuffer is already BACK. Therefore we do not need to set it
      explicitly.
      
      When we draw in the future to alternative framebuffers which do not have back
      buffers this call is fatal.
      
      Test Plan: No tearing on Wayland, tearing as before on X11.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D25868
      33bcc43f
    • Méven Car's avatar
      [KCM/Desktop] Use KConfig XT to store virtualdesktops related settings · 930c2d69
      Méven Car authored
      Summary: Use a kcfg file to specify virtual desktops settings saved to kwinrc.
      
      Test Plan:
      kcmshell5 kcm_kwin_virtualdesktops
      Change something, check apply buttons works appropriately
      Save the settings and relaunch the kcm, the new settings are taken loaded correctly
      
      Reviewers: #kwin, ervin
      
      Reviewed By: ervin
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D25871
      930c2d69
  4. 10 Dec, 2019 6 commits
  5. 07 Dec, 2019 1 commit
  6. 06 Dec, 2019 1 commit
    • Vlad Zahorodnii's avatar
      [effects/fallapart] Override scale, fade, and glide effect · 1747e497
      Vlad Zahorodnii authored
      Summary:
      Currently the fall apart effect doesn't work in conjuction with window
      open/close animation effects, e.g. scale. The reason for that is those
      effects grab windows before the fall apart effect.
      
      Test Plan:
      * Enable the fall apart effect and the scale effect;
      * Close a window.
      (without this patch the window doesn't fall apart)
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: ngraham, davidedmundson, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D19723
      1747e497
  7. 04 Dec, 2019 3 commits
  8. 03 Dec, 2019 4 commits
  9. 02 Dec, 2019 7 commits
    • Vlad Zahorodnii's avatar
      Revert the fix for the texture bleeding issue · 6e000314
      Vlad Zahorodnii authored
      This reverts commit 9151bb7b.
      This reverts commit ac4dce1c.
      This reverts commit 754b72d1.
      
      In order to make the fix work, we need to redirect the client window
      instead of the frame window. However, we cannot to do that because
      Xwayland expects the toplevel window(in our case, the frame window)
      to be redirected.
      
      Another solution to the texture bleeding issue must be found.
      
      CCBUG: 257566
      CCBUG: 360549
      6e000314
    • Vlad Zahorodnii's avatar
    • Vlad Zahorodnii's avatar
      [scenes/opengl] Discard cached Lanczos textures for all toplevels · 0c719676
      Vlad Zahorodnii authored
      Summary:
      Currently, the Lanczos filter doesn't discard cached textures for
      internal and wayland clients.
      
      Test Plan: Compiles.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D25616
      0c719676
    • Vlad Zahorodnii's avatar
      [scene] Fix decoration texture bleeding · ac4dce1c
      Vlad Zahorodnii authored
      Summary:
      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
      nicer.
      
      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
      ac4dce1c
    • Vlad Zahorodnii's avatar
      [x11] Name client pixmap instead of frame pixmap · 754b72d1
      Vlad Zahorodnii authored
      Summary:
      Since KDE 4.2 - 4.3 times, KWin doesn't paint window decorations on real
      X11 windows, except when compositing is turned off. This leaves us with
      a problem. The actual client contents is inside a larger texture with no
      useful pixel data around it. This and decoration texture bleeding are
      the main factors that contribute to 1px gap between the server-side
      decoration and client contents with effects such as wobbly windows, and
      zoom.
      
      Another problem with naming frame pixmap instead of client pixmap is
      that it doesn't quite go along with wayland. It only makes more difficult
      to abstract window quad generation in the scene.
      
      Since we don't actually need the frame window when compositing is on,
      there is nothing that holds us from redirecting client windows instead
      of frame windows. This will help us to fix the texture bleeding issue
      and also help us with the ongoing redesign of the scene.
      
      Test Plan: X11 clients are still composited.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: davidedmundson, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D25610
      754b72d1
    • David Edmundson's avatar
      Port away from overloaded KCModule signal · f45ad69c
      David Edmundson authored
      Test Plan: Compiles
      
      Reviewers: #kwin, apol, zzag
      
      Reviewed By: #kwin, apol, zzag
      
      Subscribers: zzag, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D25666
      f45ad69c
    • David Edmundson's avatar
      warnings-- · 7f587d11
      David Edmundson authored
      Reviewers: apol, zzag
      
      Reviewed By: apol, zzag
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D25667
      7f587d11
  10. 01 Dec, 2019 3 commits
  11. 30 Nov, 2019 2 commits