renderer/native: Flag when explicit sync between GPUs is required
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3304>
This commit is contained in:

committed by
Marge Bot

parent
8c6aabb9ca
commit
5edb22d7d7
@ -60,6 +60,7 @@ typedef struct _MetaRendererNativeGpuData
|
|||||||
struct {
|
struct {
|
||||||
MetaSharedFramebufferCopyMode copy_mode;
|
MetaSharedFramebufferCopyMode copy_mode;
|
||||||
gboolean has_EGL_EXT_image_dma_buf_import_modifiers;
|
gboolean has_EGL_EXT_image_dma_buf_import_modifiers;
|
||||||
|
gboolean needs_explicit_sync;
|
||||||
|
|
||||||
/* For GPU blit mode */
|
/* For GPU blit mode */
|
||||||
EGLContext egl_context;
|
EGLContext egl_context;
|
||||||
|
@ -1806,6 +1806,7 @@ init_secondary_gpu_data_gpu (MetaRendererNativeGpuData *renderer_gpu_data,
|
|||||||
CoglContext *cogl_context;
|
CoglContext *cogl_context;
|
||||||
CoglDisplay *cogl_display;
|
CoglDisplay *cogl_display;
|
||||||
const char **missing_gl_extensions;
|
const char **missing_gl_extensions;
|
||||||
|
const char *egl_vendor;
|
||||||
|
|
||||||
egl_display = meta_render_device_get_egl_display (render_device);
|
egl_display = meta_render_device_get_egl_display (render_device);
|
||||||
if (egl_display == EGL_NO_DISPLAY)
|
if (egl_display == EGL_NO_DISPLAY)
|
||||||
@ -1872,6 +1873,11 @@ init_secondary_gpu_data_gpu (MetaRendererNativeGpuData *renderer_gpu_data,
|
|||||||
meta_egl_has_extensions (egl, egl_display, NULL,
|
meta_egl_has_extensions (egl, egl_display, NULL,
|
||||||
"EGL_EXT_image_dma_buf_import_modifiers",
|
"EGL_EXT_image_dma_buf_import_modifiers",
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
|
egl_vendor = meta_egl_query_string (egl, egl_display, EGL_VENDOR);
|
||||||
|
if (!g_strcmp0 (egl_vendor, "NVIDIA"))
|
||||||
|
renderer_gpu_data->secondary.needs_explicit_sync = TRUE;
|
||||||
|
|
||||||
ret = TRUE;
|
ret = TRUE;
|
||||||
out:
|
out:
|
||||||
maybe_restore_cogl_egl_api (renderer_native);
|
maybe_restore_cogl_egl_api (renderer_native);
|
||||||
|
Reference in New Issue
Block a user