Commit graph

5883 commits

Author SHA1 Message Date
Xaver Hugl
acba91672b backends/drm: fix typo 2023-11-09 15:53:08 +01:00
Xaver Hugl
d24edc7890 backends/drm: ensure correct colors with direct scanout of NV12 buffers
If another compositor changes the color encoding and color range properties, the
resulting colors will be wrong. This commit ensures they're always set to BT.709
limited range to prevent that
2023-11-09 12:16:17 +00:00
Xaver Hugl
c1312a5551 backends/drm: fix pageflip events getting lost when outputs get turned off
When a display gets turned off while a pageflip event was still pending, the pending
state gets changed immediately, without waiting for the pageflip event to arrive first.
When this happens, activePending() returns false, and so the pageflip event gets discarded.
This commit changes the logic to only check for activePending() when the pageflip is for a
modeset, avoiding that issue.

BUG: 476340
BUG: 476341
BUG: 476342
BUG: 437520
BUG: 475146
2023-11-09 11:35:19 +00:00
l10n daemon script
e2d072afec 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-11-09 02:08:31 +00:00
Xaver Hugl
bdc62b3516 backends/drm: ensure icc profiles aren't applied with HDR
ICC profiles don't support HDR yet, and they don't make a lot of sense with
how unpredictable displays behave with BT2020 and/or PQ inputs
2023-11-09 01:42:10 +00:00
Nate Graham
cdadf7cf7f Access ShadowedLabel from PlasmaExtras
That's where it's been moved to; see
https://invent.kde.org/plasma/plasma-framework/-/merge_requests/951.
2023-11-08 13:26:22 -07:00
Aleix Pol Gonzalez
6cac17aac0 GLShader: Use floating point values to interact with vectors
Signed-off-by: Victoria Fischer <victoria.fischer@mbition.io>
2023-11-08 17:07:37 +01:00
Aleix Pol Gonzalez
7b64433830 GLShader: Fix sdrBrightness into float
It's used as a float and otherwise it makes (some?) drivers very
confused as they're required to cast at runtime.
The original value is double so it makes sense to keep the same type.

Signed-off-by: Victoria Fischer <victoria.fischer@mbition.io>
2023-11-08 16:46:45 +01:00
Xaver Hugl
15080192f7 Remove latency policy and render time estimator settings
As KWin measures render times properly now, these settings and estimations
should no longer be necessary, so this commit replaces them with one hardcoded
algorithm that should prevent most dropped frames and reduce latency
2023-11-08 13:29:29 +00:00
Vlad Zahorodnii
d52ba8c3fe wayland: Fix transaction cleanup with destroyed surfaces
When sorting surfaces in the ancestor order we need to ignore null
surfaces.

In addition to that, we also need to properly handle the case where
a transaction with dependencies is unlocked and it contains null
surfaces.

For example, if there are three transactions A -> B -> C, and the B
transaction is unlocked, we cannot apply it until transaction A is
applied. The readiness check is based on checking the first pending
transaction of the surface. But if the surface is null, the check
will be skipped, which is not ideal as transaction B can be applied
before transaction A now. To address that, this change makes every
transaction entry remember the previous transaction. With that, the
readiness check can be performed even if the surface has been destroyed.

BUG: 475648
2023-11-08 13:09:51 +00:00
Vlad Zahorodnii
16389f0298 Remove NAMELINK_SKIP for libkwin
libkwin headers are installed now, so it should be removed.
2023-11-08 09:06:54 +00:00
Xaver Hugl
9d4fe3adf1 implement the frog color management protocol 2023-11-07 20:23:06 +01:00
Xaver Hugl
15d6d8c336 wayland/surface: add the output a surface is on the most 2023-11-07 20:23:06 +01:00
Christophe Marin
b40e960ad7 Bump kwin soversion to 6 2023-11-07 12:56:29 +01:00
Nate Graham
c5a3749a40 XWayland: allow snooping non-character keys with elevated snooping modes
These keys do not represent a security risk to allow apps to snoop since
they can't be used to type passwords etc.

BUG: 474705
FIXED-IN: 6.0
2023-11-06 15:19:19 +00:00
Xaver Hugl
28c27609a4 xdgshellwindow: enforce a minimum size for clients
It doesn't make sense for a window to become 1x1 pixels small. When we have
server side decorations we also know that the decoration takes a lot of
space, so this commit enforces a bigger minimum size for decorated windows

BUG: 469237
2023-11-06 14:55:57 +00:00
Xaver Hugl
d0a9e90716 platformsupport/scenes/opengl: fix format filtering
We support formats that are neither 10 nor 8 bits per color, so the filtering needs
to reflect that
2023-11-06 12:42:00 +01:00
Noah Davis
ea75c094a9 plugins/fallapart: Blacklist spectacle
Spectacle needs to be blacklisted in order to stay out of its own
screenshots.

BUG: 473565
2023-11-06 10:01:03 +00:00
David Edmundson
a8466c3604 layershell: Implement dockWantsInput
Kwin logic has a separate method for if a dock wants input, given layer
shells are always docks it is important to implement this.
2023-11-06 09:37:13 +00:00
Vlad Zahorodnii
0f5e719b61 wayland: Fix none keyboard interactivity in LayerShellV1Window
Window::acceptsFocus() is not taken into account when a window is
activated using Workspace::activateWindow(). The main reason is because
of different input models on X11.

Instead, Window::takeFocus() should check itself if the window accepts
focus.
2023-11-06 08:07:32 +00:00
Nicolas Fella
dc826911ec Adapt to KWindowSystem changes 2023-11-06 00:22:14 +01:00
Nate Graham
40a4f4c90b kcms/options: set focus policy strings on load, not just on change
Right now the string is only set when the option is changed to anything
else. That's fine, but we need to set it on load too, or else the user
will see a placeholder string instead of the real text if they don't
change anything.

BUG: 456718
FIXED-IN: 6.0
2023-11-01 22:41:25 +00:00
Xaver Hugl
b1f2c40827 kcms/compositing: remove tearing setting
It's now shown in KScreen instead
2023-11-01 21:44:07 +00:00
Xaver Hugl
ba3a70e8a8 backends/drm: remove m_current
It's not needed and just adds overhead
2023-11-01 21:29:00 +00:00
Xaver Hugl
ff2bc0798f backends/drm: fix properties not being applied when a modeset is not needed
When testing whether or not a modeset is needed, all that gets tested is
whether or not the kernel would allow the commit to happen without the ALLOW_MODESET
flag. If there's properties that are only changed in DrmPipeline::prepareAtomicModeset,
we need to apply those in the next commit, regardless of whether or not
the ALLOW_MODESET flag is necessary.

BUG: 476060
2023-11-01 21:29:00 +00:00
Xaver Hugl
457deeb27d glshadermanager: optimize pq conversions 2023-11-01 21:15:20 +01:00
Xaver Hugl
cbb574efff libkwineffects/glshadermanager: support PQ as client EOTF 2023-11-01 21:02:38 +01:00
Xaver Hugl
21d8b58e82 scene/surfaceitemwayland: set initial color description 2023-11-01 21:02:38 +01:00
Aki Sakurai
36e7eaf13a Add option to map tablet to full desktop area.
Some users might want to map the tablet to full desktop area.

BUG: 450874
2023-11-01 17:42:39 +00:00
Xaver Hugl
190f688c97 libkwineffects: add support for scRGB 2023-10-31 22:51:39 +00:00
Arjen Hiemstra
8e5d45ae9d Update showfps effect to QuickCharts API changes 2023-10-31 20:35:26 +00:00
Nate Graham
85008c4a0d kcm/rules: Port away from Kirigami.AbstractListItem
It's being removed for KF6 and ItemDelegate works fine here.
2023-10-31 14:05:20 -06:00
l10n daemon script
74ef01dbc0 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-10-30 02:09:50 +00:00
Niccolò Venerandi
7f0e201880 Fix animation when clicking grouped windows in task manager
Since hidden windows are not placed in the grid-like view, `cell.isReady` is always false for them, and they never switch to the "active-hidden" state when the effect is turned on. This commit makes sure that windows hide even if their cell isn't ready.
2023-10-29 19:05:15 +00:00
Xaver Hugl
a902b66299 backends/drm: remove unnecessary comment
DrmPipeline::needsModeset, and by extension, DrmGpu::needsModeset is no
longer expensive in any way, so checking them multiple times per frame is
not a problem anymore
2023-10-29 13:04:04 +00:00
l10n daemon script
b7dc3e3698 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-10-28 02:14:03 +00:00
Vlad Zahorodnii
22efedc09c Rename VirtualDesktopManager::desktopCreated signal
Rename it to desktopAdded to match activityAdded, windowAdded, etc.
2023-10-26 07:21:49 +00:00
Vlad Zahorodnii
8fbf287254 libkwineffects: Port to VirtualDesktop
This makes effects api consistent with the scripting api. In addition to
that, VirtualDesktop objects are more stable.
2023-10-26 07:21:49 +00:00
Laurent Montel
465499d3a7 GIT_SILENT: use KLocalizedString::setApplicationDomain(QByteArrayLiteral => saving one deep data copy 2023-10-26 07:02:28 +00:00
l10n daemon script
0b82df303d 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-10-26 02:19:20 +00:00
Vlad Zahorodnii
f2dfac8497 libkwineffects: Drop EffectsHandler.windowToDesktop
Use EffectsHandler.windowToDesktops instead.
2023-10-25 18:52:37 +03:00
Vlad Zahorodnii
b3b2e96148 libkwineffects: Replace EffectScreen with Output 2023-10-25 15:13:14 +00:00
Xaver Hugl
7db4df9915 outputconfigurationstore: differentiate between outputs with their mst path
The DisplayPort multi stream path should be more stable in comparison to
connector names, so prefer that for differentiating between outputs with
the same EDID.

BUG: 470718
2023-10-25 14:58:47 +00:00
Xaver Hugl
0391b65628 scene/itemrenderer_opengl: switch shaders depending on the input
This allows using more expensive shaders where needed, and less expensive ones
where possible
2023-10-25 14:19:12 +00:00
Xaver Hugl
09278caf48 add colorspace metadata to surfaces and items, and use it in the OpenGL renderer 2023-10-25 14:19:12 +00:00
Xaver Hugl
c1b4806962 delete the colord integration plugin
ICC profiles are now set through KScreen, which conflicts with colord. Colord is also
dropped because applications may read the profile for the current output from it, and
so KWin and the application both apply the profile, resulting in wrong colors.
2023-10-25 16:05:27 +02:00
Xaver Hugl
872aa55630 allow setting the icc profile through the output management protocol 2023-10-25 16:05:26 +02:00
Xaver Hugl
006d1f6a14 outputconfigurationstore: store icc profile paths 2023-10-25 15:46:13 +02:00
Xaver Hugl
e441b5f35d libkwineffects/colorspace: add some documentation 2023-10-25 15:34:21 +02:00
Xaver Hugl
8d25550c22 backends/drm: support applying icc profiles with color management
While applications are still restricted to sRGB, this allows working on sRGB
content on displays with a wide color gamut as the whole profile gets applied,
instead of just the VCGT.

CCBUG: 439135
2023-10-25 15:34:21 +02:00