mutter/src/backends/native
Jonas Ådahl 14f6869381 onscreen/native: Make sure to reset the EGL context after dGPU blit
On hybrid graphics system, the primary path used to transfer the stage
framebuffer onto the dedicated GPU's video memory preparing for scanout,
is using the dedicated GPU to glBlitFramebuffer() the content from the
iGPU texture onto the scanout buffer.

After we have done this, we reset the current EGL context back to the
one managed by cogl. What we failed to do, however, was to reset the
current EGL context when we inhibited the actual page flip due to having
entered power save mode.

When we later started to paint again, Cogl thought the current EGL
context was still the correct one, but in fact it was the one used for
the iGPU -> dGPU blit, causing various EGL surface errors, and as a side
effect, eventually hitting an assert.

Fix this by making sure we reset to the Cogl managed EGL context also
for this case.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1803>
2021-04-14 17:42:32 +00:00
..
dbus-utils.c
dbus-utils.h
gen-default-modes.py
meta-backend-native-private.h backends/native: Implement support for pointer barriers 2015-01-19 02:27:59 -08:00
meta-backend-native-types.h Introduce virtual monitors 2021-03-12 15:09:45 +00:00
meta-backend-native.c backend/native: Only disable KMS modifiers for i915 2021-04-14 07:14:24 +00:00
meta-backend-native.h tests: Add headless native backend test 2021-03-12 15:09:45 +00:00
meta-barrier-native.c src: Stop using GSlice 2021-02-22 13:52:27 +01:00
meta-barrier-native.h backends/native: Add a bunch of "_in_impl" suffixes to functions 2020-11-27 15:14:34 +00:00
meta-clutter-backend-native.c backend: Take over seat ownership from the clutter backend 2021-03-13 18:56:21 +00:00
meta-clutter-backend-native.h clutter/backend/native: Don't double manage stage implementation 2021-03-13 18:56:21 +00:00
meta-cogl-utils.c native/cogl-utils: Fix license header 2021-01-28 20:33:01 +00:00
meta-cogl-utils.h native/cogl-utils: Minor macro cleanup 2021-01-28 20:33:01 +00:00
meta-crtc-kms.c crtc/kms: Make the 'transform-handled' API pass through MetaCrtcNative 2021-03-12 15:09:45 +00:00
meta-crtc-kms.h crtc/kms: Make the 'transform-handled' API pass through MetaCrtcNative 2021-03-12 15:09:45 +00:00
meta-crtc-mode-kms.c crtc-mode-kms: Wrap MetaKmsMode instead of drmModeModeInfo 2021-01-22 16:47:08 +00:00
meta-crtc-mode-kms.h crtc-mode-kms: Wrap MetaKmsMode instead of drmModeModeInfo 2021-01-22 16:47:08 +00:00
meta-crtc-mode-virtual.c Introduce virtual monitors 2021-03-12 15:09:45 +00:00
meta-crtc-mode-virtual.h Introduce virtual monitors 2021-03-12 15:09:45 +00:00
meta-crtc-native.c crtc/kms: Make the 'transform-handled' API pass through MetaCrtcNative 2021-03-12 15:09:45 +00:00
meta-crtc-native.h crtc/kms: Make the 'transform-handled' API pass through MetaCrtcNative 2021-03-12 15:09:45 +00:00
meta-crtc-virtual.c Introduce virtual monitors 2021-03-12 15:09:45 +00:00
meta-crtc-virtual.h Introduce virtual monitors 2021-03-12 15:09:45 +00:00
meta-cursor-renderer-native.c Introduce virtual monitors 2021-03-12 15:09:45 +00:00
meta-cursor-renderer-native.h cursor-renderer/native: Update HW state during frames 2021-01-22 16:47:08 +00:00
meta-drm-buffer-dumb.c native: Consolidate DRM buffer management to MetaDrmBuffer types 2021-01-22 16:47:08 +00:00
meta-drm-buffer-dumb.h native: Consolidate DRM buffer management to MetaDrmBuffer types 2021-01-22 16:47:08 +00:00
meta-drm-buffer-gbm.c native: Consolidate DRM buffer management to MetaDrmBuffer types 2021-01-22 16:47:08 +00:00
meta-drm-buffer-gbm.h native: Consolidate DRM buffer management to MetaDrmBuffer types 2021-01-22 16:47:08 +00:00
meta-drm-buffer-import.c native: Consolidate DRM buffer management to MetaDrmBuffer types 2021-01-22 16:47:08 +00:00
meta-drm-buffer-import.h native: Consolidate DRM buffer management to MetaDrmBuffer types 2021-01-22 16:47:08 +00:00
meta-drm-buffer-private.h native: Consolidate DRM buffer management to MetaDrmBuffer types 2021-01-22 16:47:08 +00:00
meta-drm-buffer.c native: Consolidate DRM buffer management to MetaDrmBuffer types 2021-01-22 16:47:08 +00:00
meta-drm-buffer.h native: Consolidate DRM buffer management to MetaDrmBuffer types 2021-01-22 16:47:08 +00:00
meta-gpu-kms.c backend/native: Only disable KMS modifiers for i915 2021-04-14 07:14:24 +00:00
meta-gpu-kms.h backend/native: Only disable KMS modifiers for i915 2021-04-14 07:14:24 +00:00
meta-input-device-native.c seat-impl: Destroy libinput objects on input thread on tear down 2021-01-11 17:17:39 +00:00
meta-input-device-native.h backends/native: Dispose the libinput device in the input thread 2020-12-16 17:09:58 +01:00
meta-input-device-tool-native.c backends/native: Add distinct meta-input-thread.h header 2020-11-27 15:14:34 +00:00
meta-input-device-tool-native.h backends/native: Add distinct meta-input-thread.h header 2020-11-27 15:14:34 +00:00
meta-input-settings-native.c Change all g_memdup() to g_memdup2() 2021-02-04 19:16:28 +01:00
meta-input-settings-native.h backends/native: Add distinct meta-input-thread.h header 2020-11-27 15:14:34 +00:00
meta-input-thread.h backends/native: Add distinct meta-input-thread.h header 2020-11-27 15:14:34 +00:00
meta-keymap-native.c clutter/keymap: Make caps and num lock state properties 2021-03-04 17:39:08 +00:00
meta-keymap-native.h clutter/keymap: Make caps and num lock state properties 2021-03-04 17:39:08 +00:00
meta-kms-connector-private.h kms/connector: Look up CRTC_ID property 2021-01-22 16:47:08 +00:00
meta-kms-connector.c kms/connector: Don't use MetaConnectorType for connector type 2021-03-12 15:09:45 +00:00
meta-kms-connector.h kms/connector: Don't use MetaConnectorType for connector type 2021-03-12 15:09:45 +00:00
meta-kms-crtc-private.h kms/crtc: Keep track of ACTIVE property value 2021-01-22 16:47:08 +00:00
meta-kms-crtc.c Change all g_memdup() to g_memdup2() 2021-02-04 19:16:28 +01:00
meta-kms-crtc.h kms/crtc: Make MetaKmsCrtcGamma reusable 2021-01-22 16:47:08 +00:00
meta-kms-device-private.h kms-impl-simple: Add fake cursor planes if no real ones 2020-03-07 21:40:50 +00:00
meta-kms-device.c kms: Add way to run without mode setting 2021-03-12 15:09:45 +00:00
meta-kms-device.h kms/device: Add plane getter 2021-01-22 16:47:08 +00:00
meta-kms-impl-device-atomic.c kms/impl-device-atomic: Remove useless warning 2021-04-14 12:53:25 +00:00
meta-kms-impl-device-atomic.h kms: Add atomic MetaKmsImplDevice backend 2021-01-22 16:47:08 +00:00
meta-kms-impl-device-dummy.c kms/impl-device: Fix some argument naming mistakes 2021-04-14 12:53:25 +00:00
meta-kms-impl-device-dummy.h kms: Add way to run without mode setting 2021-03-12 15:09:45 +00:00
meta-kms-impl-device-simple.c kms/impl-device: Fix some argument naming mistakes 2021-04-14 12:53:25 +00:00
meta-kms-impl-device-simple.h kms: Move impl backend inherit MetaKmsImplDevice instead of MetaKmsImpl 2021-01-22 16:47:08 +00:00
meta-kms-impl-device.c kms/impl-device: Fix some argument naming mistakes 2021-04-14 12:53:25 +00:00
meta-kms-impl-device.h kms/impl-device: Fix some argument naming mistakes 2021-04-14 12:53:25 +00:00
meta-kms-impl.c kms: Move impl backend inherit MetaKmsImplDevice instead of MetaKmsImpl 2021-01-22 16:47:08 +00:00
meta-kms-impl.h kms: Move impl backend inherit MetaKmsImplDevice instead of MetaKmsImpl 2021-01-22 16:47:08 +00:00
meta-kms-mode-private.h kms/mode: Add mode flags 2021-01-22 16:47:08 +00:00
meta-kms-mode.c crtc-mode-kms: Wrap MetaKmsMode instead of drmModeModeInfo 2021-01-22 16:47:08 +00:00
meta-kms-mode.h crtc-mode-kms: Wrap MetaKmsMode instead of drmModeModeInfo 2021-01-22 16:47:08 +00:00
meta-kms-page-flip-private.h kms/page-flip: Pass ownership of listener user data along with closure 2021-01-22 16:47:08 +00:00
meta-kms-page-flip.c kms/page-flip: Pass ownership of listener user data along with closure 2021-01-22 16:47:08 +00:00
meta-kms-plane-private.h kms/update: Make plane assignment take rotation instead of property list 2021-01-22 16:47:08 +00:00
meta-kms-plane.c kms/update: Make plane assignment take rotation instead of property list 2021-01-22 16:47:08 +00:00
meta-kms-plane.h kms-impl-simple: Add fake cursor planes if no real ones 2020-03-07 21:40:50 +00:00
meta-kms-private.h
meta-kms-types.h backend/native: Only disable KMS modifiers for i915 2021-04-14 07:14:24 +00:00
meta-kms-update-private.h kms/update: Encapsulate custom page flip fields in object 2021-01-22 16:47:08 +00:00
meta-kms-update.c Change all g_memdup() to g_memdup2() 2021-02-04 19:16:28 +01:00
meta-kms-update.h kms/page-flip: Pass ownership of listener user data along with closure 2021-01-22 16:47:08 +00:00
meta-kms-utils.c backend/native: Calculate refresh rate in double-precision 2021-03-05 14:37:48 +00:00
meta-kms-utils.h backend/native: Add tests for refresh rate calculation 2021-03-05 14:37:48 +00:00
meta-kms.c kms: Add way to run without mode setting 2021-03-12 15:09:45 +00:00
meta-kms.h kms: Add way to run without mode setting 2021-03-12 15:09:45 +00:00
meta-launcher.c launcher: Use gnome.gdbusgen and add prefix to generated API 2021-04-14 12:53:25 +00:00
meta-launcher.h meta: Remave meta_activate_session() 2021-01-28 20:05:23 +00:00
meta-monitor-manager-native.c Introduce virtual monitors 2021-03-12 15:09:45 +00:00
meta-monitor-manager-native.h native: Rename MetaMonitorManagerKms to MetaMonitorManagerNative 2021-03-12 15:09:45 +00:00
meta-onscreen-native.c onscreen/native: Make sure to reset the EGL context after dGPU blit 2021-04-14 17:42:32 +00:00
meta-onscreen-native.h onscreen/native: Move function declaration to the correct header file 2021-02-09 08:27:11 +00:00
meta-output-kms.c output/kms: Only add common modes for single mode connectors 2021-04-14 15:15:52 +00:00
meta-output-kms.h output/kms: Make EDID be read via MetaOutputNative object 2021-03-12 15:09:45 +00:00
meta-output-native.c output/kms: Make EDID be read via MetaOutputNative object 2021-03-12 15:09:45 +00:00
meta-output-native.h output/kms: Make EDID be read via MetaOutputNative object 2021-03-12 15:09:45 +00:00
meta-output-virtual.c Introduce virtual monitors 2021-03-12 15:09:45 +00:00
meta-output-virtual.h Introduce virtual monitors 2021-03-12 15:09:45 +00:00
meta-pointer-constraint-native.c clutter: Drop clutter_input_device_get_coords() method 2020-11-27 15:14:33 +00:00
meta-pointer-constraint-native.h
meta-renderer-native-gles3.c *: Fix spelling mistakes found by codespell 2020-08-29 09:10:31 +00:00
meta-renderer-native-gles3.h
meta-renderer-native-private.h renderer/native: Move out CoglOnscreen code to separate file 2021-01-30 09:11:45 +00:00
meta-renderer-native.c renderer: Switch open coded list clearing to g_clear_list() 2021-04-14 12:53:25 +00:00
meta-renderer-native.h native: Add headless mode using surfaceless EGL context 2021-03-12 15:09:45 +00:00
meta-seat-impl.c backends/native: Check whether views are scaled via MetaViewportInfo 2021-04-13 10:32:14 +00:00
meta-seat-impl.h seat/impl: Make it possible to run without libinput 2021-03-12 15:09:45 +00:00
meta-seat-native.c backend: Destroy seat explicitly 2021-03-13 18:56:21 +00:00
meta-seat-native.h seat-native: Remove left-over function declaration 2021-04-14 12:53:25 +00:00
meta-stage-native.c Introduce virtual monitors 2021-03-12 15:09:45 +00:00
meta-stage-native.h
meta-udev.c backend/native: Only disable KMS modifiers for i915 2021-04-14 07:14:24 +00:00
meta-udev.h backend/native: Only disable KMS modifiers for i915 2021-04-14 07:14:24 +00:00
meta-virtual-input-device-native.c virtual-input-device/native: Verify device cleanup in impl_state_free() 2021-02-23 10:05:32 +00:00
meta-virtual-input-device-native.h
meta-virtual-monitor-native.c Introduce virtual monitors 2021-03-12 15:09:45 +00:00
meta-virtual-monitor-native.h Introduce virtual monitors 2021-03-12 15:09:45 +00:00
meta-xkb-utils.c backends/native: Update keyboard a11y status in seat impl 2020-11-27 15:14:34 +00:00
meta-xkb-utils.h backends/native: Update keyboard a11y status in seat impl 2020-11-27 15:14:34 +00:00