From e967417d908bfaa12589b06b031ccb7a59f884a2 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Wed, 2 Nov 2016 10:14:04 +0000 Subject: [PATCH] 13.0.0 --- .gitignore | 1 - ...ri3-add-get_dri_screen-to-the-vtable.patch | 91 ------------------- ...ix-fd-leak-when-instantiated-via-pip.patch | 62 ------------- ...rt-prime-buffers-in-the-currently-bo.patch | 59 ------------ mesa.spec | 8 +- sources | 2 +- 6 files changed, 6 insertions(+), 217 deletions(-) delete mode 100644 0001-loader-dri3-add-get_dri_screen-to-the-vtable.patch delete mode 100644 0001-pipe_loader_sw-Fix-fd-leak-when-instantiated-via-pip.patch delete mode 100644 0002-loader-dri3-import-prime-buffers-in-the-currently-bo.patch diff --git a/.gitignore b/.gitignore index 1d032f7..c558d92 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,3 @@ .build* /mesa-*.tar.bz2 /mesa-*.tar.xz -/mesa-13.0.0-rc2.tar.gz diff --git a/0001-loader-dri3-add-get_dri_screen-to-the-vtable.patch b/0001-loader-dri3-add-get_dri_screen-to-the-vtable.patch deleted file mode 100644 index 777f20a..0000000 --- a/0001-loader-dri3-add-get_dri_screen-to-the-vtable.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 7effaf722086c91a878b4f1c16be3f7fa46f038a Mon Sep 17 00:00:00 2001 -From: Martin Peres -Date: Thu, 6 Oct 2016 17:07:22 +0300 -Subject: [PATCH 1/2] loader/dri3: add get_dri_screen() to the vtable - -This allows querying the current active screen from the -loader's common code. - -Cc: mesa-stable@lists.freedesktop.org -Reviewed-by: Emil Velikov -Signed-off-by: Martin Peres ---- - src/egl/drivers/dri2/platform_x11_dri3.c | 12 ++++++++++++ - src/glx/dri3_glx.c | 11 +++++++++++ - src/loader/loader_dri3_helper.h | 1 + - 3 files changed, 24 insertions(+) - -diff --git a/src/egl/drivers/dri2/platform_x11_dri3.c b/src/egl/drivers/dri2/platform_x11_dri3.c -index 9363a8a..69bfcd8 100644 ---- a/src/egl/drivers/dri2/platform_x11_dri3.c -+++ b/src/egl/drivers/dri2/platform_x11_dri3.c -@@ -103,6 +103,17 @@ egl_dri3_get_dri_context(struct loader_dri3_drawable *draw) - return dri2_ctx->dri_context; - } - -+static __DRIscreen * -+egl_dri3_get_dri_screen(struct loader_dri3_drawable *draw) -+{ -+ _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) - { -@@ -119,6 +130,7 @@ static 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 90d7bba..51b6b1c 100644 ---- a/src/glx/dri3_glx.c -+++ b/src/glx/dri3_glx.c -@@ -132,6 +132,16 @@ glx_dri3_get_dri_context(struct loader_dri3_drawable *draw) - return (gc != &dummyContext) ? dri3Ctx->driContext : NULL; - } - -+static __DRIscreen * -+glx_dri3_get_dri_screen(struct loader_dri3_drawable *draw) -+{ -+ 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) - { -@@ -169,6 +179,7 @@ static 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.h b/src/loader/loader_dri3_helper.h -index 5b8fd1d..658e190 100644 ---- a/src/loader/loader_dri3_helper.h -+++ b/src/loader/loader_dri3_helper.h -@@ -103,6 +103,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)(struct loader_dri3_drawable *); - void (*flush_drawable)(struct loader_dri3_drawable *, unsigned); - void (*show_fps)(struct loader_dri3_drawable *, uint64_t); - }; --- -2.9.3 - diff --git a/0001-pipe_loader_sw-Fix-fd-leak-when-instantiated-via-pip.patch b/0001-pipe_loader_sw-Fix-fd-leak-when-instantiated-via-pip.patch deleted file mode 100644 index 65b5ff9..0000000 --- a/0001-pipe_loader_sw-Fix-fd-leak-when-instantiated-via-pip.patch +++ /dev/null @@ -1,62 +0,0 @@ -From fdf04a5d9410265353e5deb76240896e54d7317f Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Sat, 7 May 2016 14:43:59 +0200 -Subject: [PATCH v2] pipe_loader_sw: Fix fd leak when instantiated via - pipe_loader_sw_probe_kms - -Make pipe_loader_sw_probe_kms take ownership of the passed in fd, -like pipe_loader_drm_probe_fd does. - -The only caller is dri_kms_init_screen which passes in a dupped fd, -just like dri2_init_screen passes in a dupped fd to -pipe_loader_drm_probe_fd. - -Signed-off-by: Hans de Goede -Reviewed-by: Emil Velikov -(cherry picked from commit 459cc94507071eec18b746f57a4ec82578a38b54) ---- - src/gallium/auxiliary/pipe-loader/pipe_loader_sw.c | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/src/gallium/auxiliary/pipe-loader/pipe_loader_sw.c b/src/gallium/auxiliary/pipe-loader/pipe_loader_sw.c -index c8e1f13..e7fa974 100644 ---- a/src/gallium/auxiliary/pipe-loader/pipe_loader_sw.c -+++ b/src/gallium/auxiliary/pipe-loader/pipe_loader_sw.c -@@ -45,6 +45,7 @@ struct pipe_loader_sw_device { - struct util_dl_library *lib; - #endif - struct sw_winsys *ws; -+ int fd; - }; - - #define pipe_loader_sw_device(dev) ((struct pipe_loader_sw_device *)dev) -@@ -92,6 +93,7 @@ pipe_loader_sw_probe_init_common(struct pipe_loader_sw_device *sdev) - sdev->base.type = PIPE_LOADER_DEVICE_SOFTWARE; - sdev->base.driver_name = "swrast"; - sdev->base.ops = &pipe_loader_sw_ops; -+ sdev->fd = -1; - - #ifdef GALLIUM_STATIC_TARGETS - sdev->dd = &driver_descriptors; -@@ -169,6 +171,8 @@ pipe_loader_sw_probe_kms(struct pipe_loader_device **devs, int fd) - if (!pipe_loader_sw_probe_init_common(sdev)) - goto fail; - -+ sdev->fd = fd; -+ - for (i = 0; sdev->dd->winsys[i].name; i++) { - if (strcmp(sdev->dd->winsys[i].name, "kms_dri") == 0) { - sdev->ws = sdev->dd->winsys[i].create_winsys(fd); -@@ -273,6 +277,9 @@ pipe_loader_sw_release(struct pipe_loader_device **dev) - util_dl_close(sdev->lib); - #endif - -+ if (sdev->fd != -1) -+ close(sdev->fd); -+ - FREE(sdev); - *dev = NULL; - } --- -2.9.3 - diff --git a/0002-loader-dri3-import-prime-buffers-in-the-currently-bo.patch b/0002-loader-dri3-import-prime-buffers-in-the-currently-bo.patch deleted file mode 100644 index 75ea2bf..0000000 --- a/0002-loader-dri3-import-prime-buffers-in-the-currently-bo.patch +++ /dev/null @@ -1,59 +0,0 @@ -From a84a4062660d0469ff9348ef713427db54f9f40e Mon Sep 17 00:00:00 2001 -From: Martin Peres -Date: Thu, 6 Oct 2016 17:10:35 +0300 -Subject: [PATCH 2/2] loader/dri3: import prime buffers in the currently-bound - screen - -This tries to mirrors the codepath taken by DRI2 in IntelSetTexBuffer2() -and fixes many applications when using DRI3: - - Totem with libva on hw-accelerated decoding - - obs-studio, using Window Capture (Xcomposite) as a Source - - gstreamer with VAAPI - -v2: - - introduce get_dri_screen() in the dri3 loader's vtable (krh) - -Tested-by: Timo Aaltonen -Tested-by: Ionut Biru -Cc: mesa-stable@lists.freedesktop.org -Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71759 -Reviewed-by: Emil Velikov -Signed-off-by: Martin Peres ---- - src/loader/loader_dri3_helper.c | 12 +++++++++++- - 1 file changed, 11 insertions(+), 1 deletion(-) - -diff --git a/src/loader/loader_dri3_helper.c b/src/loader/loader_dri3_helper.c -index 67d0c2c..14e7262 100644 ---- a/src/loader/loader_dri3_helper.c -+++ b/src/loader/loader_dri3_helper.c -@@ -1116,6 +1116,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; -@@ -1146,8 +1147,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(draw); -+ 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; --- -2.9.3 - diff --git a/mesa.spec b/mesa.spec index 27b492f..aeaf431 100644 --- a/mesa.spec +++ b/mesa.spec @@ -41,12 +41,12 @@ %global sanitize 1 -%global rctag rc2 +#global rctag rc2 Name: mesa Summary: Mesa graphics libraries Version: 13.0.0 -Release: 0.3%{?rctag:.%{rctag}}%{?dist} +Release: 1%{?rctag:.%{rctag}}%{?dist} License: MIT URL: http://www.mesa3d.org @@ -95,7 +95,6 @@ BuildRequires: clang-devel >= 3.0 %endif BuildRequires: elfutils-libelf-devel BuildRequires: libxml2-python -BuildRequires: libudev-devel BuildRequires: bison flex %if %{with wayland} BuildRequires: pkgconfig(wayland-client) @@ -617,6 +616,9 @@ popd %endif %changelog +* Wed Nov 2 2016 Peter Robinson 13.0.0-1 +- 13.0.0 GA + * Tue Nov 01 2016 Dave Airlie - 13.0.0-0.3.rc2 - rebuild for llvm 3.9 diff --git a/sources b/sources index a7383b7..540457b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -ac32eb49c8f5ba698013502a0aac79a5 mesa-13.0.0-rc2.tar.xz +8c4ca7da1be2b8f9a877db09304335a4 mesa-13.0.0.tar.xz