- 30 Sep, 2019 1 commit
-
-
Jonas Ådahl authored
It was not the lack of forcing the shadow fb that caused slowness, but rather due to the method the shadow fb content was copied onto the scanout fb. With 'clutter: Use cogl_blit_framebuffer() for shadow FB' we'll use a path that shouldn't be slow when copying onto the scanout fb. Also 437f6b3d accidentally enabled shadow fb when using hw accelerated contexts, due to the cap being set to 1 in majority of drivers. While the kernel documentation for the related field says "hint to userspace to prefer shadow-fb rendering", the name of the hint when exposed to userspace is DRM_CAP_DUMB_PREFER_SHADOW, thus should only be taken into consideration for dumb buffers, not rendering in general. This reverts commit 437f6b3d. !818
-
- 28 Sep, 2019 1 commit
-
-
Adam Jackson authored
!814
-
- 27 Sep, 2019 6 commits
-
-
Jonas Ådahl authored
The commit 'renderer/native: Use shadow fb on software GL if preferred' attempted to force using a shadow fb when using llvmpipe in order to speed up blending, but instead only did so when llvmpipe AND the drm device explicityl asked for it. Now instead always force it for llvmpipe and other software rendering backends, and otherwise just query the drm device (i.e. DRM_CAP_DUMB_PREFER_SHADOW). !807
-
Olivier Fourdan authored
If there is no transformation, use `cogl_blit_framebuffer()` as a shortcut in `clutter_stage_view_blit_offscreen()`, that dramatically improves performance when using a shadow framebuffer. !809
-
Robert Mader authored
Since the recent clutter-content work, legacy scaling (in contrast to the new stage-view-scaling) only applies to surfaces that belong to a window. This broke scaling of DnD surfaces. As a workaround, apply the same scaling on DnD-surface-actors until we use stage-view-scaling by default and can remove this again. Also: small corrections of geometry calculation !780
-
Robert Mader authored
This allows us to implement more sophisticated logic for the different cases. For DnD surfaces, use the geometry scale of the monitor where the pointer is, instead of incorrectly assuming '1' as it was before. !780
-
Jonas Ådahl authored
Otherwise we won't get core dumps if the launching binary has capabilities set. !811
-
Carlos Garnacho authored
The meta_display_update_focus_window() call has indirect dependencies on the X11 focus window, in order to determine the correct focus window on the Wayland side (i.e. may turn out NULL with certain X windows). In order to have the right x11_display->focus_xwindow there, we should perform first the focus update on the X11 display. Fixes focusing of Java applications, as those don't seem to go through _NET_ACTIVE_WINDOW. Closes: #819
-
- 26 Sep, 2019 2 commits
-
-
Matej Urbančič authored
-
Jonas Ådahl authored
When tearing down, gnome-shell may call various methods a bit late, specifically while MetaDisplay is closing, after MetaCompositor is freed. Handle calls to the fullscreen unredirect inhibitation counters happening after MetaCompositor tear down by ignoring them. We're closing anyway, so it's not a problem. Fixes: gnome-shell#1710 !808
-
- 25 Sep, 2019 1 commit
-
-
Nathan Follens authored
-
- 24 Sep, 2019 2 commits
-
-
Olivier Fourdan authored
With the addition of the locate-pointer special keybinding (defaults to the [Control] key), we have now two separate special modifier keys which can be triggered separately, one for the locate-pointer action and another one for overlay. When processing those special modifier keys, mutter must ensure that the key was pressed alone, being a modifier, the key could otherwise be part of another key combo. As result, if both special modifiers keys are pressed simultaneously, mutter will try to trigger the function for the second key being pressed, and since those special modifier keys have no default handler function set, that will crash mutter. Check if the handler has a function associated and treat the keybinding as not found if no handler function is set, as with the special modifier keys. #823
-
Olivier Fourdan authored
The `process_event()` would check for a existing keybinding handler and abort if there is none, however the test is done after the handler had been accessed, hence defeating the purpose of the check. Move the check to verify there is an existing keybinding handler before actually using it. #823
-
- 20 Sep, 2019 16 commits
-
-
Robert Mader authored
shaped_texture requires the clip to be in surface coordinates. Scale it accordingly. !758
-
Robert Mader authored
There were multiple bugs present after the ClutterContent transition. Refactor `get_image` to: - always assume surface coordinates for the clip - return a cairo_surface in buffer size - make the offscreen path take size arguments, so we can easily change the assumption in get_image - fix some clipping bugs on the way !758
-
Marco Trevisan authored
As per commit 75cffd0e MetaShapedTexture is a GObject implementing the Clutter Content interface. Reflect this on the type declaration. !796
-
Marco Trevisan authored
Redefine the docstring for functions using shaped texture, setting the clip as nullable. !79
-
Marco Trevisan authored
As per the code definition the clip can be a null rectangle, and we can also return a null surface, so mark them as nullable in the introspection. !796
-
Marco Trevisan authored
Delayed clutter timelines might be removed while they are still in the process of being executed, but if they are not playing yet their delay timeout won't be stopped, causing them to be executed anyway, leading to a potential crash. In fact if something else keeps a reference on the timelines (i.e. gjs), the dispose vfunc delay cancellation won't take effect, causing the timelines to be started and added to the master clock. To avoid this, expose clutter_timeline_cancel_delay() function and call it if a timeline is not playing but has a delay set. Fixes #815 !805
-
Marco Trevisan authored
If a timeline is delayed and we request to stop or pause it, we are emitting the "::paused" signal on it, however this has never been started, and so nothing has really be paused. So, just try to cancel the delay on pause and return if not playing. No code in mutter or gnome-shell is affected by this, so it is safe to change. !805
-
Marco Trevisan authored
Avoid repeating the same code for canceling the delay timeout, using a function for later uses. !805
-
Adam Jackson authored
Some drivers expose EGL_EXT_image_dma_buf_import_modifiers so you can query supported formats, but don't support any modifiers. Handle this by treating it like DRM_FORMAT_MOD_INVALID. !782
-
Marco Trevisan authored
Clutter stage used to compute the initial projection using a fixed z translation which wasn't matching the one we computed in calculate_z_translation(). This caused to have a wrong initial projection on startup which was then correctly recomputed only at the first paint. However, since this calculation doesn't depend on view, but only on viewport size, perspective's fovy and z_near we can safely do this at startup and only when any of those parameters change. Then we can move the computation out _clutter_stage_maybe_setup_viewport() since the cogl framebuffer viewport sizes aren't affecting this. Fixes gnome-shell#1639 !803
-
Iain Lane authored
GCC's manpage says that this flag does the following: Do not store floating-point variables in registers, and inhibit other options that might change whether a floating-point value is taken from a register or memory. This option prevents undesirable excess precision on machines such as the 68000 where the floating registers (of the 68881) keep more precision than a "double" is supposed to have. Similarly for the x86 architecture. For most programs, the excess precision does only good, but a few programs rely on the precise definition of IEEE floating point. We rely on this behaviour in our fork of clutter. When performing floating point computations on x86, we are getting the wrong results because of this architecture's use of the CPU's extended (x87, non-IEEE confirming) precision by default. If we enable `-ffloat-store` here, then we'll get the same results everywhere by storing into variables instead of registers. This does not remove the need to be correct when handling floats, but it does mean we don't need to be more correct than the IEEE spec requires. !785
-
Daniel van Vugt authored
On 64-bit systems uint64_t is %lu but on 32-bit systems it is %llu. !778
-
Daniel van Vugt authored
On 64-bit systems uint64_t is %lu but on 32-bit systems it is %llu. !778
-
Daniel van Vugt authored
On 64-bit systems int64_t is %lx but on 32-bit systems it is %llx. !778
-
Daniel van Vugt authored
On 64-bit systems int64_t is %ld but on 32-bit systems it is %lld. !778
-
Daniel van Vugt authored
To support 32-bit systems without compiler warnings. !778
-
- 16 Sep, 2019 5 commits
-
-
Jonas Ådahl authored
The watch might be removed during firing, meaning the source is destroyed after returning. Avoid use-after-free by unsetting the timeout before firing. Returning G_SOURCE_CONTINUE in that case is harmless, as source is destroyed. Fixes: #796 !799
-
Jonas Ådahl authored
No need to type cast a `MetaIdleMonitorWatch *` to a `MetaIdleMonitorWatch *`. !799
-
Jonas Ådahl authored
It wasn't used outside the file, so no reason to not have it static. !799
-
Michal Lazo authored
free path in finalize !775
-
Michal Lazo authored
Properly free kms-device in case of invalid initialization !772
-
- 13 Sep, 2019 3 commits
-
-
Carlos Garnacho authored
Instead of open coding the X11 focus management in display.c, expose it as a single function with similar arguments to its MetaDisplay counterpart. This just means less X11 specifics in display.c. Closes: #751
-
Carlos Garnacho authored
MetaDisplay and MetaX11Display focus windows are slightly decoupled, we cannot rely here on the MetaDisplay focus to be updated yet. We however know the X Window that got focused, so lookup the corresponding MetaWindow (and client X window) from it. Closes: #751
-
Jonas Ådahl authored
Warning about it causes test case failures if there are not enough privileges, which is likely when running the test suite locally. !797
-
- 12 Sep, 2019 3 commits
-
-
Georges Basile Stavracas Neto authored
They are missing the closing parenthesis. Add them. !795