snapshot upstream again to hopefully fix ILK bug
This commit is contained in:
parent
7d1f13d65e
commit
9f7b14f2f9
1
.gitignore
vendored
1
.gitignore
vendored
@ -17,3 +17,4 @@ mesa-20100720.tar.bz2
|
||||
/mesa-20110107.tar.xz
|
||||
/MesaLib-7.10.1.tar.bz2
|
||||
/mesa-20110327.tar.xz
|
||||
/mesa-20110330.tar.xz
|
||||
|
@ -1,111 +0,0 @@
|
||||
diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c
|
||||
index e7285d6..6eac1f7 100644
|
||||
--- a/src/gallium/drivers/r600/r600_shader.c
|
||||
+++ b/src/gallium/drivers/r600/r600_shader.c
|
||||
@@ -1526,9 +1526,13 @@ static int tgsi_tex(struct r600_shader_ctx *ctx)
|
||||
unsigned src_gpr;
|
||||
int r, i;
|
||||
int opcode;
|
||||
- boolean src_not_temp =
|
||||
- inst->Src[0].Register.File != TGSI_FILE_TEMPORARY &&
|
||||
- inst->Src[0].Register.File != TGSI_FILE_INPUT;
|
||||
+ /* Texture fetch instructions can only use gprs as source.
|
||||
+ * Also they cannot negate the source or take the absolute value */
|
||||
+ const boolean src_requires_loading =
|
||||
+ (inst->Src[0].Register.File != TGSI_FILE_TEMPORARY &&
|
||||
+ inst->Src[0].Register.File != TGSI_FILE_INPUT) ||
|
||||
+ ctx->src[0].neg || ctx->src[0].abs;
|
||||
+ boolean src_loaded = FALSE;
|
||||
|
||||
src_gpr = ctx->file_offset[inst->Src[0].Register.File] + inst->Src[0].Register.Index;
|
||||
|
||||
@@ -1570,7 +1574,7 @@ static int tgsi_tex(struct r600_shader_ctx *ctx)
|
||||
r = r600_bc_add_alu(ctx->bc, &alu);
|
||||
if (r)
|
||||
return r;
|
||||
- src_not_temp = FALSE;
|
||||
+ src_loaded = TRUE;
|
||||
src_gpr = ctx->temp_reg;
|
||||
}
|
||||
|
||||
@@ -1655,11 +1659,11 @@ static int tgsi_tex(struct r600_shader_ctx *ctx)
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
- src_not_temp = FALSE;
|
||||
+ src_loaded = TRUE;
|
||||
src_gpr = ctx->temp_reg;
|
||||
}
|
||||
|
||||
- if (src_not_temp) {
|
||||
+ if (src_requires_loading && !src_loaded) {
|
||||
for (i = 0; i < 4; i++) {
|
||||
memset(&alu, 0, sizeof(struct r600_bc_alu));
|
||||
alu.inst = CTX_INST(V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MOV);
|
||||
@@ -1673,6 +1677,7 @@ static int tgsi_tex(struct r600_shader_ctx *ctx)
|
||||
if (r)
|
||||
return r;
|
||||
}
|
||||
+ src_loaded = TRUE;
|
||||
src_gpr = ctx->temp_reg;
|
||||
}
|
||||
|
||||
@@ -1691,10 +1696,18 @@ static int tgsi_tex(struct r600_shader_ctx *ctx)
|
||||
tex.dst_sel_y = (inst->Dst[0].Register.WriteMask & 2) ? 1 : 7;
|
||||
tex.dst_sel_z = (inst->Dst[0].Register.WriteMask & 4) ? 2 : 7;
|
||||
tex.dst_sel_w = (inst->Dst[0].Register.WriteMask & 8) ? 3 : 7;
|
||||
- tex.src_sel_x = 0;
|
||||
- tex.src_sel_y = 1;
|
||||
- tex.src_sel_z = 2;
|
||||
- tex.src_sel_w = 3;
|
||||
+ if (src_loaded) {
|
||||
+ tex.src_sel_x = 0;
|
||||
+ tex.src_sel_y = 1;
|
||||
+ tex.src_sel_z = 2;
|
||||
+ tex.src_sel_w = 3;
|
||||
+ } else {
|
||||
+ tex.src_sel_x = ctx->src[0].swizzle[0];
|
||||
+ tex.src_sel_y = ctx->src[0].swizzle[1];
|
||||
+ tex.src_sel_z = ctx->src[0].swizzle[2];
|
||||
+ tex.src_sel_w = ctx->src[0].swizzle[3];
|
||||
+ tex.src_rel = ctx->src[0].rel;
|
||||
+ }
|
||||
|
||||
if (inst->Texture.Texture == TGSI_TEXTURE_CUBE) {
|
||||
tex.src_sel_x = 1;
|
||||
@@ -1712,12 +1725,12 @@ static int tgsi_tex(struct r600_shader_ctx *ctx)
|
||||
|
||||
if (inst->Texture.Texture == TGSI_TEXTURE_1D_ARRAY) {
|
||||
tex.coord_type_z = 0;
|
||||
- tex.src_sel_z = 1;
|
||||
+ tex.src_sel_z = tex.src_sel_y;
|
||||
} else if (inst->Texture.Texture == TGSI_TEXTURE_2D_ARRAY)
|
||||
tex.coord_type_z = 0;
|
||||
|
||||
if (inst->Texture.Texture == TGSI_TEXTURE_SHADOW1D || inst->Texture.Texture == TGSI_TEXTURE_SHADOW2D)
|
||||
- tex.src_sel_w = 2;
|
||||
+ tex.src_sel_w = tex.src_sel_z;
|
||||
|
||||
r = r600_bc_add_tex(ctx->bc, &tex);
|
||||
if (r)
|
||||
diff --git a/src/mesa/state_tracker/st_cb_blit.c b/src/mesa/state_tracker/st_cb_blit.c
|
||||
index 6d02a7d..25c95c7 100644
|
||||
--- a/src/mesa/state_tracker/st_cb_blit.c
|
||||
+++ b/src/mesa/state_tracker/st_cb_blit.c
|
||||
@@ -39,6 +39,7 @@
|
||||
#include "st_texture.h"
|
||||
#include "st_cb_blit.h"
|
||||
#include "st_cb_fbo.h"
|
||||
+#include "st_atom.h"
|
||||
|
||||
#include "util/u_blit.h"
|
||||
|
||||
@@ -75,6 +76,8 @@ st_BlitFramebuffer(struct gl_context *ctx,
|
||||
struct gl_framebuffer *readFB = ctx->ReadBuffer;
|
||||
struct gl_framebuffer *drawFB = ctx->DrawBuffer;
|
||||
|
||||
+ st_validate_state(st);
|
||||
+
|
||||
if (!_mesa_clip_blit(ctx, &srcX0, &srcY0, &srcX1, &srcY1,
|
||||
&dstX0, &dstY0, &dstX1, &dstY1)) {
|
||||
return; /* nothing to draw/blit */
|
@ -12,13 +12,13 @@
|
||||
%define _default_patch_fuzz 2
|
||||
|
||||
%define manpages gl-manpages-1.0.1
|
||||
%define gitdate 20110327
|
||||
%define gitdate 20110330
|
||||
#% define snapshot
|
||||
|
||||
Summary: Mesa graphics libraries
|
||||
Name: mesa
|
||||
Version: 7.11
|
||||
Release: 0.1.%{gitdate}.0%{?dist}
|
||||
Release: 0.2.%{gitdate}.0%{?dist}
|
||||
License: MIT
|
||||
Group: System Environment/Libraries
|
||||
URL: http://www.mesa3d.org
|
||||
@ -31,7 +31,6 @@ Source2: %{manpages}.tar.bz2
|
||||
Source3: make-git-snapshot.sh
|
||||
Source4: llvmcore.mk
|
||||
|
||||
Patch1: mesa-7.11-fixes.patch
|
||||
Patch2: mesa-7.1-nukeglthread-debug.patch
|
||||
Patch3: mesa-no-mach64.patch
|
||||
Patch4: legacy-drivers.patch
|
||||
@ -215,7 +214,6 @@ 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 .upstream
|
||||
%patch2 -p1 -b .intel-glthread
|
||||
%patch3 -p1 -b .no-mach64
|
||||
%patch4 -p1 -b .classic
|
||||
@ -487,6 +485,9 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%{_libdir}/libOSMesa.so
|
||||
|
||||
%changelog
|
||||
* Wed Mar 30 2011 Dave Airlie <airlied@redhat.com> 7.11-0.2.20110330.0
|
||||
- snapshot upstream again to hopefully fix ILK bug
|
||||
|
||||
* Sun Mar 27 2011 Dave Airlie <airlied@redhat.com> 7.11-0.1.20110327.0
|
||||
- pull latest snapshot + 3 post snapshot fixes
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user