[packages/Mesa] - fix a bug in intel drivers that crashes xfwm4 with compositor and vblank enabled - rel 2

baggins baggins at pld-linux.org
Tue Aug 27 00:11:40 CEST 2019


commit 1b6cc0bb895d90b82be7ad062c77cf60e2e3108d
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Tue Aug 27 00:11:36 2019 +0200

    - fix a bug in intel drivers that crashes xfwm4 with compositor and vblank enabled
    - rel 2

 Mesa.spec                                          |  5 +-
 ...en-GL_TEXTURE_2D-and-GL_TEXTURE_RECTANGLE.patch | 81 ++++++++++++++++++++++
 2 files changed, 84 insertions(+), 2 deletions(-)
---
diff --git a/Mesa.spec b/Mesa.spec
index 8936138..38580a0 100644
--- a/Mesa.spec
+++ b/Mesa.spec
@@ -56,7 +56,7 @@ Summary:	Free OpenGL implementation
 Summary(pl.UTF-8):	Wolnodostępna implementacja standardu OpenGL
 Name:		Mesa
 Version:	19.1.5
-Release:	1
+Release:	2
 License:	MIT (core) and others - see license.html file
 Group:		X11/Libraries
 #Source0:	ftp://ftp.freedesktop.org/pub/mesa/mesa-%{version}.tar.xz
@@ -64,6 +64,7 @@ Group:		X11/Libraries
 Source0:	https://gitlab.freedesktop.org/mesa/mesa/-/archive/mesa-%{version}/mesa-mesa-%{version}.tar.bz2
 # Source0-md5:	751a9f0fc21b7c0c58518adff8b5ec2b
 Patch0:		nouveau_no_rtti.patch
+Patch1:		i9x5-tex-ignore-the-diff-between-GL_TEXTURE_2D-and-GL_TEXTURE_RECTANGLE.patch
 URL:		http://www.mesa3d.org/
 %{?with_opencl:BuildRequires:	clang-devel >= %{llvm_ver}}
 BuildRequires:	elfutils-devel
@@ -1299,8 +1300,8 @@ radv - eksperymentalny sterownik Vulkan dla GPU firmy AMD.
 
 %prep
 %setup -q -n mesa-mesa-%{version}
-
 %patch0 -p1
+%patch1 -p1
 
 %build
 
diff --git a/i9x5-tex-ignore-the-diff-between-GL_TEXTURE_2D-and-GL_TEXTURE_RECTANGLE.patch b/i9x5-tex-ignore-the-diff-between-GL_TEXTURE_2D-and-GL_TEXTURE_RECTANGLE.patch
new file mode 100644
index 0000000..7256552
--- /dev/null
+++ b/i9x5-tex-ignore-the-diff-between-GL_TEXTURE_2D-and-GL_TEXTURE_RECTANGLE.patch
@@ -0,0 +1,81 @@
+i965/tex: ignore the diff between GL_TEXTURE_2D and GL_TEXTURE_RECTANGLE
+
+the difference between GL_TEXTURE_2D and GL_TEXTURE_RECTANGLE
+doesn't matter as far as the miptree is concerned;
+genX(update_sampler_state) only looks at the
+gl_texture_object and not the miptree when determining whether or
+not to use normalized coordinates.
+
+Signed-off-by: Andrii Simiklit <andrii.simiklit at globallogic.com>
+
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107117
+---
+ src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
+index 7d1fa96..dc45a06 100644
+--- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
++++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
+@@ -58,6 +58,12 @@ static void *intel_miptree_map_raw(struct brw_context *brw,
+ 
+ static void intel_miptree_unmap_raw(struct intel_mipmap_tree *mt);
+ 
++static GLenum
++tex_rect_to_tex2d(GLenum val)
++{
++    return (GL_TEXTURE_RECTANGLE == val) ? GL_TEXTURE_2D : val;
++}
++
+ static bool
+ intel_miptree_supports_mcs(struct brw_context *brw,
+                            const struct intel_mipmap_tree *mt)
+@@ -1320,13 +1326,15 @@ intel_miptree_match_image(struct intel_mipmap_tree *mt,
+ {
+    struct intel_texture_image *intelImage = intel_texture_image(image);
+    GLuint level = intelImage->base.Base.Level;
++   GLenum texObjTarget = tex_rect_to_tex2d(mt->target);
++   GLenum mipmapTreeTarget = tex_rect_to_tex2d(image->TexObject->Target);
+    int width, height, depth;
+ 
+    /* glTexImage* choose the texture object based on the target passed in, and
+     * objects can't change targets over their lifetimes, so this should be
+     * true.
+     */
+-   assert(image->TexObject->Target == mt->target);
++   assert(texObjTarget == mipmapTreeTarget);
+ 
+    mesa_format mt_format = mt->format;
+    if (mt->format == MESA_FORMAT_Z24_UNORM_X8_UINT && mt->stencil_mt)
+--- mesa-mesa-19.1.5/src/mesa/drivers/dri/i915/intel_mipmap_tree.c.orig	2019-08-26 23:37:27.779941449 +0200
++++ mesa-mesa-19.1.5/src/mesa/drivers/dri/i915/intel_mipmap_tree.c	2019-08-26 23:38:47.553273174 +0200
+@@ -403,6 +403,12 @@
+    }
+ }
+ 
++static GLenum
++tex_rect_to_tex2d(GLenum val)
++{
++    return (GL_TEXTURE_RECTANGLE == val) ? GL_TEXTURE_2D : val;
++}
++
+ /**
+  * Can the image be pulled into a unified mipmap tree?  This mirrors
+  * the completeness test in a lot of ways.
+@@ -415,13 +421,15 @@
+ {
+    struct intel_texture_image *intelImage = intel_texture_image(image);
+    GLuint level = intelImage->base.Base.Level;
++   GLenum texObjTarget = tex_rect_to_tex2d(mt->target);
++   GLenum mipmapTreeTarget = tex_rect_to_tex2d(image->TexObject->Target);
+    int width, height, depth;
+ 
+    /* glTexImage* choose the texture object based on the target passed in, and
+     * objects can't change targets over their lifetimes, so this should be
+     * true.
+     */
+-   assert(target_to_target(image->TexObject->Target) == mt->target);
++   assert(texObjTarget == mipmapTreeTarget);
+ 
+    mesa_format mt_format = mt->format;
+ 
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/Mesa.git/commitdiff/1b6cc0bb895d90b82be7ad062c77cf60e2e3108d



More information about the pld-cvs-commit mailing list