<html>
<head>
<base href="https://bugzilla.gnome.org/" />
</head>
<body><span class="vcard"><a href="page.cgi?id=describeuser.html&login=ebassi%40gmail.com" title="Emmanuele Bassi (:ebassi) <ebassi@gmail.com>"> <span class="fn">Emmanuele Bassi (:ebassi)</span></a>
</span> changed
<a class="bz_bug_link
bz_status_NEW "
title="NEW - On Wayland, application containing GtkGLArea stops responding if it's not on current workspace"
href="https://bugzilla.gnome.org/show_bug.cgi?id=769835">bug 769835</a>
<br>
<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>What</th>
<th>Removed</th>
<th>Added</th>
</tr>
<tr>
<td style="text-align:right;">Attachment #342410 status</td>
<td>none
</td>
<td>needs-work
</td>
</tr></table>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - On Wayland, application containing GtkGLArea stops responding if it's not on current workspace"
href="https://bugzilla.gnome.org/show_bug.cgi?id=769835#c17">Comment # 17</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - On Wayland, application containing GtkGLArea stops responding if it's not on current workspace"
href="https://bugzilla.gnome.org/show_bug.cgi?id=769835">bug 769835</a>
from <span class="vcard"><a href="page.cgi?id=describeuser.html&login=ebassi%40gmail.com" title="Emmanuele Bassi (:ebassi) <ebassi@gmail.com>"> <span class="fn">Emmanuele Bassi (:ebassi)</span></a>
</span></b>
<pre>Review of <span class=""><a href="attachment.cgi?id=342410&action=diff" name="attach_342410" title="wayland: Disable EGL swap interval">attachment 342410</a> <a href="attachment.cgi?id=342410&action=edit" title="wayland: Disable EGL swap interval">[details]</a></span> <a href='review?bug=769835&attachment=342410'>[review]</a>:
::: gdk/wayland/gdkglcontext-wayland.c
@@ +441,3 @@
+static gboolean
+egl_config_can_disable_swap_interval (GdkDisplay *display,
+ const EGLConfig *config)
EGLConfig is already a pointer; I don't think you need to pass it as a pointer…
@@ +446,3 @@
+ EGLint interval;
+
+ if (!eglGetConfigAttrib (display_wayland->egl_display, *config,
… especially since you're just dereferencing it here.
@@ +483,3 @@
return NULL;
+ if (!egl_config_can_disable_swap_interval (display, &config))
I'm not convinced this is an appropriate action to take.
If swap interval cannot be disabled then we should fall back to the existing
behaviour; it's not optimal, but saying "you can't have GL because your driver
does not allow disabling swap interval" seems to me far more drastic than
necessary.
Just save the return value inside the GdkGLContext and emit a warning or a
debug message.
@@ +543,3 @@
eglMakeCurrent(display_wayland->egl_display, EGL_NO_SURFACE,
EGL_NO_SURFACE,
EGL_NO_CONTEXT);
+ eglSwapInterval (dpy, 0);
Not sure it's needed, here; we're unbinding everything, which means there's no
context and no surface to swap.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are on the CC list for the bug.</li>
</ul>
</body>
</html>