glamor: Make our EGL context current before calling into GL in glamor_init
Without this, the context of another screen may be current, or no context at all if glamor_egl_init failed for another screen. Signed-off-by: Michel Dänzer <michel.daenzer@amd.com> Signed-off-by: Eric Anholt <eric@anholt.net> Reviewed-by: Dave Airlie <airlied@redhat.com> Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
parent
a8a0f6464a
commit
0a458a908e
|
@ -457,6 +457,20 @@ glamor_init(ScreenPtr screen, unsigned int flags)
|
|||
goto fail;
|
||||
}
|
||||
|
||||
glamor_priv->saved_procs.close_screen = screen->CloseScreen;
|
||||
screen->CloseScreen = glamor_close_screen;
|
||||
|
||||
/* If we are using egl screen, call egl screen init to
|
||||
* register correct close screen function. */
|
||||
if (flags & GLAMOR_USE_EGL_SCREEN) {
|
||||
glamor_egl_screen_init(screen, &glamor_priv->ctx);
|
||||
} else {
|
||||
if (!glamor_glx_screen_init(&glamor_priv->ctx))
|
||||
goto fail;
|
||||
}
|
||||
|
||||
glamor_make_current(glamor_priv);
|
||||
|
||||
if (epoxy_is_desktop_gl())
|
||||
glamor_priv->gl_flavor = GLAMOR_GL_DESKTOP;
|
||||
else
|
||||
|
@ -579,18 +593,6 @@ glamor_init(ScreenPtr screen, unsigned int flags)
|
|||
|
||||
glamor_set_debug_level(&glamor_debug_level);
|
||||
|
||||
glamor_priv->saved_procs.close_screen = screen->CloseScreen;
|
||||
screen->CloseScreen = glamor_close_screen;
|
||||
|
||||
/* If we are using egl screen, call egl screen init to
|
||||
* register correct close screen function. */
|
||||
if (flags & GLAMOR_USE_EGL_SCREEN) {
|
||||
glamor_egl_screen_init(screen, &glamor_priv->ctx);
|
||||
} else {
|
||||
if (!glamor_glx_screen_init(&glamor_priv->ctx))
|
||||
goto fail;
|
||||
}
|
||||
|
||||
glamor_priv->saved_procs.create_screen_resources =
|
||||
screen->CreateScreenResources;
|
||||
screen->CreateScreenResources = glamor_create_screen_resources;
|
||||
|
|
Loading…
Reference in New Issue
Block a user