[mesa] mesa-8.0.1-git.patch: Sync with 8.0 branch (commit a3080987)

Adam Jackson ajax at fedoraproject.org
Thu Mar 1 19:27:54 UTC 2012


commit db7b1e94322034f65e20d1733254c383c1de2644
Author: Adam Jackson <ajax at redhat.com>
Date:   Thu Mar 1 14:27:52 2012 -0500

    mesa-8.0.1-git.patch: Sync with 8.0 branch (commit a3080987)

 mesa-8.0.1-git.patch |  265 ++++++++++++++++++++++++++++++++++++++++++++++++++
 mesa.spec            |    8 ++-
 2 files changed, 272 insertions(+), 1 deletions(-)
---
diff --git a/mesa-8.0.1-git.patch b/mesa-8.0.1-git.patch
new file mode 100644
index 0000000..62a320a
--- /dev/null
+++ b/mesa-8.0.1-git.patch
@@ -0,0 +1,265 @@
+diff --git a/docs/relnotes-8.0.1.html b/docs/relnotes-8.0.1.html
+index 8c8cd3f..29a314c 100644
+--- a/docs/relnotes-8.0.1.html
++++ b/docs/relnotes-8.0.1.html
+@@ -28,7 +28,9 @@ for DRI hardware acceleration.
+ 
+ <h2>MD5 checksums</h2>
+ <pre>
+-tdb
++4855c2d93bd2ebd43f384bdcc92c9a27  MesaLib-8.0.1.tar.gz
++24eeebf66971809d8f40775a379b36c9  MesaLib-8.0.1.tar.bz2
++54e745d14dac5717f7f65b4e2d5c1df2  MesaLib-8.0.1.zip
+ </pre>
+ 
+ <h2>New features</h2>
+diff --git a/src/gallium/auxiliary/rtasm/rtasm_cpu.c b/src/gallium/auxiliary/rtasm/rtasm_cpu.c
+index 0461c81..7afcf14 100644
+--- a/src/gallium/auxiliary/rtasm/rtasm_cpu.c
++++ b/src/gallium/auxiliary/rtasm/rtasm_cpu.c
+@@ -25,43 +25,43 @@
+  *
+  **************************************************************************/
+ 
++#include "pipe/p_config.h"
++#include "rtasm_cpu.h"
++
++#if defined(PIPE_ARCH_X86) || defined(PIPE_ARCH_X86_64)
+ 
+ #include "util/u_debug.h"
+-#include "rtasm_cpu.h"
++#include "util/u_cpu_detect.h"
+ 
++DEBUG_GET_ONCE_BOOL_OPTION(nosse, "GALLIUM_NOSSE", FALSE);
+ 
+-#if defined(PIPE_ARCH_X86) || defined(PIPE_ARCH_X86_64)
+-static boolean rtasm_sse_enabled(void)
++static struct util_cpu_caps *get_cpu_caps(void)
+ {
+-   static boolean firsttime = 1;
+-   static boolean enabled;
+-   
+-   /* This gets called quite often at the moment:
+-    */
+-   if (firsttime) {
+-      enabled =  !debug_get_bool_option("GALLIUM_NOSSE", FALSE);
+-      firsttime = FALSE;
+-   }
+-   return enabled;
++   util_cpu_detect();
++   return &util_cpu_caps;
+ }
+-#endif
+ 
+ int rtasm_cpu_has_sse(void)
+ {
+-   /* FIXME: actually detect this at run-time */
+-#if defined(PIPE_ARCH_X86) || defined(PIPE_ARCH_X86_64)
+-   return rtasm_sse_enabled();
+-#else
+-   return 0;
+-#endif
++   return !debug_get_option_nosse() && get_cpu_caps()->has_sse;
+ }
+ 
+ int rtasm_cpu_has_sse2(void) 
+ {
+-   /* FIXME: actually detect this at run-time */
+-#if defined(PIPE_ARCH_X86) || defined(PIPE_ARCH_X86_64)
+-   return rtasm_sse_enabled();
++   return !debug_get_option_nosse() && get_cpu_caps()->has_sse2;
++}
++
++
+ #else
++
++int rtasm_cpu_has_sse(void)
++{
+    return 0;
+-#endif
+ }
++
++int rtasm_cpu_has_sse2(void)
++{
++   return 0;
++}
++
++#endif
+diff --git a/src/gallium/drivers/r300/compiler/radeon_program_alu.c b/src/gallium/drivers/r300/compiler/radeon_program_alu.c
+index dd1dfb3..c48f936 100644
+--- a/src/gallium/drivers/r300/compiler/radeon_program_alu.c
++++ b/src/gallium/drivers/r300/compiler/radeon_program_alu.c
+@@ -1165,35 +1165,79 @@ int radeonTransformDeriv(struct radeon_compiler* c,
+ }
+ 
+ /**
++ * IF Temp[0].x -> IF Temp[0].x
++ * ...          -> ...
++ * KILP         -> KIL -abs(Temp[0].x)
++ * ...          -> ...
++ * ENDIF        -> ENDIF
++ *
++ * === OR ===
++ *
+  * IF Temp[0].x -\
+  * KILP         - > KIL -abs(Temp[0].x)
+  * ENDIF        -/
+  *
+- * This needs to be done in its own pass, because it modifies the instructions
+- * before and after KILP.
++ * === OR ===
++ *
++ * IF Temp[0].x -> IF Temp[0].x
++ * ...          -> ...
++ * ELSE         -> ELSE
++ * ...	        -> ...
++ * KILP	        -> KIL -abs(Temp[0].x)
++ * ...          -> ...
++ * ENDIF        -> ENDIF
++ *
++ * === OR ===
++ *
++ * KILP         -> KIL -none.1111
++ *
++ * This needs to be done in its own pass, because it might modify the
++ * instructions before and after KILP.
+  */
+ void rc_transform_KILP(struct radeon_compiler * c, void *user)
+ {
+ 	struct rc_instruction * inst;
+ 	for (inst = c->Program.Instructions.Next;
+ 			inst != &c->Program.Instructions; inst = inst->Next) {
++		struct rc_instruction * if_inst;
++		unsigned in_if = 0;
+ 
+ 		if (inst->U.I.Opcode != RC_OPCODE_KILP)
+ 			continue;
+ 
++		for (if_inst = inst->Prev; if_inst != &c->Program.Instructions;
++						if_inst = if_inst->Prev) {
++
++			if (if_inst->U.I.Opcode == RC_OPCODE_IF) {
++				in_if = 1;
++				break;
++			}
++		}
++
+ 		inst->U.I.Opcode = RC_OPCODE_KIL;
+ 
+-		if (inst->Prev->U.I.Opcode != RC_OPCODE_IF
+-				|| inst->Next->U.I.Opcode != RC_OPCODE_ENDIF) {
++		if (!in_if) {
+ 			inst->U.I.SrcReg[0] = negate(builtin_one);
+ 		} else {
+-
++			/* This should work even if the KILP is inside the ELSE
++			 * block, because -0.0 is considered negative. */
+ 			inst->U.I.SrcReg[0] =
+-				negate(absolute(inst->Prev->U.I.SrcReg[0]));
+-			/* Remove IF */
+-			rc_remove_instruction(inst->Prev);
+-			/* Remove ENDIF */
+-			rc_remove_instruction(inst->Next);
++				negate(absolute(if_inst->U.I.SrcReg[0]));
++
++			if (inst->Prev->U.I.Opcode != RC_OPCODE_IF
++				&& inst->Next->U.I.Opcode != RC_OPCODE_ENDIF) {
++
++				/* Optimize the special case:
++				 * IF Temp[0].x
++				 * KILP
++				 * ENDIF
++				 */
++
++				/* Remove IF */
++				rc_remove_instruction(inst->Prev);
++				/* Remove ENDIF */
++				rc_remove_instruction(inst->Next);
++			}
+ 		}
+ 	}
+ }
+diff --git a/src/gallium/drivers/svga/svga_screen.c b/src/gallium/drivers/svga/svga_screen.c
+index 82a3ff2..e22deb4 100644
+--- a/src/gallium/drivers/svga/svga_screen.c
++++ b/src/gallium/drivers/svga/svga_screen.c
+@@ -235,7 +235,7 @@ static int svga_get_shader_param(struct pipe_screen *screen, unsigned shader, en
+       case PIPE_SHADER_CAP_MAX_TEMPS:
+          if (!sws->get_cap(sws, SVGA3D_DEVCAP_MAX_FRAGMENT_SHADER_TEMPS, &result))
+             return 32;
+-         return result.u;
++         return MIN2(result.u, SVGA3D_TEMPREG_MAX);
+       case PIPE_SHADER_CAP_MAX_ADDRS:
+       case PIPE_SHADER_CAP_INDIRECT_INPUT_ADDR:
+ 	 /* 
+@@ -286,7 +286,7 @@ static int svga_get_shader_param(struct pipe_screen *screen, unsigned shader, en
+       case PIPE_SHADER_CAP_MAX_TEMPS:
+          if (!sws->get_cap(sws, SVGA3D_DEVCAP_MAX_VERTEX_SHADER_TEMPS, &result))
+             return 32;
+-         return result.u;
++         return MIN2(result.u, SVGA3D_TEMPREG_MAX);
+       case PIPE_SHADER_CAP_MAX_ADDRS:
+          return 1;
+       case PIPE_SHADER_CAP_MAX_PREDS:
+diff --git a/src/mesa/drivers/dri/i965/brw_eu_emit.c b/src/mesa/drivers/dri/i965/brw_eu_emit.c
+index 3347157..b2581da 100644
+--- a/src/mesa/drivers/dri/i965/brw_eu_emit.c
++++ b/src/mesa/drivers/dri/i965/brw_eu_emit.c
+@@ -2188,7 +2188,7 @@ void brw_fb_WRITE(struct brw_compile *p,
+ 			    msg_type,
+ 			    msg_length,
+ 			    header_present,
+-			    1, /* last render target write */
++			    eot, /* last render target write */
+ 			    response_length,
+ 			    eot,
+ 			    0 /* send_commit_msg */);
+diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c
+index a2959a8..4b27e06 100644
+--- a/src/mesa/main/bufferobj.c
++++ b/src/mesa/main/bufferobj.c
+@@ -1159,17 +1159,17 @@ _mesa_GetBufferParameterivARB(GLenum target, GLenum pname, GLint *params)
+       *params = _mesa_bufferobj_mapped(bufObj);
+       return;
+    case GL_BUFFER_ACCESS_FLAGS:
+-      if (ctx->VersionMajor < 3)
++      if (!ctx->Extensions.ARB_map_buffer_range)
+          goto invalid_pname;
+       *params = bufObj->AccessFlags;
+       return;
+    case GL_BUFFER_MAP_OFFSET:
+-      if (ctx->VersionMajor < 3)
++      if (!ctx->Extensions.ARB_map_buffer_range)
+          goto invalid_pname;
+       *params = (GLint) bufObj->Offset;
+       return;
+    case GL_BUFFER_MAP_LENGTH:
+-      if (ctx->VersionMajor < 3)
++      if (!ctx->Extensions.ARB_map_buffer_range)
+          goto invalid_pname;
+       *params = (GLint) bufObj->Length;
+       return;
+@@ -1210,7 +1210,7 @@ _mesa_GetBufferParameteri64v(GLenum target, GLenum pname, GLint64 *params)
+       *params = simplified_access_mode(bufObj->AccessFlags);
+       return;
+    case GL_BUFFER_ACCESS_FLAGS:
+-      if (ctx->VersionMajor < 3)
++      if (!ctx->Extensions.ARB_map_buffer_range)
+          goto invalid_pname;
+       *params = bufObj->AccessFlags;
+       return;
+@@ -1218,12 +1218,12 @@ _mesa_GetBufferParameteri64v(GLenum target, GLenum pname, GLint64 *params)
+       *params = _mesa_bufferobj_mapped(bufObj);
+       return;
+    case GL_BUFFER_MAP_OFFSET:
+-      if (ctx->VersionMajor < 3)
++      if (!ctx->Extensions.ARB_map_buffer_range)
+          goto invalid_pname;
+       *params = bufObj->Offset;
+       return;
+    case GL_BUFFER_MAP_LENGTH:
+-      if (ctx->VersionMajor < 3)
++      if (!ctx->Extensions.ARB_map_buffer_range)
+          goto invalid_pname;
+       *params = bufObj->Length;
+       return;
diff --git a/mesa.spec b/mesa.spec
index b399079..0993d33 100644
--- a/mesa.spec
+++ b/mesa.spec
@@ -30,7 +30,7 @@
 Summary: Mesa graphics libraries
 Name: mesa
 Version: 8.0.1
-Release: 2%{?dist}
+Release: 3%{?dist}
 License: MIT
 Group: System Environment/Libraries
 URL: http://www.mesa3d.org
@@ -45,6 +45,8 @@ Source3: make-git-snapshot.sh
 #Patch7: mesa-7.1-link-shared.patch
 Patch8: mesa-7.10-llvmcore.patch
 
+Patch10: mesa-8.0.1-git.patch
+
 BuildRequires: pkgconfig autoconf automake libtool
 %if %{with_hardware}
 BuildRequires: kernel-headers
@@ -246,6 +248,7 @@ Mesa libwayland-egl development package
 #setup -q -n mesa-%{gitdate} -b2
 #patch7 -p1 -b .dricore
 %patch8 -p1 -b .llvmcore
+%patch10 -p1 -b .git
 
 %build
 
@@ -499,6 +502,9 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/pkgconfig/wayland-egl.pc
 
 %changelog
+* Thu Mar 01 2012 Adam Jackson <ajax at redhat.com> 8.0.1-3
+- mesa-8.0.1-git.patch: Sync with 8.0 branch (commit a3080987)
+
 * Sat Feb 18 2012 Thorsten Leemhuis <fedora at leemhuis.info> 8.0.1-2
 - a few changes for weston, the wayland reference compositor (#790542):
 - enable gbm and shared-glapi in configure command (the latter is required by 


More information about the scm-commits mailing list