SHA256
1
0
forked from pool/Mesa

Accepting request 428656 from X11:XOrg

- Add u_Mesa_i965-import-prime-buffers.patch: i965: import prime
  buffers in the current context, not screen (fdo#71759,
  boo#991638).

- 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"

OBS-URL: https://build.opensuse.org/request/show/428656
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/Mesa?expand=0&rev=271
This commit is contained in:
Dominique Leuenberger 2016-09-23 09:23:26 +00:00 committed by Git OBS Bridge
commit 7eefa92ca1
7 changed files with 86 additions and 5 deletions

View File

@ -1,3 +1,17 @@
-------------------------------------------------------------------
Mon Sep 19 10:00:05 UTC 2016 - zaitor@opensuse.org
- 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 - mimi.vx@gmail.com
- 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"
-------------------------------------------------------------------
Mon Sep 5 17:05:57 UTC 2016 - mimi.vx@gmail.com

View File

@ -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 @@ Source7: Mesa.keyring
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 @@ rm -rf docs/README.{VMS,WIN32,OS2}
#%patch11 -p1
#%patch15 -p1
#%patch13 -p1
%patch12 -p1
%patch18 -p1
%patch21 -p1

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d957a5cc371dcd7ff2aa0d87492f263aece46f79352f4520039b58b1f32552cb
size 8576848

Binary file not shown.

3
mesa-12.0.3.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1dc86dd9b51272eee1fad3df65e18cda2e556ef1bc0b6e07cd750b9757f493b1
size 8577408

BIN
mesa-12.0.3.tar.xz.sig Normal file

Binary file not shown.

View File

@ -0,0 +1,65 @@
From e180e9e3c830d3611a6cf7d32e988b4c28d20942 Mon Sep 17 00:00:00 2001
From: Martin Peres <martin.peres@linux.intel.com>
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: mesa-stable@lists.freedesktop.org
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71759
Signed-off-by: Martin Peres <martin.peres@linux.intel.com>
---
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