Mesa (master): wgl: Don't crash in stw_make_current if current framebuffer is NULL
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Jan 12 15:49:56 UTC 2021
Module: Mesa
Branch: master
Commit: a2751080aad2b061d8a2954c9144ed86fe1bba8d
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a2751080aad2b061d8a2954c9144ed86fe1bba8d
Author: Louis-Francis Ratté-Boulianne <lfrb at collabora.com>
Date: Tue Dec 8 22:57:39 2020 -0500
wgl: Don't crash in stw_make_current if current framebuffer is NULL
Fixes #3878
Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7999>
---
src/gallium/frontends/wgl/stw_context.c | 18 ++++++++++++++----
1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/src/gallium/frontends/wgl/stw_context.c b/src/gallium/frontends/wgl/stw_context.c
index 91861cd42e9..8f7150eb6df 100644
--- a/src/gallium/frontends/wgl/stw_context.c
+++ b/src/gallium/frontends/wgl/stw_context.c
@@ -446,11 +446,21 @@ stw_make_current(HDC hDrawDC, HDC hReadDC, DHGLRC dhglrc)
}
} else {
if (old_ctx->shared) {
- stw_st_flush(old_ctx->st, old_ctx->current_framebuffer->stfb,
- ST_FLUSH_FRONT | ST_FLUSH_WAIT);
+ if (old_ctx->current_framebuffer) {
+ stw_st_flush(old_ctx->st, old_ctx->current_framebuffer->stfb,
+ ST_FLUSH_FRONT | ST_FLUSH_WAIT);
+ } else {
+ struct pipe_fence_handle *fence = NULL;
+ old_ctx->st->flush(old_ctx->st,
+ ST_FLUSH_FRONT | ST_FLUSH_WAIT, &fence,
+ NULL, NULL);
+ }
} else {
- stw_st_flush(old_ctx->st, old_ctx->current_framebuffer->stfb,
- ST_FLUSH_FRONT);
+ if (old_ctx->current_framebuffer)
+ stw_st_flush(old_ctx->st, old_ctx->current_framebuffer->stfb,
+ ST_FLUSH_FRONT);
+ else
+ old_ctx->st->flush(old_ctx->st, ST_FLUSH_FRONT, NULL, NULL, NULL);
}
}
}
More information about the mesa-commit
mailing list