summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Dergachev <volodya@freedesktop.org>2005-02-03 04:16:59 +0000
committerVladimir Dergachev <volodya@freedesktop.org>2005-02-03 04:16:59 +0000
commit3f0926b612ca2aaf7a38c2b0ac9a48baa0d7502d (patch)
tree44e74ff2e5f5b847d434a7e3fa7e98e1a3e3f519
parentcb085044c9e09742187bb5a1060473bbf03f1e13 (diff)
Remove redundant instructions from fixed pipelines, looks like they do not do anything, at least on my hardware.
-rw-r--r--src/mesa/drivers/dri/r300/pixel_shader.h9
-rw-r--r--src/mesa/drivers/dri/r300/r300_fixed_pipelines.h39
2 files changed, 13 insertions, 35 deletions
diff --git a/src/mesa/drivers/dri/r300/pixel_shader.h b/src/mesa/drivers/dri/r300/pixel_shader.h
index 07c8449734..0d04859f9b 100644
--- a/src/mesa/drivers/dri/r300/pixel_shader.h
+++ b/src/mesa/drivers/dri/r300/pixel_shader.h
@@ -91,4 +91,13 @@
#define EASY_PFS_INSTR3(dstc, src0, src1, src2, flag) \
MAKE_PFS_INSTR3(dstc, src0, src1, src2, PFS_FLAG_##flag)
+ /* What are 0's ORed with flags ? They are register numbers that
+ just happen to be 0 */
+#define PFS_NOP { \
+ EASY_PFS_INSTR0(MAD, SRC0C_XYZ, ONE, ZERO), \
+ EASY_PFS_INSTR1(0, 0, 0 | PFS_FLAG_CONST, 0 | PFS_FLAG_CONST, NONE, ALL), \
+ EASY_PFS_INSTR2(MAD, SRC0A, ONE, ZERO), \
+ EASY_PFS_INSTR3(0, 0, 0 | PFS_FLAG_CONST, 0 | PFS_FLAG_CONST, OUTPUT) \
+ }
+
#endif
diff --git a/src/mesa/drivers/dri/r300/r300_fixed_pipelines.h b/src/mesa/drivers/dri/r300/r300_fixed_pipelines.h
index 55d7bd9e8c..0b74ed82e2 100644
--- a/src/mesa/drivers/dri/r300/r300_fixed_pipelines.h
+++ b/src/mesa/drivers/dri/r300/r300_fixed_pipelines.h
@@ -98,25 +98,7 @@ static struct r300_pixel_shader_state FLAT_COLOR_PIXEL_SHADER={
length: 0
},
alu: {
- length: 2,
- inst: {
- /* What are 0's ORed with flags ? They are register numbers that
- just happen to be 0 */
- {
- EASY_PFS_INSTR0(MAD, SRC0C_XYZ, ONE, ZERO),
- EASY_PFS_INSTR1(0, 0, 0 | PFS_FLAG_CONST, 0 | PFS_FLAG_CONST, NONE, ALL),
- EASY_PFS_INSTR2(MAD, SRC0A, ONE, ZERO),
- EASY_PFS_INSTR3(0, 0, 0 | PFS_FLAG_CONST, 0 | PFS_FLAG_CONST, OUTPUT)
- },
-
- {
- EASY_PFS_INSTR0(MAD, SRC0C_XYZ, ONE, ZERO),
- EASY_PFS_INSTR1(0, 0, 0 | PFS_FLAG_CONST, 0 | PFS_FLAG_CONST, NONE, ALL),
- EASY_PFS_INSTR2(MAD, SRC0A, ONE, ZERO),
- EASY_PFS_INSTR3(0, 0, 0 | PFS_FLAG_CONST, 0 | PFS_FLAG_CONST, OUTPUT)
- }
-
- }
+ length: 0,
},
node: {
{ 0, 0, 0, 0},
@@ -247,18 +229,12 @@ static struct r300_pixel_shader_state SINGLE_TEXTURE_PIXEL_SHADER={
inst: { 0x00018000 }
},
alu: {
- length: 3,
- inst: {
+ length: 1,
+ inst:
+ {
/* What are 0's ORed with flags ? They are register numbers that
just happen to be 0 */
{
- EASY_PFS_INSTR0(MAD, SRC0C_XYZ, ONE, ZERO),
- EASY_PFS_INSTR1(0, 0, 0 | PFS_FLAG_CONST, 0 | PFS_FLAG_CONST, NONE, ALL),
- EASY_PFS_INSTR2(MAD, SRC0A, ONE, ZERO),
- EASY_PFS_INSTR3(0, 0, 0 | PFS_FLAG_CONST, 0 | PFS_FLAG_CONST, OUTPUT)
- },
-
- {
EASY_PFS_INSTR0(MAD, SRC0C_XYZ, SRC1C_XYZ, ZERO),
EASY_PFS_INSTR1(0, 0, 1, 0 | PFS_FLAG_CONST, NONE, ALL),
@@ -271,13 +247,6 @@ static struct r300_pixel_shader_state SINGLE_TEXTURE_PIXEL_SHADER={
/* alpha in textures */
EASY_PFS_INSTR2(MAD, SRC0A, SRC1A, ZERO),
EASY_PFS_INSTR3(0, 0, 1, 0 | PFS_FLAG_CONST, OUTPUT)
- },
-
- {
- EASY_PFS_INSTR0(MAD, SRC0C_XYZ, ONE, ZERO),
- EASY_PFS_INSTR1(0, 0, 0 | PFS_FLAG_CONST, 0 | PFS_FLAG_CONST, NONE, ALL),
- EASY_PFS_INSTR2(MAD, SRC0A, ONE, ZERO),
- EASY_PFS_INSTR3(0, 0, 0 | PFS_FLAG_CONST, 0 | PFS_FLAG_CONST, OUTPUT)
}
}
},