Hello community, here is the log from the commit of package Mesa for openSUSE:Factory checked in at 2016-09-23 11:23:26 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/Mesa (Old) and /work/SRC/openSUSE:Factory/.Mesa.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "Mesa" Changes: -------- --- /work/SRC/openSUSE:Factory/Mesa/Mesa.changes 2016-09-09 10:17:39.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.Mesa.new/Mesa.changes 2016-09-23 11:23:28.000000000 +0200 @@ -1,0 +2,14 @@ +Mon Sep 19 10:00:05 UTC 2016 - [email protected] + +- Add u_Mesa_i965-import-prime-buffers.patch: i965: import prime + buffers in the current context, not screen (fdo#71759, + boo#991638). + +------------------------------------------------------------------- +Sat Sep 17 16:40:56 UTC 2016 - [email protected] + +- update to 12.0.3 +* fdo#97781 - [HSW, BYT, IVB] es2-cts.gtf.gl2extensiontests.depth_texture_cube_map.depth_texture_cube_map +* Revert "i965/miptree: Stop multiplying cube depth by 6 in HiZ calculations" + +------------------------------------------------------------------- Old: ---- mesa-12.0.2.tar.xz mesa-12.0.2.tar.xz.sig New: ---- mesa-12.0.3.tar.xz mesa-12.0.3.tar.xz.sig u_Mesa_i965-import-prime-buffers.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ Mesa.spec ++++++ --- /var/tmp/diff_new_pack.QE5K8B/_old 2016-09-23 11:23:29.000000000 +0200 +++ /var/tmp/diff_new_pack.QE5K8B/_new 2016-09-23 11:23:29.000000000 +0200 @@ -18,7 +18,7 @@ %define glamor 1 %define _name_archive mesa -%define _version 12.0.2 +%define _version 12.0.3 %define with_opencl 0 %define with_vulkan 0 %ifarch %ix86 x86_64 %arm ppc ppc64 ppc64le s390x @@ -45,7 +45,7 @@ %endif Name: Mesa -Version: 12.0.2 +Version: 12.0.3 Release: 0 Summary: System for rendering interactive 3-D graphics License: MIT @@ -62,6 +62,7 @@ Patch0: n_Fixed-build-against-wayland-1.2.1.patch # to be upstreamed Patch11: u_Fix-crash-in-swrast-when-setting-a-texture-for-a-pix.patch +Patch12: u_Mesa_i965-import-prime-buffers.patch # Patch from Fedora, fix 16bpp in llvmpipe Patch13: u_mesa-8.0.1-fix-16bpp.patch # Patch from Fedora, use shmget when available, under llvmpipe @@ -579,6 +580,7 @@ #%patch11 -p1 #%patch15 -p1 #%patch13 -p1 +%patch12 -p1 %patch18 -p1 %patch21 -p1 ++++++ mesa-12.0.2.tar.xz -> mesa-12.0.3.tar.xz ++++++ /work/SRC/openSUSE:Factory/Mesa/mesa-12.0.2.tar.xz /work/SRC/openSUSE:Factory/.Mesa.new/mesa-12.0.3.tar.xz differ: char 27, line 1 ++++++ u_Mesa_i965-import-prime-buffers.patch ++++++ >From e180e9e3c830d3611a6cf7d32e988b4c28d20942 Mon Sep 17 00:00:00 2001 From: Martin Peres <[email protected]> Date: Wed, 3 Aug 2016 12:58:23 +0300 Subject: [PATCH] i965: import prime buffers in the current context, not screen This 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 Cc: [email protected] Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71759 Signed-off-by: Martin Peres <[email protected]> --- src/mesa/drivers/dri/i965/intel_screen.c | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/src/mesa/drivers/dri/i965/intel_screen.c b/src/mesa/drivers/dri/i965/intel_screen.c index ae51c40..169d578 100644 --- a/src/mesa/drivers/dri/i965/intel_screen.c +++ b/src/mesa/drivers/dri/i965/intel_screen.c @@ -702,8 +702,11 @@ intel_create_image_from_fds(__DRIscreen *screen, int *fds, int num_fds, int *strides, int *offsets, void *loaderPrivate) { + GET_CURRENT_CONTEXT(ctx); struct intel_screen *intelScreen = screen->driverPrivate; + struct brw_context *brw = brw_context(ctx); struct intel_image_format *f; + dri_bufmgr *bufmgr; __DRIimage *image; int i, index; @@ -744,8 +747,26 @@ intel_create_image_from_fds(__DRIscreen *screen, size = end; } - image->bo = drm_intel_bo_gem_create_from_prime(intelScreen->bufmgr, - fds[0], size); + /* Let's import the buffer into the current context instead of the current + * screen as some applications like gstreamer, totem, or obs create multiple + * X connections which end up creating multiple screens and thus multiple + * buffer managers. They then proceed to use a different X connection than + * the one used by the currently-bound context to call GLXBindTexImageExt() + * which should then import the buffer in the current bound context and not + * the current screen. This is done properly upstairs for texture management + * so we need to mirror this behaviour if we don't want the kernel rejecting + * our pushbuffers as the buffer would not have been imported by the same + * buffer manager that sent the pushbuffer referencing it. + * + * If there is no context currently bound, then revert to using the screen's + * buffer manager and hope for the best... + */ + if (brw) + bufmgr = brw->bufmgr; + else + bufmgr = intelScreen->bufmgr; + + image->bo = drm_intel_bo_gem_create_from_prime(bufmgr, fds[0], size); if (image->bo == NULL) { free(image); return NULL; -- 2.9.0
