<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Thu, Jun 8, 2017 at 3:39 PM Marc-André Lureau <<a href="mailto:marcandre.lureau@gmail.com">marcandre.lureau@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi<br><div><br><div class="gmail_quote"></div></div></div><div dir="ltr"><div><div class="gmail_quote"><div dir="ltr">On Thu, Jun 8, 2017 at 12:55 PM Pavel Grunt <<a href="mailto:pgrunt@redhat.com" target="_blank">pgrunt@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Thu, 2017-06-08 at 00:55 +0400, <a href="mailto:marcandre.lureau@redhat.com" target="_blank">marcandre.lureau@redhat.com</a> wrote:<br>
> From: Marc-André Lureau <<a href="mailto:marcandre.lureau@redhat.com" target="_blank">marcandre.lureau@redhat.com</a>><br>
><br>
> And call spice_egl_resize_display() when initializing the context.<br>
><br>
> This fixes the "Couldn't find current GL or GLX context" error for<br>
> me<br>
> on X11. I thought first it was somehow related to commit<br>
> a395ac59447de<br>
> "spice-widget: init egl only after first gl_scanout", but reverting<br>
> it<br>
> didn't solve the problem, there are other timing changes, probably<br>
> at<br>
> gtk level.<br>
><br>
> Signed-off-by: Marc-André Lureau <<a href="mailto:marcandre.lureau@redhat.com" target="_blank">marcandre.lureau@redhat.com</a>><br>
> ---<br>
>  src/spice-widget.c | 4 +++-<br>
>  1 file changed, 3 insertions(+), 1 deletion(-)<br>
><br>
> diff --git a/src/spice-widget.c b/src/spice-widget.c<br>
> index d948c6d..319d867 100644<br>
> --- a/src/spice-widget.c<br>
> +++ b/src/spice-widget.c<br>
> @@ -1329,7 +1329,7 @@ static void set_egl_enabled(SpiceDisplay<br>
> *display, bool enabled)<br>
>                                           enabled ? "gl-area" :<br>
> "draw-area");<br>
>      }<br>
><br>
> -    if (enabled) {<br>
> +    if (enabled && d->egl.context_ready) {<br>
>          spice_egl_resize_display(display, d->ww, d->wh);<br>
>      }<br>
><br>
> @@ -2863,6 +2863,8 @@ void<br>
> spice_display_widget_gl_scanout(SpiceDisplay *display)<br>
>              g_critical("egl realize failed: %s", err->message);<br>
>              g_clear_error(&err);<br>
>          }<br>
> +<br>
> +        spice_egl_resize_display(display, d->ww, d->wh);<br>
>      }<br>
<br>
I am bit lost with this commit. next call is set_egl_enabled(display,<br>
true); which calls spice_egl_resize_display() (conditionally).<br></blockquote><div><br></div></div></div></div><div dir="ltr"><div><div class="gmail_quote"><div>We can't call spice_egl_resize_display() if the egl/gl context isn't ready.<br><br></div><div>set_egl_enabled() is for the widget to switch to the egl display. Perhaps we should rename the function switch_to_egl_display().<br><br></div><div>This function is called whenever we get gl drawing command from spice server. But the egl/gl context may not be ready at that time. So that function must still be run to switch the display, but has to delay any gl call to when the gl context is realied. That's why we add spice_egl_resize_display() there, to do the remaining egl setup.<br><br></div>I can add this to the commit message.<br></div></div></div></blockquote><div><br></div><div>ack with that? <br></div></div></div><div dir="ltr">-- <br></div><div data-smartmail="gmail_signature"><div dir="ltr">Marc-André Lureau<br></div></div>