[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