diff --git a/0001-loader_dri3-glx-egl-Reinstate-the-loader_dri3_vtable.patch b/0001-loader_dri3-glx-egl-Reinstate-the-loader_dri3_vtable.patch deleted file mode 100644 index b2ccd38..0000000 --- a/0001-loader_dri3-glx-egl-Reinstate-the-loader_dri3_vtable.patch +++ /dev/null @@ -1,131 +0,0 @@ -From 318e8c521e81b2dc90f3c9f4855d60c334b4523a Mon Sep 17 00:00:00 2001 -From: Thomas Hellstrom -Date: Fri, 9 Feb 2018 09:37:19 +0100 -Subject: [PATCH] loader_dri3/glx/egl: Reinstate the loader_dri3_vtable - get_dri_screen callback - -Removing this callback caused rendering corruption in some multi-screen cases, -so it is reinstated but without the drawable argument which was never used -by implementations and was confusing since the drawable could have been -created with another screen. - -Cc: "17.3 18.0" mesa-stable@lists.freedesktop.org -Fixes: 5198e48a0d (loader_dri3/glx/egl: Remove the loader_dri3_vtable get_dri_screen callback) -Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105013 -Reported-by: Daniel van Vugt -Tested-by: Timo Aaltonen -Signed-off-by: Thomas Hellstrom -Reviewed-by: Brian Paul -(cherry picked from commit f386776ea55f86d0288c955cf4cf877a1b4a027d) ---- - src/egl/drivers/dri2/platform_x11_dri3.c | 12 ++++++++++++ - src/glx/dri3_glx.c | 11 +++++++++++ - src/loader/loader_dri3_helper.c | 12 +++++++++++- - src/loader/loader_dri3_helper.h | 1 + - 4 files changed, 35 insertions(+), 1 deletion(-) - -diff --git a/src/egl/drivers/dri2/platform_x11_dri3.c b/src/egl/drivers/dri2/platform_x11_dri3.c -index 6e40eaa596..060b5f83a3 100644 ---- a/src/egl/drivers/dri2/platform_x11_dri3.c -+++ b/src/egl/drivers/dri2/platform_x11_dri3.c -@@ -75,6 +75,17 @@ egl_dri3_get_dri_context(struct loader_dri3_drawable *draw) - return dri2_ctx->dri_context; - } - -+static __DRIscreen * -+egl_dri3_get_dri_screen(void) -+{ -+ _EGLContext *ctx = _eglGetCurrentContext(); -+ struct dri2_egl_context *dri2_ctx; -+ if (!ctx) -+ return NULL; -+ dri2_ctx = dri2_egl_context(ctx); -+ return dri2_egl_display(dri2_ctx->base.Resource.Display)->dri_screen; -+} -+ - static void - egl_dri3_flush_drawable(struct loader_dri3_drawable *draw, unsigned flags) - { -@@ -88,6 +99,7 @@ static const struct loader_dri3_vtable egl_dri3_vtable = { - .set_drawable_size = egl_dri3_set_drawable_size, - .in_current_context = egl_dri3_in_current_context, - .get_dri_context = egl_dri3_get_dri_context, -+ .get_dri_screen = egl_dri3_get_dri_screen, - .flush_drawable = egl_dri3_flush_drawable, - .show_fps = NULL, - }; -diff --git a/src/glx/dri3_glx.c b/src/glx/dri3_glx.c -index f280a8cef7..016f91b196 100644 ---- a/src/glx/dri3_glx.c -+++ b/src/glx/dri3_glx.c -@@ -116,6 +116,16 @@ glx_dri3_get_dri_context(struct loader_dri3_drawable *draw) - return (gc != &dummyContext) ? dri3Ctx->driContext : NULL; - } - -+static __DRIscreen * -+glx_dri3_get_dri_screen(void) -+{ -+ struct glx_context *gc = __glXGetCurrentContext(); -+ struct dri3_context *pcp = (struct dri3_context *) gc; -+ struct dri3_screen *psc = (struct dri3_screen *) pcp->base.psc; -+ -+ return (gc != &dummyContext && psc) ? psc->driScreen : NULL; -+} -+ - static void - glx_dri3_flush_drawable(struct loader_dri3_drawable *draw, unsigned flags) - { -@@ -150,6 +160,7 @@ static const struct loader_dri3_vtable glx_dri3_vtable = { - .set_drawable_size = glx_dri3_set_drawable_size, - .in_current_context = glx_dri3_in_current_context, - .get_dri_context = glx_dri3_get_dri_context, -+ .get_dri_screen = glx_dri3_get_dri_screen, - .flush_drawable = glx_dri3_flush_drawable, - .show_fps = glx_dri3_show_fps, - }; -diff --git a/src/loader/loader_dri3_helper.c b/src/loader/loader_dri3_helper.c -index fbda3d635c..2e3b6c619e 100644 ---- a/src/loader/loader_dri3_helper.c -+++ b/src/loader/loader_dri3_helper.c -@@ -1311,6 +1311,7 @@ dri3_get_pixmap_buffer(__DRIdrawable *driDrawable, unsigned int format, - xcb_sync_fence_t sync_fence; - struct xshmfence *shm_fence; - int fence_fd; -+ __DRIscreen *cur_screen; - - if (buffer) - return buffer; -@@ -1341,8 +1342,17 @@ dri3_get_pixmap_buffer(__DRIdrawable *driDrawable, unsigned int format, - if (!bp_reply) - goto no_image; - -+ /* Get the currently-bound screen or revert to using the drawable's screen if -+ * no contexts are currently bound. The latter case is at least necessary for -+ * obs-studio, when using Window Capture (Xcomposite) as a Source. -+ */ -+ cur_screen = draw->vtable->get_dri_screen(); -+ if (!cur_screen) { -+ cur_screen = draw->dri_screen; -+ } -+ - buffer->image = loader_dri3_create_image(draw->conn, bp_reply, format, -- draw->dri_screen, draw->ext->image, -+ cur_screen, draw->ext->image, - buffer); - if (!buffer->image) - goto no_image; -diff --git a/src/loader/loader_dri3_helper.h b/src/loader/loader_dri3_helper.h -index 4ce98b8c59..839cba30df 100644 ---- a/src/loader/loader_dri3_helper.h -+++ b/src/loader/loader_dri3_helper.h -@@ -99,6 +99,7 @@ struct loader_dri3_vtable { - void (*set_drawable_size)(struct loader_dri3_drawable *, int, int); - bool (*in_current_context)(struct loader_dri3_drawable *); - __DRIcontext *(*get_dri_context)(struct loader_dri3_drawable *); -+ __DRIscreen *(*get_dri_screen)(void); - void (*flush_drawable)(struct loader_dri3_drawable *, unsigned); - void (*show_fps)(struct loader_dri3_drawable *, uint64_t); - }; --- -2.16.2 - diff --git a/Makefile b/Makefile index a426a07..f13527b 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -VERSION ?= 18.0.0-rc4 +VERSION ?= 18.0.0-rc5 SANITIZE ?= 1 DIRNAME = mesa-${VERSION} diff --git a/mesa.spec b/mesa.spec index 9c804f5..74a1dba 100644 --- a/mesa.spec +++ b/mesa.spec @@ -57,12 +57,12 @@ %global sanitize 1 -%global rctag rc4 +%global rctag rc5 Name: mesa Summary: Mesa graphics libraries Version: 18.0.0 -Release: 0.4%{?rctag:.%{rctag}}%{?dist} +Release: 0.5%{?rctag:.%{rctag}}%{?dist} License: MIT URL: http://www.mesa3d.org @@ -86,9 +86,6 @@ Patch4: 0004-bigendian-assert.patch Patch10: glvnd-fix-gl-dot-pc.patch Patch11: 0001-Fix-linkage-against-shared-glapi.patch -# backport from upstream -Patch1001: 0001-loader_dri3-glx-egl-Reinstate-the-loader_dri3_vtable.patch - BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: automake @@ -696,6 +693,9 @@ popd %endif %changelog +* Mon Mar 26 2018 Peter Robinson 18.0.0-0.5.rc5 +- Update to 18.0.0 rc5 + * Mon Mar 19 2018 Adam Jackson - 18.0.0-0.4.rc4 - Build with python3 diff --git a/sources b/sources index c46ef89..595541c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (mesa-18.0.0-rc4.tar.xz) = b1ef640ffb24af9c901dbbc80d459354e6f91862733e0b7bdfcaee56cefdad0b94e99490cbfdca0dfd4f0bbb65fc5e427c9116da7a60c5834226e845591303a9 +SHA512 (mesa-18.0.0-rc5.tar.xz) = a2c73c376bb9f0668c972062c8a0ef108f65d098261a95cbd140d09df728036c26e46bd4100663b78d1ea47d99c1f45c52973cba8c63b4443ceef3d319085bf3