Commit graph

24767 commits

Author SHA1 Message Date
l10n daemon script
28c2dd9afe GIT_SILENT Sync po/docbooks with svn 2023-04-17 03:48:30 +00:00
Vlad Zahorodnii
ce1e957181 backends/x11: Use EGL_KHR_platform_gbm
We provide own window system integration bits, so use the
EGL_KHR_platform_gbm extension to get the EGLDisplay for the consistency
sake.
2023-04-16 19:55:08 +00:00
Vlad Zahorodnii
285aa072e9 backends/wayland: Use EGL_KHR_platform_gbm
We provide own window system integration bits, so use the
EGL_KHR_platform_gbm extension to get the EGLDisplay for the consistency
sake.
2023-04-16 19:55:08 +00:00
Vlad Zahorodnii
0dea46548b backends/drm: Drop support for EGL_MESA_platform_gbm
Most platforms nowadays should support EGL_KHR_platform_gbm.
2023-04-16 19:55:08 +00:00
Xaver Hugl
56b2d8d8aa platformsupport/scenes/opengl: pass the correct arguments into eglDestroyImageKHR 2023-04-16 21:17:00 +02:00
Xaver Hugl
86635abe2b platformsupport/scenes/opengl: actually use externalOnly array
It was accidentally dropped in a refactor
2023-04-16 20:16:31 +02:00
l10n daemon script
f327f8e514 GIT_SILENT Sync po/docbooks with svn 2023-04-16 02:36:19 +00:00
Vlad Zahorodnii
e9614f030c Move vsync monitor helpers to utils/
There was no utils directory when they had been introduced.
2023-04-15 17:51:28 +00:00
Vlad Zahorodnii
dca1268187 backends/x11: Port to the new gbm buffer allocator 2023-04-15 14:44:02 +00:00
Xaver Hugl
f8bf89e267 wayland/clientbuffer: use std::unique_ptr properly
Taking the address of a reference that's a dereference of a newly created
object is the most possibly confusing way to initialize a std::unique_ptr.
Instead, just pass a std::unique_ptr around to take ownership of
2023-04-15 16:03:04 +02:00
Vlad Zahorodnii
9f7517a55c backends/wayland: Minor code cleanup 2023-04-15 14:00:32 +03:00
Vlad Zahorodnii
103d8d8abe {core,backends/wayland}: Refactor gbm buffer allocator 2023-04-15 10:21:42 +00:00
Vlad Zahorodnii
3ac4f8a7dc core: Introduce base GraphicsBuffer
Currently, there exists the separation between the buffers provided by
the clients and the buffers created by the compositor.

In hindsight, this separation is not great because it leads to
specialized code paths in the output backend. For example, we have a
separate code path for direct scanout and presenting composited frame.
But you could view the latter case as "direct scanout of a compositor
buffer".

The main idea behind the buffer type is to provide a base buffer type
for client buffers and composited frame buffers (not drm fbs) that we
could pass around, import as textures, etc.
2023-04-15 10:21:42 +00:00
l10n daemon script
c77b5909de GIT_SILENT Sync po/docbooks with svn 2023-04-15 02:40:15 +00:00
l10n daemon script
c987f5da82 SVN_SILENT made messages (.desktop file) - always resolve ours
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"
2023-04-15 02:34:38 +00:00
Nicolas Fella
8c9c45b8f1 Add option to do nothing when activating window on another desktop
Some users prefer this over the existing options. It e.g. allows to open
a bunch of links and only then switch to the browser on a different desktop

BUG: 464283
2023-04-14 19:06:21 +00:00
Nicolas Fella
653681ac40 Allow activating windows on other desktops regardless of focus stealing protection
Currently, on X11, when activating a window that is not on the current desktop we allow this
only if focus stealing protection is set to none.

If any focus stealing protection is set then activation is denied. That behavior is
unintiutive to the user. When I e.g. click on a notification from a chat app I expect
something to happen, regardless of focus stealing protection.

Remove the special handling of windows on different desktops and only apply the usual
focus stealing prevention checks (based on timestamps etc). This also matches the behavior
on Wayland.
2023-04-14 19:06:21 +00:00
Vlad Zahorodnii
c8c021a780 Remove some unused functions
Format querying logic has been moved to EglDisplay.
2023-04-14 14:28:45 +00:00
Vlad Zahorodnii
b9ba12d02e wayland: Reimplement wl-drm
As of nowadays, most clients have switched to the linux-dmabuf protocol,
except Xwayland, which still needs the wl-drm protocol.

On the other hand, we would like to unify some buffer handling code.
There are a few options:

- drop the support for wl-drm protocol. Not doable, because Xwayland
  still needs it, even though it uses the linux dmabuf feedback protocol
  too
- re-implement the wl-drm protocol
- re-implement the minimal part of the wl-drm protocol needed by
  Xwayland

This change goes after the third option. Only the node name and the
capabilities will be sent. The buffer factory requests are not
implemented, but they can be if we discover that some clients need them.
2023-04-14 14:13:56 +00:00
l10n daemon script
66ca843946 GIT_SILENT Sync po/docbooks with svn 2023-04-14 02:20:48 +00:00
Marco Martin
ef92eedce2 screencast: Base the frame skippin on max_framerate
the fixed framerate apparently needs to br 0/1 and to control
the actual framerate need to set the max one
2023-04-13 16:59:15 +02:00
Aleix Pol
226d8c0a3b screencast: Ensure we respect the negotiated framerate
Discards frames sent under the timeframe that was negotiated with the
client. This allows clients to just request the frames that they should
be able to compute.
2023-04-13 16:59:14 +02:00
Aleix Pol
b9f9617fc7 screencast: Offer the real framerate range we have available
When setting up a stream, make sure we are offering the framerate that
the source has.
2023-04-13 16:58:41 +02:00
l10n daemon script
4049dfa2a5 GIT_SILENT Sync po/docbooks with svn 2023-04-13 02:38:36 +00:00
Andreas Cord-Landwehr
230c5cc4f7 Include missing cmath header 2023-04-12 18:44:00 +02:00
Nate Graham
d25b9ebdb1 kcms/rules: improve text for window rules with descriptions
In particular, explain what all of the the focus stealing prevention
and protection settings do.

My understanding of the different modes comes from reading the code
and code comments in activation.cpp.

CCBUG: 458976
2023-04-12 14:03:52 +00:00
Xaver Hugl
b14f7959eb backends/drm: add another multi gpu fallback
With the dmabuf multi-gpu path, a buffer is imported to the secondary GPU
and presented directly, but importing a buffer that's usable for scanout
is not possible that way on most hardware. To prevent CPU copy from being
needed in those cases, this commit introduces a fallback where the buffer
is imported for rendering only, and then copied to a local buffer that's
presented on the screen.

CCBUG: 452219
CCBUG: 465809
2023-04-12 15:28:35 +02:00
Xaver Hugl
7bb56eb363 platformsupport/scenes/opengl: move egl dmabuf format queries to KWinEglDisplay 2023-04-12 15:25:41 +02:00
Xaver Hugl
94ac8d235b platformsupport: remove initBufferConfigs
Instead, rely on EGL_KHR_no_config_context everywhere except the standalone x11 backend
2023-04-12 15:25:21 +02:00
Xaver Hugl
57c7eccb32 libkwineffects: extract most useful kwinglplatform bits to a separate class 2023-04-12 15:16:33 +02:00
Xaver Hugl
ab7286fad1 platformsupport/scenes: move egl context into a separate class 2023-04-12 15:01:51 +02:00
Xaver Hugl
48fb07b367 platformsupport/scenes: move egldisplay code into a helper class 2023-04-12 14:57:49 +02:00
Xaver Hugl
acf38d364b backends/drm: add linear dmabuf multi gpu fallback 2023-04-12 13:41:10 +02:00
Xaver Hugl
3c37717121 backends/drm: add more logging for multi gpu 2023-04-12 13:41:10 +02:00
l10n daemon script
a8851d8e64 GIT_SILENT Sync po/docbooks with svn 2023-04-12 02:34:12 +00:00
Vlad Zahorodnii
cae64719ec Install kwin_export.h in kwin directory
It allows to build a third party effect. In addition to that, it makes
sense to keep kwin things in a kwin directory.
2023-04-11 19:23:52 +00:00
Noah Davis
616783d892 Blacklist Spectacle for all window open/close effects
Spectacle needs to be blacklisted in order to stay out of its own
screenshots.

BUG: 467890
BUG: 463105
CCBUG: 465784
2023-04-11 19:11:56 +00:00
Ismael Asensio
d4d5e3b7a8 kcm/rules: Improve "Ignore Geometry" property UI
This property is not used on Wayland because windows are
already not allowed to set their own geometry, so let's
hide it from the UI.

Also update the tooltip to explicitly state which properties
the `Ignore Geometry` property does affect on X11

BUG: 431265
FIXED-IN: 6.0
2023-04-11 20:03:38 +02:00
Nate Graham
afdf3ad106 kcms/rules: show explanatory text with contextual help button, not tooltip
Tooltips don't work when using the system with touch, and these here are
also a bit annoying with a pointing device since they appear instantly on
hover and take up a lot of space, so they unexpectedly pop up and cover
UI elements a lot.

To improve this, use a KCM.ContextualHelpButton inline in the list items
to show the explanation when clicked or hovered, just like we do in most
other places in other KCMs.

To make this work, the internal line breaks in the explanatory text had
to be removed to make the text flow properly with an arbitrarily-sized
tooltip.
2023-04-11 10:39:38 -06:00
Vlad Zahorodnii
e2d690e0aa Remove unused stuff in wayland_server.{h,cpp} 2023-04-11 13:39:23 +03:00
Vlad Zahorodnii
076fdebebd Revert "scene: Avoid creating SurfaceItem for Xwayland's cursor surfaces"
This reverts commit b549776b68.
2023-04-11 10:01:05 +00:00
Vlad Zahorodnii
f286c311d5 Revert "cursorsource: fix scaling with Xwayland"
This reverts commit 81571203f1.
2023-04-11 10:01:05 +00:00
Vlad Zahorodnii
0edf264947 Stop setting XCURSOR_THEME and XCURSOR_SIZE envvars 2023-04-11 10:01:05 +00:00
Vlad Zahorodnii
2d7bd94f16 Remove some unused includes 2023-04-11 12:47:41 +03:00
Vlad Zahorodnii
a08857cfd7 Drop OpenGLBackend::supportsSwapBuffersWithDamage()
It's unused.
2023-04-11 12:45:08 +03:00
Vlad Zahorodnii
17f4cde9af Drop kwineglext.h
EGL_WL_bind_wayland_display definitions are needed only in one cpp file,
so move them there instead.

We need to duplicate EGL_WL_bind_wayland_display definitions because
libepoxy doesn't define them for us.
2023-04-11 12:03:16 +03:00
Vlad Zahorodnii
43b7d2e457 Remove EGL_EXT_image_dma_buf_import and EGL_EXT_image_dma_buf_import_modifiers definitions
libepoxy provides them to us.
2023-04-11 11:59:09 +03:00
Vlad Zahorodnii
466868f5d4 wayland: Refactor linux-dmabuf buffer management
At the moment, the render backend provides its specific implementation
of LinuxDmaBufV1ClientBuffer. This has some of its limitations. For
example, due to the strong coupling, compositing restarts must be
handled carefully. It's hard to have a generic code path to import
dmabufs, which would be nice to have in order to unify graphics buffer
allocation across various backends; currently, it's all scattered.

To make the code simpler, this change drops the commented out YUV import
code path for now. Given that Mesa implicitly handles it, the need for
it is no longer so urgent.
2023-04-11 07:59:28 +00:00
l10n daemon script
5c7e53d635 GIT_SILENT Sync po/docbooks with svn 2023-04-11 03:16:13 +00:00
l10n daemon script
d1f718fe6a GIT_SILENT Sync po/docbooks with svn 2023-04-10 02:23:21 +00:00