Commit Graph

30324 Commits

Author SHA1 Message Date
Jonas Ådahl
b8cdc91c19 x11-display: Clean up GdkDisplay opening
It exposed unnecessary public and private API, and used a global static
variable instead of a return value, none which was necessary. Remove
both API and use a return value for communicating to the caller.

This doesn't remove a public symbol, lets do that for GNOME 44.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2619>
2022-09-19 14:46:00 +00:00
Daniel van Vugt
dc5130ac01 cogl: Don't check glGetError for functions that don't return errors
This will at least make debug builds a tiny bit faster.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2615>
2022-09-19 14:24:39 +00:00
Daniel van Vugt
f1d7ccfa79 cogl: Add a quirk on Mali to glFlush before glGenerateMipmap
But only when the texture in question has associated framebuffers that
actually need flushing.

Workaround for: https://github.com/Xilinx/mali-userspace-binaries/issues/3
Related to: https://gitlab.gnome.org/GNOME/mutter/-/issues/2354

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2614>
2022-09-19 13:57:05 +00:00
Pawan Chitrakar
26f619559c Update Nepali translation 2022-09-19 05:16:28 +00:00
Sabri Ünal
3bc0dcec0a Update Turkish translation 2022-09-18 08:08:42 +00:00
Baurzhan Muftakhidinov
53339095b5 Update Kazakh translation 2022-09-18 06:23:40 +00:00
Florian Müllner
bdf3470a8a Bump version to 43.0
Update NEWS.
2022-09-17 18:28:44 +02:00
Jonas Ådahl
af65a01057 barrier: Make type derivable again
This was used gala to implement hot corners, and the way the barrier API
works, there isn't really any practical reasons to not make it
derivable, since the backend is a separate type and object.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2626>
2022-09-15 12:27:52 +00:00
Jonas Ådahl
cc9d2065e1 Revert "barrier: Get rid of private instance struct"
This reverts commit 4095c2431c.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2626>
2022-09-15 12:27:52 +00:00
Daniel van Vugt
a1873e0c4f core/events: Don't update the cursor renderer on motion under X11
Doing so was unnecessary and seemed to cause feedback to Xorg resulting
in heavy stuttering and random freezes.

We do however keep the call to `meta_cursor_tracker_invalidate_position`
so as to not undo the intention of 9bdf4b35.

Suggested by Carlos Garnacho.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5861 and
       https://launchpad.net/bugs/1989582

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2625>
2022-09-15 11:59:09 +00:00
Jonas Ådahl
da04ae4ca5 tests: Add duplicate color profile test case
This adds a copy of the calibration test profile and sets up a test to
first add it as a system profile, then setting up the XDG_DATA_HOME
directory so that the duplicate profile is detected, added, and later
discarded.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2622>
2022-09-15 11:22:54 +00:00
Jonas Ådahl
94e1f8702d color: Handle profiles not initializing succesfully
We might fail with some part of the color profile construction and
initialization. For example there might be a system wide profile with
the same ID as one we attempt to add from a local ICC directory. When
this happens, we should drop these profiles, and use the ones from the
system instead.

Profiles may fail to initialize for other reasons too, e.g.
unpredictable colord errors, or other I/O issues.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2429
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2622>
2022-09-15 11:22:54 +00:00
Jonas Ådahl
20a98e6849 color-profile: Fix error check in finalize
We won't get G_IO_ERROR's but CD_CLIENT_ERROR's.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2622>
2022-09-15 11:22:54 +00:00
Jonas Ådahl
166ad34423 color-profile: Don't try to remove the wrong profile on finalize
If our profile wasn't fully initialized, we'd try to clean it up, in an
attempt to handle race conditions by finding synchronously then cleaning
it up, but don't attempt this if the profile is ready, as that means we
didn't create one in the first place.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2622>
2022-09-15 11:22:54 +00:00
Jonas Ådahl
f94a5c7ff9 tests/dbusmock/colord: Fix system profile D-Bus path names
They had the username and userid in them, which they shouldn't.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2622>
2022-09-15 11:22:54 +00:00
Jonas Ådahl
a2000a1132 tests/dbusmock/colord: Implement FindProfileById
It's used when cleaning up profiles on race conditions.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2622>
2022-09-15 11:22:54 +00:00
Jonas Ådahl
8a53020e80 tests/dbusmoc/colord: Return proper AlreadyExists error for profiles
This matches what colord does, and allows us to rely on checking error
codes both in production and in the test suite.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2622>
2022-09-15 11:22:54 +00:00
Jonas Ådahl
3aecb1c262 color-profile: Rely on property on ICC for filename
This is instead of getting anything from the CdDevice. This avoids a
crash when CdDevice isn't successfully setup but something still tries
to look up the filename of the ICC profile.

This isn't a real bug fix for anything, but there is no reason having to
rely on CdDevice for this anyway, and as we don't really have control of
it, it's less reliable of containing something valid.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2622>
2022-09-15 11:22:54 +00:00
Alan Mortensen
fa1bb402d3 Update Danish translation 2022-09-13 13:17:47 +00:00
Alexander Shopov
7333f28ecc Update Bulgarian translation 2022-09-12 16:14:06 +00:00
Yosef Or Boczko
e334f57e41 Update Hebrew translation 2022-09-11 03:49:50 +00:00
Rūdolfs Mazurs
63ff1f613d Update Latvian translation 2022-09-06 19:02:54 +00:00
Zurab Kargareteli
3e60fece56 Update Georgian translation 2022-09-06 16:36:25 +00:00
Sveinn í Felli
80f09ff090 Update Icelandic translation
(cherry picked from commit 62447a32c014c47cf2e7f5e4dab97c38c8dade6d)
2022-09-06 11:35:15 +00:00
Kukuh Syafaat
e38acce37b Update Indonesian translation 2022-09-06 03:33:54 +00:00
Leônidas Araújo
1637272b8b Update Brazilian Portuguese translation 2022-09-06 00:27:01 +00:00
Matej Urbančič
76516319a9 Update Slovenian translation 2022-09-05 19:59:19 +00:00
Aurimas Černius
8d8fbdee45 Updated Lithuanian translation 2022-09-05 22:46:05 +03:00
Daniel Mustieles
311a79e150 Updated Spanish translation 2022-09-05 14:30:33 +02:00
Fran Dieguez
3f4736e044 Update Galician translation 2022-09-04 22:24:39 +00:00
Aleksandr Melman
7eff0c711e Update Russian translation 2022-09-04 20:46:13 +00:00
Florian Müllner
383c32e756 Bump version to 43.rc
Update NEWS.
2022-09-04 15:42:39 +02:00
Asier Sarasua Garmendia
830006d2ac Update Basque translation 2022-09-04 07:13:41 +00:00
Boyuan Yang
474a111406 Update Chinese (China) translation 2022-09-03 21:29:38 +00:00
Anders Jonsson
4ebc7e457b Update Swedish translation 2022-09-03 20:10:49 +00:00
Jonas Ådahl
be4e6484ae render-device: Unmake the EGLContext after checking whether hw accelerated
When creating a render device, we create a temporary EGLContext where we
then query the `GL_RENDERER` string to check whether the renderer is any
of the known software renderers. After we're done, we destroy the
context and move on.

This should be fine as according to specification eglDestroyContext(),
with the context being actually destroyed a bit later when it's no
longer current, but mesa, when running RK3399 (Pinebook Pro), this
results in a crash in a future eglMakeCurrent():

  #0 in dri_unbind_context () at ../src/gallium/frontends/dri/dri_context.c:266
  #1 in driUnbindContext () at ../src/gallium/frontends/dri/dri_util.c:763
  #2 in dri2_make_current () at ../src/egl/drivers/dri2/egl_dri2.c:1814
  #3 in eglMakeCurrent () at ../src/egl/main/eglapi.c:907
  ...

We can avoid this, however, by calling eglMakeCurrent() with
EGL_NO_CONTEXT on the EGLDisplay, prior to destroying, effectively
avoiding the crash, so lets do that.

Related: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7194
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2414
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2612>
2022-09-03 18:34:49 +02:00
Jonas Ådahl
b1a687ae57 tests/color: Test that we handle devices with no GAMMA_LUT
We should create the color device etc, but we shouldn't attempt to set
the GAMMA_LUT.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2611>
2022-09-03 14:41:36 +00:00
Jonas Ådahl
c724cb3720 tests/monitor-test-utils: Add way to make the GAMMA_LUT zero sized
This will be used to test devices that has no gamma capabilities.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2611>
2022-09-03 14:41:36 +00:00
Jonas Ådahl
b29604c3f8 tests/color-management: Move some utility functions higher up
That means they'll be re-usable without having to declare them on top.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2611>
2022-09-03 14:41:36 +00:00
Jonas Ådahl
255cd9a9ff color-device: Don't attempt to set GAMMA_LUT if LUT size is zero
This might happen on e.g. virtual machines. If we don't skip trying,
we'll end up crashing because we'll fail to create a look up table since
the size must be greater than zero to make any sense.

Fixes: baef39e603
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2415
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2611>
2022-09-03 14:41:36 +00:00
Hugo Carvalho
1bd06e645e Update Portuguese translation 2022-09-03 14:22:34 +00:00
Rūdolfs Mazurs
c89f262d39 Update Latvian translation 2022-09-03 13:14:12 +00:00
Piotr Drąg
79479868ae Update Polish translation 2022-09-03 12:56:51 +00:00
Danial Behzadi
bcb105eb68 Update Persian translation 2022-09-03 11:42:58 +00:00
Emin Tufan Çetin
2bde3402b3 Update Turkish translation 2022-09-03 06:46:22 +00:00
Balázs Úr
5e75d84181 Update Hungarian translation 2022-09-03 00:39:08 +00:00
Jonas Ådahl
1d4cdd1eb5 wayland/dma-buf: Always send modifiers when using surfaceless
We'll never scan out, which is why ADDFB2 is required otherwise, and we
won't enable the DMA buffer extension if
'EGL_EXT_image_dma_buf_import_modifiers' is missing, so send modifiers
in this case.

This also happens to avoid crashing when the GPU is null, since we'd
otherwise attempt to dereference it.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2578>
2022-09-02 20:43:05 +00:00
Jonas Ådahl
44dae3e160 kms: Only force legacy mode setting when using EGLStream
EGLStream is incompatible with atomic mode setting, but nvidia-drm when
using libgbm is not, so lets only deny using atomic mode setting when
the render device is an EGLStream based one.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2578>
2022-09-02 20:43:05 +00:00
Jonas Ådahl
58c3734d78 backend/native: Prepare render devices earlier than KMS
The type of render device used for a specific GPU affects the mode
setting backend that can be used, more specifically, when the render
device is an EGLStream based one, atomic mode setting isn't possible, as
page flipping is done via EGL, not via atomic mode setting commits.

Preparing the render devices before KMS devices means can make a more
informed decision whether to deny-list atomic mode setting for when
a certain GPU uses a EGLStream based render device instance.

This also means we need to translate mode setting devices to render node
devices when creating the render device itself, as doing it later when
creating the mode setting device is already too late.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2578>
2022-09-02 20:43:05 +00:00
Jonas Ådahl
1a0bd44694 backend: Hook up to the parent constructed()
Doing an early out in a constructed() is a bit awkward, and unexpected,
and makes it tricky to call the parents constructed() method (which we
didn't), so clean that up.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2578>
2022-09-02 20:43:05 +00:00