swrast: Fix eglMakeCurrent(dpy, NULL, NULL, ctx) (v2)
Fixes 14 piglits, mostly in egl_khr_create_context. v2: Also short-circuit the same-context-no-drawables case (Eric Anholt) Fixes: https://github.com/anholt/libepoxy/issues/177 Reviewed-by: Eric Anholt <eric@anholt.net> Signed-off-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
parent
7205bdf41f
commit
c1ec582059
|
@ -675,6 +675,9 @@ swrast_check_and_update_window_size( struct gl_context *ctx, struct gl_framebuff
|
|||
{
|
||||
GLsizei width, height;
|
||||
|
||||
if (!fb)
|
||||
return;
|
||||
|
||||
get_window_size(fb, &width, &height);
|
||||
if (fb->Width != width || fb->Height != height) {
|
||||
_mesa_resize_framebuffer(ctx, fb, width, height);
|
||||
|
@ -857,30 +860,26 @@ dri_make_current(__DRIcontext * cPriv,
|
|||
__DRIdrawable * driReadPriv)
|
||||
{
|
||||
struct gl_context *mesaCtx;
|
||||
struct gl_framebuffer *mesaDraw;
|
||||
struct gl_framebuffer *mesaRead;
|
||||
struct gl_framebuffer *mesaDraw = NULL;
|
||||
struct gl_framebuffer *mesaRead = NULL;
|
||||
TRACE;
|
||||
|
||||
if (cPriv) {
|
||||
struct dri_context *ctx = dri_context(cPriv);
|
||||
struct dri_drawable *draw;
|
||||
struct dri_drawable *read;
|
||||
mesaCtx = &dri_context(cPriv)->Base;
|
||||
|
||||
if (!driDrawPriv || !driReadPriv)
|
||||
return GL_FALSE;
|
||||
if (driDrawPriv && driReadPriv) {
|
||||
struct dri_drawable *draw = dri_drawable(driDrawPriv);
|
||||
struct dri_drawable *read = dri_drawable(driReadPriv);
|
||||
mesaDraw = &draw->Base;
|
||||
mesaRead = &read->Base;
|
||||
}
|
||||
|
||||
draw = dri_drawable(driDrawPriv);
|
||||
read = dri_drawable(driReadPriv);
|
||||
mesaCtx = &ctx->Base;
|
||||
mesaDraw = &draw->Base;
|
||||
mesaRead = &read->Base;
|
||||
|
||||
/* check for same context and buffer */
|
||||
if (mesaCtx == _mesa_get_current_context()
|
||||
&& mesaCtx->DrawBuffer == mesaDraw
|
||||
&& mesaCtx->ReadBuffer == mesaRead) {
|
||||
return GL_TRUE;
|
||||
}
|
||||
/* check for same context and buffer */
|
||||
if (mesaCtx == _mesa_get_current_context()
|
||||
&& mesaCtx->DrawBuffer == mesaDraw
|
||||
&& mesaCtx->ReadBuffer == mesaRead) {
|
||||
return GL_TRUE;
|
||||
}
|
||||
|
||||
_glapi_check_multithread();
|
||||
|
||||
|
|
Loading…
Reference in New Issue