OSDN Git Service
(root)
/
android-x86
/
external-mesa.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
85e401d
)
r600g: fix constant splitting
author
Dave Airlie
<airlied@redhat.com>
Tue, 31 Aug 2010 00:43:04 +0000
(10:43 +1000)
committer
Dave Airlie
<airlied@redhat.com>
Tue, 31 Aug 2010 00:47:03 +0000
(10:47 +1000)
constant splitting was broken for multi-constant cases, fixes fp1 CMP+MAD, vp1 CMP.
src/gallium/drivers/r600/r600_shader.c
patch
|
blob
|
history
diff --git
a/src/gallium/drivers/r600/r600_shader.c
b/src/gallium/drivers/r600/r600_shader.c
index
2210f83
..
2197a16
100644
(file)
--- a/
src/gallium/drivers/r600/r600_shader.c
+++ b/
src/gallium/drivers/r600/r600_shader.c
@@
-650,7
+650,7
@@
static int tgsi_split_constant(struct r600_shader_ctx *ctx, struct r600_bc_alu_s
for (k = 0; k < 4; k++) {
memset(&alu, 0, sizeof(struct r600_bc_alu));
alu.inst = V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MOV;
- alu.src[0].sel = r600_src[
0
].sel;
+ alu.src[0].sel = r600_src[
j
].sel;
alu.src[0].chan = k;
alu.dst.sel = ctx->temp_reg + j;
alu.dst.chan = k;
@@
-661,7
+661,7
@@
static int tgsi_split_constant(struct r600_shader_ctx *ctx, struct r600_bc_alu_s
if (r)
return r;
}
- r600_src[
0
].sel = ctx->temp_reg + j;
+ r600_src[
j
].sel = ctx->temp_reg + j;
j--;
}
}