Compare commits

...

7 Commits
master ... f27

Author SHA1 Message Date
Adam Jackson bff988e34f Repair the source tarball 2018-02-27 09:54:32 -05:00
Adam Jackson ab5198c488 Update to 17.3.6 2018-02-27 09:39:51 -05:00
Igor Gnatenko f51509ea6c
do not mix tabs and spaces
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-02-26 08:29:39 +01:00
Igor Gnatenko 5f56b187c2
Backport patch to fix video corruption
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-02-26 08:27:11 +01:00
Igor Gnatenko ed15998ee1
Update to 17.3.5
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-02-20 08:39:27 +01:00
Igor Gnatenko 682526a660
drop already applied patch
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-02-16 06:55:26 +01:00
Igor Gnatenko 2ee17c410d
Update to 17.3.4
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-02-15 21:54:46 +01:00
5 changed files with 147 additions and 55 deletions

View File

@ -1,51 +0,0 @@
From 23ce168048698eeea3df6bb8c9de5be3ca4784cd Mon Sep 17 00:00:00 2001
From: Igor Gnatenko <ignatenko@redhat.com>
Date: Mon, 1 Jan 2018 22:49:00 +0100
Subject: [PATCH 001/607] link mesautil with pthreads
../../src/util/.libs/libmesautil.a(libmesautil_la-u_queue.o): In function `u_thread_setname':
/builddir/build/BUILD/mesa-17.3.1/src/util/../../src/util/u_thread.h:66: undefined reference to `pthread_setname_np'
../../src/util/.libs/libmesautil.a(libmesautil_la-u_queue.o): In function `thrd_join':
/builddir/build/BUILD/mesa-17.3.1/src/util/../../include/c11/threads_posix.h:336: undefined reference to `pthread_join'
../../src/util/.libs/libmesautil.a(libmesautil_la-u_queue.o): In function `u_thread_create':
/builddir/build/BUILD/mesa-17.3.1/src/util/../../src/util/u_thread.h:48: undefined reference to `pthread_sigmask'
../../src/util/.libs/libmesautil.a(libmesautil_la-u_queue.o): In function `thrd_create':
/builddir/build/BUILD/mesa-17.3.1/src/util/../../include/c11/threads_posix.h:296: undefined reference to `pthread_create'
../../src/util/.libs/libmesautil.a(libmesautil_la-u_queue.o): In function `u_thread_create':
/builddir/build/BUILD/mesa-17.3.1/src/util/../../src/util/u_thread.h:50: undefined reference to `pthread_sigmask'
/builddir/build/BUILD/mesa-17.3.1/src/util/../../src/util/u_thread.h:50: undefined reference to `pthread_sigmask'
../../src/util/.libs/libmesautil.a(libmesautil_la-u_queue.o): In function `call_once':
/builddir/build/BUILD/mesa-17.3.1/src/util/../../include/c11/threads_posix.h:96: undefined reference to `pthread_once'
../../src/util/.libs/libmesautil.a(libmesautil_la-u_queue.o): In function `u_thread_get_time_nano':
/builddir/build/BUILD/mesa-17.3.1/src/util/../../src/util/u_thread.h:84: undefined reference to `pthread_getcpuclockid'
collect2: error: ld returned 1 exit status
Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Igor Gnatenko <ignatenko@redhat.com>
---
src/util/Makefile.am | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/util/Makefile.am b/src/util/Makefile.am
index a5241ad27b..633907b9fd 100644
--- a/src/util/Makefile.am
+++ b/src/util/Makefile.am
@@ -31,6 +31,7 @@ noinst_LTLIBRARIES = \
libxmlconfig.la
AM_CPPFLAGS = \
+ $(PTHREAD_CFLAGS) \
-I$(top_srcdir)/include
libmesautil_la_CPPFLAGS = \
@@ -50,6 +51,7 @@ libmesautil_la_SOURCES = \
$(MESA_UTIL_GENERATED_FILES)
libmesautil_la_LIBADD = \
+ $(PTHREAD_LIBS) \
$(CLOCK_LIB) \
$(ZLIB_LIBS) \
$(LIBATOMIC_LIBS)
--
2.14.3

View File

@ -0,0 +1,131 @@
From 0c40f56438f0712f8da62cd8fd1a3c1d8ef3f21a Mon Sep 17 00:00:00 2001
From: Thomas Hellstrom <thellstrom@vmware.com>
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 <daniel.van.vugt@canonical.com>
Tested-by: Timo Aaltonen <tjaalton@ubuntu.com>
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
(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 eadd37141e..854b03c7fd 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 53202e53f6..b9f8698b92 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 fffcb9f0bc..b4c458201a 100644
--- a/src/loader/loader_dri3_helper.c
+++ b/src/loader/loader_dri3_helper.c
@@ -1309,6 +1309,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;
@@ -1339,8 +1340,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 0dd37e9171..790f784276 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

View File

@ -1,4 +1,4 @@
VERSION ?= 17.3.3
VERSION ?= 17.3.5
SANITIZE ?= 1
DIRNAME = mesa-${VERSION}

View File

@ -58,7 +58,7 @@
Name: mesa
Summary: Mesa graphics libraries
Version: 17.3.3
Version: 17.3.6
Release: 1%{?rctag:.%{rctag}}%{?dist}
License: MIT
@ -82,9 +82,9 @@ Patch4: 0004-bigendian-assert.patch
# non-upstreamed ones
Patch10: glvnd-fix-gl-dot-pc.patch
Patch11: 0001-Fix-linkage-against-shared-glapi.patch
Patch12: 0001-link-mesautil-with-pthreads.patch
# backport from upstream
Patch1001: 0001-loader_dri3-glx-egl-Reinstate-the-loader_dri3_vtable.patch
BuildRequires: gcc
BuildRequires: gcc-c++
@ -693,6 +693,18 @@ popd
%endif
%changelog
* Tue Feb 27 2018 Adam Jackson <ajax@redhat.com> - 17.3.6-1
- Update to 17.3.6
* Mon Feb 26 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 17.3.5-2
- Backport patch to fix video corruption
* Tue Feb 20 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 17.3.5-1
- Update to 17.3.5
* Thu Feb 15 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 17.3.4-1
- Update to 17.3.4
* Mon Jan 22 2018 Peter Robinson <pbrobinson@fedoraproject.org> 17.3.3-1
- Update to 17.3.3

View File

@ -1 +1 @@
SHA512 (mesa-17.3.3.tar.xz) = fc555e93e6bdeaf3b710d166acdff8b2c565e88a2a1ca4514b1903f6d14c42c19024e14a7e982df069d4f551b87e231155a34064f2c308c276256f9a308718db
SHA512 (mesa-17.3.6.tar.xz) = 2e56cd8954b9229a0ddb67d96d7880f91fa3affe836bec58f7ee820e34aecd9965c570b61bca3f3641ed0f8e5e986e9f482f6013927af5c09efd08c4b9fcf626