mesa-8.0.1-git.patch: Sync with 8.0 branch (commit a3080987)
This commit is contained in:
parent
e94ec35108
commit
db7b1e9432
265
mesa-8.0.1-git.patch
Normal file
265
mesa-8.0.1-git.patch
Normal file
@ -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;
|
@ -30,7 +30,7 @@
|
|||||||
Summary: Mesa graphics libraries
|
Summary: Mesa graphics libraries
|
||||||
Name: mesa
|
Name: mesa
|
||||||
Version: 8.0.1
|
Version: 8.0.1
|
||||||
Release: 2%{?dist}
|
Release: 3%{?dist}
|
||||||
License: MIT
|
License: MIT
|
||||||
Group: System Environment/Libraries
|
Group: System Environment/Libraries
|
||||||
URL: http://www.mesa3d.org
|
URL: http://www.mesa3d.org
|
||||||
@ -45,6 +45,8 @@ Source3: make-git-snapshot.sh
|
|||||||
#Patch7: mesa-7.1-link-shared.patch
|
#Patch7: mesa-7.1-link-shared.patch
|
||||||
Patch8: mesa-7.10-llvmcore.patch
|
Patch8: mesa-7.10-llvmcore.patch
|
||||||
|
|
||||||
|
Patch10: mesa-8.0.1-git.patch
|
||||||
|
|
||||||
BuildRequires: pkgconfig autoconf automake libtool
|
BuildRequires: pkgconfig autoconf automake libtool
|
||||||
%if %{with_hardware}
|
%if %{with_hardware}
|
||||||
BuildRequires: kernel-headers
|
BuildRequires: kernel-headers
|
||||||
@ -246,6 +248,7 @@ Mesa libwayland-egl development package
|
|||||||
#setup -q -n mesa-%{gitdate} -b2
|
#setup -q -n mesa-%{gitdate} -b2
|
||||||
#patch7 -p1 -b .dricore
|
#patch7 -p1 -b .dricore
|
||||||
%patch8 -p1 -b .llvmcore
|
%patch8 -p1 -b .llvmcore
|
||||||
|
%patch10 -p1 -b .git
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
|
||||||
@ -499,6 +502,9 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
%{_libdir}/pkgconfig/wayland-egl.pc
|
%{_libdir}/pkgconfig/wayland-egl.pc
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Mar 01 2012 Adam Jackson <ajax@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@leemhuis.info> 8.0.1-2
|
* Sat Feb 18 2012 Thorsten Leemhuis <fedora@leemhuis.info> 8.0.1-2
|
||||||
- a few changes for weston, the wayland reference compositor (#790542):
|
- a few changes for weston, the wayland reference compositor (#790542):
|
||||||
- enable gbm and shared-glapi in configure command (the latter is required by
|
- enable gbm and shared-glapi in configure command (the latter is required by
|
||||||
|
Loading…
Reference in New Issue
Block a user