diff --git a/src/backends/native/meta-renderer-native-private.h b/src/backends/native/meta-renderer-native-private.h index 997fe6f69..2d3fe1971 100644 --- a/src/backends/native/meta-renderer-native-private.h +++ b/src/backends/native/meta-renderer-native-private.h @@ -60,6 +60,7 @@ typedef struct _MetaRendererNativeGpuData struct { MetaSharedFramebufferCopyMode copy_mode; gboolean has_EGL_EXT_image_dma_buf_import_modifiers; + gboolean needs_explicit_sync; /* For GPU blit mode */ EGLContext egl_context; diff --git a/src/backends/native/meta-renderer-native.c b/src/backends/native/meta-renderer-native.c index 5ffbafb58..e150ba260 100644 --- a/src/backends/native/meta-renderer-native.c +++ b/src/backends/native/meta-renderer-native.c @@ -1806,6 +1806,7 @@ init_secondary_gpu_data_gpu (MetaRendererNativeGpuData *renderer_gpu_data, CoglContext *cogl_context; CoglDisplay *cogl_display; const char **missing_gl_extensions; + const char *egl_vendor; egl_display = meta_render_device_get_egl_display (render_device); 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, "EGL_EXT_image_dma_buf_import_modifiers", 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; out: maybe_restore_cogl_egl_api (renderer_native);