[mesa/f15/master] mesa-intel-fix-gs-rendering-regression.patch, attempt to fix gnome shell rendering.

Dave Airlie airlied at fedoraproject.org
Wed Mar 30 07:21:18 UTC 2011


commit 5ea10842211465d5e5fa807160cb832907ffe1e6
Author: Dave Airlie <airlied at redhat.com>
Date:   Wed Mar 30 17:12:01 2011 +1000

    mesa-intel-fix-gs-rendering-regression.patch, attempt to fix gnome shell
    rendering.

 mesa-intel-fix-gs-rendering-regression.patch |   99 ++++++++++++++++++++++++++
 mesa.spec                                    |    8 ++-
 2 files changed, 106 insertions(+), 1 deletions(-)
---
diff --git a/mesa-intel-fix-gs-rendering-regression.patch b/mesa-intel-fix-gs-rendering-regression.patch
new file mode 100644
index 0000000..498a032
--- /dev/null
+++ b/mesa-intel-fix-gs-rendering-regression.patch
@@ -0,0 +1,99 @@
+
+This reverts upstream
+	f627d429bda8196fd20f2023374ad6d34e4becb6, 
+        de7678ef521f4fb34459e407a66ab8bf8be733e1, 
+        6547253bd138db815173c00ca2dc220e8ad20ab1
+
+
+diff --git a/src/mesa/drivers/dri/intel/intel_regions.c b/src/mesa/drivers/dri/intel/intel_regions.c
+index a4da1ce..0857fa8 100644
+--- a/src/mesa/drivers/dri/intel/intel_regions.c
++++ b/src/mesa/drivers/dri/intel/intel_regions.c
+@@ -149,6 +149,11 @@ intel_region_alloc_internal(struct intel_screen *screen,
+ {
+    struct intel_region *region;
+ 
++   if (buffer == NULL) {
++      _DBG("%s <-- NULL\n", __FUNCTION__);
++      return NULL;
++   }
++
+    region = calloc(sizeof(*region), 1);
+    if (region == NULL)
+       return region;
+@@ -175,7 +180,6 @@ intel_region_alloc(struct intel_screen *screen,
+    drm_intel_bo *buffer;
+    unsigned long flags = 0;
+    unsigned long aligned_pitch;
+-   struct intel_region *region;
+ 
+    if (expect_accelerated_upload)
+       flags |= BO_ALLOC_FOR_RENDER;
+@@ -183,17 +187,9 @@ intel_region_alloc(struct intel_screen *screen,
+    buffer = drm_intel_bo_alloc_tiled(screen->bufmgr, "region",
+ 				     width, height, cpp,
+ 				     &tiling, &aligned_pitch, flags);
+-   if (buffer == NULL)
+-      return NULL;
+ 
+-   region = intel_region_alloc_internal(screen, cpp, width, height,
+-                                        aligned_pitch / cpp, tiling, buffer);
+-   if (region == NULL) {
+-      drm_intel_bo_unreference(buffer);
+-      return NULL;
+-   }
+-
+-   return region;
++   return intel_region_alloc_internal(screen, cpp, width, height,
++				      aligned_pitch / cpp, tiling, buffer);
+ }
+ 
+ GLboolean
+diff --git a/src/mesa/drivers/dri/intel/intel_tex_subimage.c b/src/mesa/drivers/dri/intel/intel_tex_subimage.c
+index d0f8294..6b7f13f 100644
+--- a/src/mesa/drivers/dri/intel/intel_tex_subimage.c
++++ b/src/mesa/drivers/dri/intel/intel_tex_subimage.c
+@@ -90,19 +90,19 @@ intelTexSubimage(struct gl_context * ctx,
+ 	  intel->gen < 6 && target == GL_TEXTURE_2D &&
+ 	  drm_intel_bo_busy(dst_bo))
+       {
+-	 dstRowStride = width * intelImage->mt->cpp;
+-         temp_bo = drm_intel_bo_alloc(intel->bufmgr, "subimage blit bo",
+-                                      dstRowStride * height, 0);
+-         if (!temp_bo)
+-            return;
+-
+-	 if (drm_intel_gem_bo_map_gtt(temp_bo)) {
+-            drm_intel_bo_unreference(temp_bo);
+-            return;
+-         }
+-
++	 unsigned long pitch;
++	 uint32_t tiling_mode = I915_TILING_NONE;
++	 temp_bo = drm_intel_bo_alloc_tiled(intel->bufmgr,
++					    "subimage blit bo",
++					    width, height,
++					    intelImage->mt->cpp,
++					    &tiling_mode,
++					    &pitch,
++					    0);
++	 drm_intel_gem_bo_map_gtt(temp_bo);
+ 	 texImage->Data = temp_bo->virtual;
+ 	 texImage->ImageOffsets[0] = 0;
++	 dstRowStride = pitch;
+ 
+ 	 intel_miptree_get_image_offset(intelImage->mt, level,
+ 					intelImage->face, 0,
+diff --git a/src/mesa/drivers/dri/intel/intel_tex_validate.c b/src/mesa/drivers/dri/intel/intel_tex_validate.c
+index a11b07e..8537e7f 100644
+--- a/src/mesa/drivers/dri/intel/intel_tex_validate.c
++++ b/src/mesa/drivers/dri/intel/intel_tex_validate.c
+@@ -140,8 +140,6 @@ intel_finalize_mipmap_tree(struct intel_context *intel, GLuint unit)
+                                           cpp,
+                                           comp_byte,
+ 					  GL_TRUE);
+-      if (!intelObj->mt)
+-         return GL_FALSE;
+    }
+ 
+    /* Pull in any images not in the object's tree:
diff --git a/mesa.spec b/mesa.spec
index bf9668e..0ec80cd 100644
--- a/mesa.spec
+++ b/mesa.spec
@@ -18,7 +18,7 @@
 Summary: Mesa graphics libraries
 Name: mesa
 Version: 7.11
-Release: 0.2.%{gitdate}.0%{?dist}
+Release: 0.3.%{gitdate}.0%{?dist}
 License: MIT
 Group: System Environment/Libraries
 URL: http://www.mesa3d.org
@@ -31,6 +31,7 @@ Source2: %{manpages}.tar.bz2
 Source3: make-git-snapshot.sh
 Source4: llvmcore.mk
 
+Patch1: mesa-intel-fix-gs-rendering-regression.patch
 Patch2: mesa-7.1-nukeglthread-debug.patch
 Patch3: mesa-no-mach64.patch
 Patch4: legacy-drivers.patch
@@ -214,6 +215,7 @@ Requires: Xorg %(xserver-sdk-abi-requires ansic) %(xserver-sdk-abi-requires vide
 %prep
 #setup -q -n Mesa-%{version}%{?snapshot} -b0 -b2
 %setup -q -n mesa-%{gitdate} -b2
+%patch1 -p1 -b .upstreamrevert
 %patch2 -p1 -b .intel-glthread
 %patch3 -p1 -b .no-mach64
 %patch4 -p1 -b .classic
@@ -485,6 +487,10 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/libOSMesa.so
 
 %changelog
+* Wed Mar 30 2011 Dave Airlie <airlied at redhat.com> 7.11-0.3.20110330.0
+- mesa-intel-fix-gs-rendering-regression.patch, attempt to fix gnome shell
+  rendering.
+
 * Wed Mar 30 2011 Dave Airlie <airlied at redhat.com> 7.11-0.2.20110330.0
 - snapshot upstream again to hopefully fix ILK bug
 


More information about the scm-commits mailing list