diff options
-rw-r--r-- | gsk/gl/gskgldriver.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gsk/gl/gskgldriver.c b/gsk/gl/gskgldriver.c index faea458469..84a8937412 100644 --- a/gsk/gl/gskgldriver.c +++ b/gsk/gl/gskgldriver.c @@ -1576,7 +1576,8 @@ create_texture_from_texture_destroy (gpointer data) gdk_gl_context_make_current (state->context); glDeleteTextures (1, &state->texture_id); - glDeleteSync (state->sync); + if (state->sync) + glDeleteSync (state->sync); g_clear_object (&state->context); g_free (state); } @@ -1603,7 +1604,8 @@ gsk_gl_driver_create_gdk_texture (GskGLDriver *self, state = g_new0 (GskGLTextureState, 1); state->texture_id = texture_id; state->context = g_object_ref (self->command_queue->context); - state->sync = glFenceSync (GL_SYNC_GPU_COMMANDS_COMPLETE, 0); + if (gdk_gl_context_has_fence_sync (self->command_queue->context)) + state->sync = glFenceSync (GL_SYNC_GPU_COMMANDS_COMPLETE, 0); g_hash_table_steal (self->textures, GUINT_TO_POINTER (texture_id)); |