[gtk/wip/damaged-but-no-frost-bite: 4/5] xxx! pretend like i'm using nvidia vendor driver
- From: Ray Strode <halfline src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/damaged-but-no-frost-bite: 4/5] xxx! pretend like i'm using nvidia vendor driver
- Date: Fri, 29 May 2020 20:22:59 +0000 (UTC)
commit 0bbfa3a86f9709b3395958bb3ccb3be0a01af7e8
Author: Ray Strode <rstrode redhat com>
Date: Fri May 29 15:04:01 2020 -0400
xxx! pretend like i'm using nvidia vendor driver
gdk/x11/gdkglcontext-x11.c | 38 +++++++++++++++++++++++++-------------
1 file changed, 25 insertions(+), 13 deletions(-)
---
diff --git a/gdk/x11/gdkglcontext-x11.c b/gdk/x11/gdkglcontext-x11.c
index f2a752d690..67a7cc3f2b 100644
--- a/gdk/x11/gdkglcontext-x11.c
+++ b/gdk/x11/gdkglcontext-x11.c
@@ -575,6 +575,29 @@ create_legacy_context (GdkDisplay *display,
return res;
}
+static gboolean
+on_timeout_for_testing (GdkGLContext *context)
+{
+ GdkX11GLContext *context_x11 = GDK_X11_GL_CONTEXT (context);
+ GdkSurface *surface = gdk_gl_context_get_surface (context);
+
+ if (context_x11->frame_fence)
+ {
+ GLenum wait_result;
+
+ wait_result = glClientWaitSync (context_x11->frame_fence, 0, 16000000);
+
+ if (wait_result == GL_ALREADY_SIGNALED || TRUE)
+ {
+ glDeleteSync (context_x11->frame_fence);
+ context_x11->frame_fence = 0;
+ _gdk_x11_surface_set_still_painting_frame (surface, FALSE);
+ }
+ }
+
+ return G_SOURCE_REMOVE;
+}
+
#ifdef HAVE_XDAMAGE
static gboolean
on_gl_surface_xevent (GdkGLContext *context,
@@ -596,19 +619,7 @@ on_gl_surface_xevent (GdkGLContext *context,
if (damage_xevent->damage != context_x11->xdamage)
return FALSE;
- if (context_x11->frame_fence)
- {
- GLenum wait_result;
-
- wait_result = glClientWaitSync (context_x11->frame_fence, 0, 0);
-
- if (wait_result == GL_ALREADY_SIGNALED)
- {
- glDeleteSync (context_x11->frame_fence);
- context_x11->frame_fence = 0;
- _gdk_x11_surface_set_still_painting_frame (surface, FALSE);
- }
- }
+ g_timeout_add (4, on_timeout_for_testing, context);
return FALSE;
}
@@ -921,6 +932,7 @@ gdk_x11_screen_init_gl (GdkX11Screen *screen)
*/
display_x11->has_async_glx_swap_buffers = TRUE;
}
+ display_x11->has_async_glx_swap_buffers = TRUE;
GDK_DISPLAY_NOTE (display, OPENGL,
g_message ("GLX version %d.%d found\n"
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]