summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/drivers/dri/r300/r300_fragprog.h6
-rw-r--r--src/mesa/drivers/dri/r300/r300_fragprog_swz.c837
2 files changed, 417 insertions, 426 deletions
diff --git a/src/mesa/drivers/dri/r300/r300_fragprog.h b/src/mesa/drivers/dri/r300/r300_fragprog.h
index 2bcc23d514c..d841af98a80 100644
--- a/src/mesa/drivers/dri/r300/r300_fragprog.h
+++ b/src/mesa/drivers/dri/r300/r300_fragprog.h
@@ -26,6 +26,12 @@ typedef struct _pfs_reg_t {
GLboolean valid:1;
} pfs_reg_t;
+typedef struct r300_fragment_program_swizzle {
+ GLuint length;
+ GLuint src[4];
+ GLuint inst[8];
+} r300_fragment_program_swizzle_t;
+
/* supported hw opcodes */
#define PFS_OP_MAD 0
#define PFS_OP_DP3 1
diff --git a/src/mesa/drivers/dri/r300/r300_fragprog_swz.c b/src/mesa/drivers/dri/r300/r300_fragprog_swz.c
index 00977ce6848..b29331d7bde 100644
--- a/src/mesa/drivers/dri/r300/r300_fragprog_swz.c
+++ b/src/mesa/drivers/dri/r300/r300_fragprog_swz.c
@@ -62,9 +62,12 @@
(R300_FPI0_ARGC_SRC0CA_WZY) | \
(R300_FPI0_ARGC_ONE << R300_FPI0_ARG1C_SHIFT) | \
(R300_FPI0_ARGC_ZERO << R300_FPI0_ARG2C_SHIFT) )
+#define I0_WWW ( (R300_FPI0_OUTC_MAD) | \
+ (R300_FPI0_ARGC_SRC0A) | \
+ (R300_FPI0_ARGC_ONE << R300_FPI0_ARG1C_SHIFT) | \
+ (R300_FPI0_ARGC_ZERO << R300_FPI0_ARG2C_SHIFT) )
#define IEMPTY 0
-#define I1_CST R300_FPI1_SRC0C_CONST
#define I1_XYZ ( R300_FPI1_SRC1C_CONST | \
R300_FPI1_SRC2C_CONST | \
@@ -100,8 +103,8 @@ struct r300_fragment_program_swizzle r300_swizzle [512] = {
{1,{0,0,0,0},{ I0_XXX, I1_XYZ,
0, 0, 0, 0, 0, 0 } },
/* YXX */
- {2,{0,0,0,0},{ I0_YYY, I1_X__,
- I0_XXX, I1__YZ,
+ {2,{0,0,0,0},{ I0_YZX, I1_X_Z,
+ I0_XXX, I1__Y_,
0,0,
0,0 } },
/* ZXX */
@@ -116,12 +119,12 @@ struct r300_fragment_program_swizzle r300_swizzle [512] = {
0,0} },
/* 0XX */
{2,{0,2,0,0},{ I0_XXX, I1__YZ,
- I0_000, I1_X__ | I1_CST,
+ I0_000, I1_X__,
0,0,
0,0 } },
/* 1XX */
{2,{0,2,0,0},{ I0_XXX, I1__YZ,
- I0_111, I1_X__ | I1_CST,
+ I0_111, I1_X__,
0,0,0,0}},
SEMPTY,SEMPTY,
/* XYX */
@@ -145,12 +148,12 @@ struct r300_fragment_program_swizzle r300_swizzle [512] = {
/* 0YX */
{3,{0,0,2,0},{ I0_YYY, I1__Y_,
I0_XXX, I1___Z,
- I0_000, I1_X__ | I1_CST,
+ I0_000, I1_X__,
0,0}},
/* 1YX */
{3,{0,0,2,0},{ I0_YYY, I1__Y_,
I0_XXX, I1___Z,
- I0_111, I1_X__ | I1_CST,
+ I0_111, I1_X__,
0,0}},
SEMPTY,SEMPTY,
/* XZX */
@@ -164,102 +167,99 @@ struct r300_fragment_program_swizzle r300_swizzle [512] = {
{2,{0,0,0,0},{ I0_YZX, I1__YZ,
I0_ZZZ, I1_X__,0,0,0,0}},
/* WZX */
- {2,{0,0,0,0},{ I0_WZY, I1__YZ,
- I0_XXX, I1_X__,0,0,0,0}},
+ {2,{0,0,0,0},{ I0_WZY, I1_XY_,
+ I0_XXX, I1___Z,0,0,0,0}},
/* 0ZX */
{2,{0,2,0,0},{ I0_YZX, I1__YZ,
- I0_000, I1_X__ | I1_CST,
+ I0_000, I1_X__,
0,0,0,0}},
/* 1ZX */
{2,{0,2,0,0},{ I0_YZX, I1__YZ,
- I0_111, I1_X__ | I1_CST,
+ I0_111, I1_X__,
0,0,0,0}},
SEMPTY,SEMPTY,
/* XWX */
- {3,{0,1,0,0},{ I0_WZY, I1_X__,
- I0_XXX, I1__Y_,
+ {2,{0,0,0,0},{ I0_WWW, I1__Y_,
I0_XXX, I1_X_Z,
- 0,0}},
+ 0,0,0,0}},
/* YWX */
- {3,{0,1,0,0},{ I0_WZY, I1_X__,
- I0_XXX, I1__Y_,
+ {2,{0,0,0,0},{ I0_WWW, I1__Y_,
I0_YZX, I1_X_Z,
- 0,0}},
+ 0,0,0,0}},
/* ZWX */
- {4,{0,1,0,0},{ I0_WZY, I1_X__,
- I0_XXX, I1__Y_,
+ {3,{0,0,0,0},{ I0_WWW, I1__Y_,
I0_ZZZ, I1_X__,
- I0_XXX, I1___Z } },
+ I0_XXX, I1___Z,
+ 0,0}},
/* WWX */
- {3,{0,1,0,0},{ I0_WZY, I1_X__,
- I0_XXX, I1_XY_,
+ {2,{0,0,0,0},{ I0_WWW, I1_XY_,
I0_YZX, I1___Z,
- 0,0}},
+ 0,0,0,0}},
/* 0WX */
- {4,{0,1,0,2},{ I0_WZY, I1_X__,
- I0_XXX, I1__Y_,
- I0_YZX, I1___Z,
- I0_000, I1_X__ | I1_CST } },
+ {3,{0,0,2,0},{ I0_WWW, I1__Y_,
+ I0_XXX, I1___Z,
+ I0_000, I1_X__,
+ 0,0}},
/* 1WX */
- {4,{0,1,0,2},{ I0_WZY, I1_X__,
- I0_XXX, I1__Y_,
- I0_YZX, I1___Z,
- I0_111, I1_X__ | I1_CST } },
+ {3,{0,0,2,0},{ I0_WWW, I1__Y_,
+ I0_XXX, I1___Z,
+ I0_111, I1_X__,
+ 0,0}},
SEMPTY,SEMPTY,
/* X0X */
{2,{0,2,0,0},{ I0_XXX, I1_X_Z,
- I0_000, I1__Y_ | I1_CST,
+ I0_000, I1__Y_,
0,0,0,0}},
/* Y0X */
{2,{0,2,0,0},{ I0_YZX, I1_X_Z,
- I0_000, I1__Y_ | I1_CST,
+ I0_000, I1__Y_,
0,0,0,0}},
/* Z0X */
{3,{0,2,0,0},{ I0_XXX, I1___Z,
- I0_000, I1__Y_ | I1_CST,
+ I0_000, I1__Y_,
I0_ZZZ, I1_X__,
0,0}},
/* W0X */
- {3,{0,2,0,0},{ I0_XXX, I1___Z,
- I0_000, I1__Y_ | I1_CST,
- I0_WZY, I1_X__,
+ {3,{0,0,2,0},{ I0_WZY, I1_XYZ,
+ I0_XXX, I1___Z,
+ I0_000, I1__Y_,
0,0}},
/* 00X */
{2,{0,2,0,0},{ I0_XXX, I1___Z,
- I0_000, I1_XY_ | I1_CST,
+ I0_000, I1_XY_,
0,0,0,0}},
/* 10X */
{3,{0,2,0,0},{ I0_XXX, I1___Z,
- I0_000, I1__Y_ | I1_CST,
- I0_111, I1_X__ | I1_CST,
+ I0_000, I1__Y_,
+ I0_111, I1_X__,
0,0}},
SEMPTY,SEMPTY,
/* X1X */
{2,{0,2,0,0},{ I0_XXX, I1_X_Z,
- I0_111, I1__Y_ | I1_CST,
+ I0_111, I1__Y_,
0,0,0,0}},
/* Y1X */
{2,{0,2,0,0},{ I0_YZX, I1_X_Z,
- I0_111, I1__Y_ | I1_CST,
+ I0_111, I1__Y_,
0,0,0,0}},
/* Z1X */
{3,{0,2,0,0},{ I0_XXX, I1___Z,
- I0_111, I1__Y_ | I1_CST,
+ I0_111, I1__Y_,
I0_ZZZ, I1_X__,
0,0}},
/* W1X */
- {3,{0,2,0,0},{ I0_XXX, I1___Z,
- I0_111, I1__Y_ | I1_CST,
- I0_WZY, I1_X__,
+ {3,{0,0,2,0},{ I0_WZY, I1_XYZ,
+ I0_XXX, I1___Z,
+ I0_111, I1__Y_,
0,0}},
/* 01X */
{3,{0,2,0,0},{ I0_XXX, I1___Z,
- I0_111, I1__Y_ | I1_CST,
- I0_000, I1_X__ | I1_CST,
+ I0_111, I1__Y_,
+ I0_000, I1_X__,
0,0}},
/* 11X */
{2,{0,2,0,0},{ I0_XXX, I1___Z,
- I0_111, I1_XY_ | I1_CST,
+ I0_111, I1_XY_,
0,0,0,0}},
SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
@@ -280,11 +280,11 @@ struct r300_fragment_program_swizzle r300_swizzle [512] = {
0,0,0,0}},
/* 0XY */
{2,{0,0,0,0},{ I0_ZXY, I1__YZ,
- I0_000, I1_X__ | I1_CST,
+ I0_000, I1_X__,
0,0,0,0}},
/* 1XY */
{2,{0,0,0,0},{ I0_ZXY, I1__YZ,
- I0_111, I1_X__ | I1_CST,
+ I0_111, I1_X__,
0,0,0,0}},
SEMPTY,SEMPTY,
/* XYY */
@@ -299,16 +299,16 @@ struct r300_fragment_program_swizzle r300_swizzle [512] = {
I0_ZZZ, I1_X__,
0,0,0,0}},
/* WYY */
- {2,{0,0,0,0},{ I0_YYY, I1__YZ,
- I0_WZY, I1_X__,
+ {2,{0,0,0,0},{ I0_WZY, I1_XYZ,
+ I0_YYY, I1__YZ,
0,0,0,0}},
/* 0YY */
{2,{0,0,0,0},{ I0_YYY, I1__YZ,
- I0_000, I1_X__ | I1_CST,
+ I0_000, I1_X__,
0,0,0,0}},
/* 1YY */
{2,{0,0,0,0},{ I0_YYY, I1__YZ,
- I0_111, I1_X__ | I1_CST,
+ I0_111, I1_X__,
0,0,0,0}},
SEMPTY,SEMPTY,
/* XZY */
@@ -328,96 +328,93 @@ struct r300_fragment_program_swizzle r300_swizzle [512] = {
0, 0, 0, 0, 0, 0 } },
/* 0ZY */
{2,{0,0,0,0},{ I0_WZY, I1__YZ,
- I0_000, I1_X__ | I1_CST,
+ I0_000, I1_X__,
0,0,0,0}},
/* 1ZY */
{2,{0,0,0,0},{ I0_WZY, I1__YZ,
- I0_111, I1_X__ | I1_CST,
+ I0_111, I1_X__,
0,0,0,0}},
SEMPTY,SEMPTY,
/* XWY */
- {4,{0,1,0,0},{ I0_WZY, I1_X__,
- I0_XXX, I1__Y_,
+ {3,{0,0,0,0},{ I0_WWW, I1__Y_,
I0_XXX, I1_X__,
- I0_YYY, I1___Z } },
+ I0_YYY, I1___Z,
+ 0,0}},
/* YWY */
- {3,{0,1,0,0},{ I0_WZY, I1_X__,
- I0_XXX, I1__Y_,
+ {2,{0,0,0,0},{ I0_WWW, I1__Y_,
I0_YYY, I1_X_Z,
- 0,0}},
+ 0,0,0,0}},
/* ZWY */
- {3,{0,1,0,0},{ I0_WZY, I1_X__,
- I0_XXX, I1__Y_,
+ {2,{0,0,0,0},{ I0_WWW, I1__Y_,
I0_ZXY, I1_X_Z,
- 0,0}},
+ 0,0,0,0}},
/* WWY */
- {3,{0,1,0,0},{ I0_WZY, I1_X__,
- I0_XXX, I1_XY_,
+ {2,{0,0,0,0},{ I0_WWW, I1_XY_,
I0_ZXY, I1___Z,
- 0,0}},
+ 0,0,0,0}},
/* 0WY */
- {4,{0,1,0,0},{ I0_WZY, I1_X__,
- I0_XXX, I1__Y_,
+ {3,{0,0,2,0},{ I0_WWW, I1__Y_,
I0_ZXY, I1___Z,
- I0_000, I1_X__ | I1_CST } },
+ I0_000, I1_X__,
+ 0,0}},
/* 1WY */
- {4,{0,1,0,0},{ I0_WZY, I1_X__,
- I0_XXX, I1__Y_,
+ {3,{0,0,0,0},{ I0_WWW, I1__Y_,
I0_ZXY, I1___Z,
- I0_111, I1_X__ | I1_CST } },
+ I0_111, I1_X__,
+ 0,0}},
SEMPTY,SEMPTY,
/* X0Y */
{3,{0,2,0,0},{ I0_XXX, I1_X__,
- I0_000, I1__Y_ | I1_CST,
+ I0_000, I1__Y_,
I0_YYY, I1___Z,
0,0}},
/* Y0Y */
{2,{0,2,0,0},{ I0_YYY, I1_X_Z,
- I0_000, I1__Y_ | I1_CST,
+ I0_000, I1__Y_,
0,0,0,0}},
/* Z0Y */
{2,{0,2,0,0},{ I0_ZXY, I1_X_Z,
- I0_000, I1__Y_ | I1_CST,
+ I0_000, I1__Y_,
0,0,0,0}},
/* W0Y */
{2,{0,2,0,0},{ I0_WZY, I1_X_Z,
- I0_000, I1__Y_ | I1_CST,
+ I0_000, I1__Y_,
0,0,0,0}},
/* 00Y */
{2,{0,2,0,0},{ I0_YYY, I1___Z,
- I0_000, I1_XY_ | I1_CST,
+ I0_000, I1_XY_,
0,0,0,0}},
/* 10Y */
{3,{0,2,0,0},{ I0_YYY, I1___Z,
- I0_000, I1__Y_ | I1_CST,
- I0_111, I1_X__ | I1_CST,
+ I0_000, I1__Y_,
+ I0_111, I1_X__,
0,0}},
SEMPTY,SEMPTY,
/* X1Y */
{3,{0,2,0,0},{ I0_XXX, I1_X__,
- I0_111, I1__Y_ | I1_CST,
+ I0_111, I1__Y_,
I0_YYY, I1___Z,
0,0}},
/* Y1Y */
{2,{0,2,0,0},{ I0_YYY, I1_X_Z,
- I0_111, I1__Y_ | I1_CST,
+ I0_111, I1__Y_,
0,0,0,0}},
/* Z1Y */
{2,{0,2,0,0},{ I0_ZXY, I1_X_Z,
- I0_111, I1__Y_ | I1_CST,
+ I0_111, I1__Y_,
0,0,0,0}},
/* W1Y */
{3,{0,2,0,0},{ I0_WZY, I1_X_Z,
- I0_111, I1__Y_ | I1_CST,
+ I0_111, I1__Y_,
0,0,0,0}},
/* 01Y */
{3,{0,2,0,0},{ I0_YYY, I1___Z,
- I0_111, I1__Y_ | I1_CST,
- I0_000, I1_X__ | I1_CST,
+ I0_111, I1__Y_,
+ I0_000, I1_X__,
0,0}},
/* 11Y */
{2,{0,2,0,0},{ I0_YYY, I1___Z,
- I0_111, I1_XY_ | I1_CST,
+ I0_111, I1_XY_,
0,0,0,0}},
SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
@@ -435,19 +432,19 @@ struct r300_fragment_program_swizzle r300_swizzle [512] = {
I0_ZZZ, I1_X_Z,
0,0,0,0}},
/* WXZ */
- {3,{0,0,0,0},{ I0_XXX, I1__Y_,
+ {3,{0,0,0,0},{ I0_WZY, I1_XYZ,
+ I0_XXX, I1__Y_,
I0_ZZZ, I1___Z,
- I0_WZY, I1_X__,
0,0}},
/* 0XZ */
{3,{0,0,2,0},{ I0_XXX, I1__Y_,
I0_ZZZ, I1___Z,
- I0_000, I1_X__ | I1_CST,
+ I0_000, I1_X__,
0,0}},
/* 1XZ */
{3,{0,0,2,0},{ I0_XXX, I1__Y_,
I0_ZZZ, I1___Z,
- I0_111, I1_X__ | I1_CST,
+ I0_111, I1_X__,
0,0}},
SEMPTY,SEMPTY,
/* XYZ */
@@ -462,16 +459,16 @@ struct r300_fragment_program_swizzle r300_swizzle [512] = {
I0_YYY, I1__Y_,
0,0,0,0}},
/* WYZ */
- {2,{0,0,0,0},{ I0_XYZ, I1__YZ,
- I0_WZY, I1_X__,
+ {2,{0,0,0,0},{ I0_WZY, I1_XYZ,
+ I0_XYZ, I1__YZ,
0,0,0,0}},
/* 0YZ */
{2,{0,2,0,0},{ I0_XYZ, I1__YZ,
- I0_000, I1_X__ | I1_CST,
+ I0_000, I1_X__,
0,0,0,0}},
/* 1YZ */
{2,{0,2,0,0},{ I0_XYZ, I1__YZ,
- I0_111, I1_X__ | I1_CST,
+ I0_111, I1_X__,
0,0,0,0}},
SEMPTY,SEMPTY,
/* XZZ */
@@ -486,449 +483,436 @@ struct r300_fragment_program_swizzle r300_swizzle [512] = {
{1,{0,0,0,0},{ I0_ZZZ, I1_XYZ,
0, 0, 0, 0, 0, 0 } },
/* WZZ */
- {2,{0,0,0,0},{ I0_ZZZ, I1__YZ,
- I0_WZY, I1_X__,
+ {2,{0,0,0,0},{ I0_WZY, I1_XYZ,
+ I0_ZZZ, I1__YZ,
0,0,0,0}},
/* 0ZZ */
{2,{0,2,0,0},{ I0_ZZZ, I1__YZ,
- I0_000, I1_X__ | I1_CST,
+ I0_000, I1_X__,
0,0,0,0}},
/* 1ZZ */
{2,{0,2,0,0},{ I0_ZZZ, I1__YZ,
- I0_111, I1_X__ | I1_CST,
+ I0_111, I1_X__,
0,0,0,0}},
SEMPTY,SEMPTY,
/* XWZ */
- {3,{0,1,0,0},{ I0_WZY, I1_X__,
- I0_XXX, I1__Y_,
+ {2,{0,0,0,0},{ I0_WWW, I1__Y_,
I0_XYZ, I1_X_Z,
- 0,0}},
+ 0,0,0,0}},
/* YWZ */
- {4,{0,1,0,0},{ I0_WZY, I1_X__,
- I0_XXX, I1__Y_,
+ {3,{0,0,0,0},{ I0_WWW, I1__Y_,
I0_YYY, I1_X__,
- I0_XYZ, I1___Z } },
+ I0_XYZ, I1___Z,
+ 0,0}},
/* ZWZ */
- {3,{0,1,0,0},{ I0_WZY, I1_X__,
- I0_XXX, I1__Y_,
+ {2,{0,0,0,0},{ I0_WWW, I1__Y_,
I0_ZZZ, I1_X_Z,
- 0,0}},
+ 0,0,0,0}},
/* WWZ */
- {3,{0,1,0,0},{ I0_WZY, I1_X__,
- I0_XXX, I1_XY_,
+ {2,{0,0,0,0},{ I0_WWW, I1_XY_,
I0_XYZ, I1___Z,
- 0,0}},
+ 0,0,0,0}},
/* 0WZ */
- {4,{0,1,0,2},{ I0_WZY, I1_X__,
- I0_XXX, I1__Y_,
+ {3,{0,0,2,0},{ I0_WWW, I1__Y_,
I0_XYZ, I1___Z,
- I0_000, I1_X__ | I1_CST } },
+ I0_000, I1_X__,
+ 0,0}},
/* 1WZ */
- {4,{0,1,0,2},{ I0_WZY, I1_X__,
- I0_XXX, I1__Y_,
+ {3,{0,0,2,0},{ I0_WWW, I1__Y_,
I0_XYZ, I1___Z,
- I0_111, I1_X__ | I1_CST } },
+ I0_111, I1_X__,
+ 0,0}},
SEMPTY,SEMPTY,
/* X0Z */
{2,{0,2,0,0},{ I0_XYZ, I1_X_Z,
- I0_000, I1__Y_ | I1_CST,
+ I0_000, I1__Y_,
0,0,0,0}},
/* Y0Z */
{3,{0,2,0,0},{ I0_ZZZ, I1___Z,
- I0_000, I1__Y_ | I1_CST,
+ I0_000, I1__Y_,
I0_YYY, I1_X__,
0,0}},
/* Z0Z */
{2,{0,2,0,0},{ I0_ZZZ, I1_X_Z,
- I0_000, I1__Y_ | I1_CST,
+ I0_000, I1__Y_,
0,0,0,0}},
/* W0Z */
- {3,{0,2,0,0},{ I0_ZZZ, I1___Z,
- I0_000, I1__Y_ | I1_CST,
- I0_WZY, I1_X__,
+ {3,{0,0,2,0},{ I0_WZY, I1_X_Z,
+ I0_ZZZ, I1___Z,
+ I0_000, I1__Y_,
0,0}},
/* 00Z */
{2,{0,2,0,0},{ I0_ZZZ, I1___Z,
- I0_000, I1_XY_ | I1_CST,
+ I0_000, I1_XY_,
0,0,0,0}},
/* 10Z */
{3,{0,2,2,0},{ I0_ZZZ, I1___Z,
- I0_000, I1__Y_ | I1_CST,
- I0_111, I1_X__ | I1_CST,
+ I0_000, I1__Y_,
+ I0_111, I1_X__,
0,0}},
SEMPTY,SEMPTY,
/* X1Z */
{2,{0,2,0,0},{ I0_XYZ, I1_X_Z,
- I0_111, I1__Y_ | I1_CST,
+ I0_111, I1__Y_,
0,0,0,0}},
/* Y1Z */
{3,{0,2,0,0},{ I0_ZZZ, I1___Z,
- I0_111, I1__Y_ | I1_CST,
+ I0_111, I1__Y_,
I0_YYY, I1_X__,
0,0}},
/* Z1Z */
{2,{0,2,0,0},{ I0_ZZZ, I1_X_Z,
- I0_111, I1__Y_ | I1_CST,
+ I0_111, I1__Y_,
0,0,0,0}},
/* W1Z */
- {3,{0,2,0,0},{ I0_ZZZ, I1___Z,
- I0_111, I1__Y_ | I1_CST,
- I0_WZY, I1_X__,
+ {3,{0,0,2,0},{ I0_WZY, I1_XYZ,
+ I0_ZZZ, I1___Z,
+ I0_111, I1__Y_,
0,0}},
/* 01Z */
{3,{0,2,2,0},{ I0_ZZZ, I1___Z,
- I0_111, I1__Y_ | I1_CST,
- I0_000, I1_X__ | I1_CST,
+ I0_111, I1__Y_,
+ I0_000, I1_X__,
0,0}},
/* 11Z */
{2,{0,2,0,0},{ I0_ZZZ, I1___Z,
- I0_111, I1_XY_ | I1_CST,
+ I0_111, I1_XY_,
0,0,0,0}},
SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
/* XXW */
- {3,{0,1,0,0},{ I0_WZY, I1_X__,
- I0_XXX, I1___Z,
+ {2,{0,0,0,0},{ I0_WWW, I1___Z,
I0_XXX, I1_XY_,
- 0,0}},
+ 0,0,0,0}},
/* YXW */
- {4,{0,1,0,0},{ I0_WZY, I1_X__,
- I0_XXX, I1___Z,
+ {3,{0,0,0,0},{ I0_WWW, I1___Z,
I0_XXX, I1__Y_,
- I0_YYY, I1_X__ } },
+ I0_YYY, I1_X__,
+ 0,0}},
/* ZXW */
- {3,{0,1,0,0},{ I0_WZY, I1_X__,
- I0_XXX, I1___Z,
+ {2,{0,0,0,0},{ I0_WWW, I1___Z,
I0_ZXY, I1_XY_,
- 0,0}},
+ 0,0,0,0}},
/* WXW */
- {3,{0,1,0,0},{ I0_WZY, I1_X__,
- I0_XXX, I1_X_Z,
+ {2,{0,0,0,0},{ I0_WWW, I1_X_Z,
I0_XXX, I1__Y_,
- 0,0}},
+ 0,0,0,0}},
/* 0XW */
- {4,{0,1,0,2},{ I0_WZY, I1_X__,
- I0_XXX, I1___Z,
+ {3,{0,0,2,0},{ I0_WWW, I1___Z,
I0_XXX, I1__Y_,
- I0_000, I1_X__ | I1_CST } },
+ I0_000, I1_X__,
+ 0,0}},
/* 1XW */
- {4,{0,1,0,2},{ I0_WZY, I1_X__,
- I0_XXX, I1___Z,
+ {3,{0,0,2,0},{ I0_WWW, I1___Z,
I0_XXX, I1__Y_,
- I0_111, I1_X__ | I1_CST } },
+ I0_111, I1_X__,
+ 0,0}},
SEMPTY,SEMPTY,
/* XYW */
- {3,{0,1,0,0},{ I0_WZY, I1_X__,
- I0_XXX, I1___Z,
+ {2,{0,0,0,0},{ I0_WWW, I1___Z,
I0_XYZ, I1_XY_,
- 0,0}},
+ 0,0,0,0}},
/* YYW */
- {3,{0,1,0,0},{ I0_WZY, I1_X__,
- I0_XXX, I1___Z,
+ {2,{0,0,0,0},{ I0_WWW, I1___Z,
I0_YYY, I1_XY_,
0,0}},
/* ZYW */
- {4,{0,1,0,0},{ I0_WZY, I1_X__,
- I0_XXX, I1___Z,
+ {3,{0,0,0,0},{ I0_WWW, I1___Z,
I0_XYZ, I1__Y_,
- I0_ZZZ, I1_X__ } },
+ I0_ZZZ, I1_X__,
+ 0,0}},
/* WYW */
- {3,{0,1,0,0},{ I0_WZY, I1_X__,
- I0_XXX, I1_X_Z,
+ {2,{0,0,0,0},{ I0_WWW, I1_X_Z,
I0_YYY, I1__Y_,
- 0,0}},
+ 0,0,0,0}},
/* 0YW */
- {4,{0,1,0,2},{ I0_WZY, I1_X__,
- I0_XXX, I1___Z,
+ {3,{0,0,2,0},{ I0_WWW, I1___Z,
I0_YYY, I1__Y_,
- I0_000, I1_X__ | I1_CST } },
+ I0_000, I1_X__,
+ 0,0}},
/* 1YW */
- {4,{0,1,0,2},{ I0_WZY, I1_X__,
- I0_XXX, I1___Z,
+ {3,{0,0,2,0},{ I0_WWW, I1___Z,
I0_YYY, I1__Y_,
- I0_111, I1_X__ | I1_CST } },
+ I0_111, I1_X__,
+ 0,0}},
SEMPTY,SEMPTY,
/* XZW */
- {4,{0,1,0,0},{ I0_WZY, I1_X__,
- I0_XXX, I1___Z,
+ {3,{0,0,0,0},{ I0_WWW, I1___Z,
I0_XYZ, I1_X__,
- I0_ZZZ, I1__Y_ } },
+ I0_ZZZ, I1__Y_,
+ 0,0}},
/* YZW */
- {3,{0,1,0,0},{ I0_WZY, I1_X__,
- I0_XXX, I1___Z,
+ {2,{0,0,0,0},{ I0_WWW, I1___Z,
I0_YZX, I1_XY_,
- 0,0}},
+ 0,0,0,0}},
/* ZZW */
- {3,{0,1,0,0},{ I0_WZY, I1_X__,
- I0_XXX, I1___Z,
+ {2,{0,0,0,0},{ I0_WWW, I1___Z,
I0_ZZZ, I1_XY_,
- 0,0}},
+ 0,0,0,0}},
/* WZW */
- {3,{0,1,0,0},{ I0_WZY, I1_X__,
- I0_XXX, I1_X_Z,
+ {2,{0,0,0,0},{ I0_WWW, I1_X_Z,
I0_ZZZ, I1__Y_,
- 0,0}},
+ 0,0,0,0}},
/* 0ZW */
- {4,{0,1,0,2},{ I0_WZY, I1_X__,
- I0_XXX, I1___Z,
+ {3,{0,0,2,0},{ I0_WWW, I1___Z,
I0_ZZZ, I1__Y_,
- I0_000, I1_X__ | I1_CST } },
+ I0_000, I1_X__,
+ 0,0}},
/* 1ZW */
- {4,{0,1,0,2},{ I0_WZY, I1_X__,
- I0_XXX, I1___Z,
+ {3,{0,0,2,0},{ I0_WWW, I1___Z,
I0_ZZZ, I1__Y_,
- I0_111, I1_X__ | I1_CST } },
+ I0_111, I1_X__,
+ 0,0}},
SEMPTY,SEMPTY,
/* XWW */
- {3,{0,1,0,0},{ I0_WZY, I1_X__,
- I0_XXX, I1__YZ,
+ {2,{0,0,0,0},{ I0_WWW, I1__YZ,
I0_XYZ, I1_X__,
- 0,0}},
+ 0,0,0,0}},
/* YWW */
- {3,{0,1,0,0},{ I0_WZY, I1_X__,
- I0_XXX, I1__YZ,
+ {2,{0,0,0,0},{ I0_WWW, I1__YZ,
I0_YYY, I1_X__,
- 0,0}},
+ 0,0,0,0}},
/* ZWW */
- {3,{0,1,0,0},{ I0_WZY, I1_X__,
- I0_XXX, I1__YZ,
+ {2,{0,0,0,0},{ I0_WWW, I1__YZ,
I0_ZZZ, I1_X__,
- 0,0}},
- /* WWW */
- {2,{0,1,0,0},{ I0_WZY, I1_X__,
- I0_XXX, I1_XYZ,
0,0,0,0}},
+ /* WWW */
+ {1,{0,0,0,0},{ I0_WWW, I1_XYZ,
+ 0,0,0,0,0,0}},
/* 0WW */
- {3,{0,1,2,0},{ I0_WZY, I1_X__,
- I0_XXX, I1__YZ,
- I0_000, I1_X__ | I1_CST,
- 0,0}},
+ {2,{0,2,0,0},{ I0_WWW, I1__YZ,
+ I0_000, I1_X__,
+ 0,0,0,0}},
/* 1WW */
- {3,{0,1,2,0},{ I0_WZY, I1_X__,
- I0_XXX, I1__YZ,
- I0_111, I1_X__ | I1_CST,
+ {2,{0,2,0,0},{ I0_WWW, I1__YZ,
+ I0_111, I1_X__,
0,0}},
SEMPTY,SEMPTY,
/* X0W */
- {4,{0,1,0,2},{ I0_WZY, I1_X__,
- I0_XXX, I1___Z,
+ {3,{0,0,2,0},{ I0_WWW, I1___Z,
I0_XYZ, I1_X__,
- I0_000, I1__Y_ | I1_CST } },
+ I0_000, I1__Y_,
+ 0,0}},
/* Y0W */
- {4,{0,1,0,2},{ I0_WZY, I1_X__,
- I0_XXX, I1___Z,
+ {3,{0,0,2,0},{ I0_WWW, I1___Z,
I0_YYY, I1_X__,
- I0_000, I1__Y_ | I1_CST } },
+ I0_000, I1__Y_,
+ 0,0}},
/* Z0W */
- {4,{0,1,0,2},{ I0_WZY, I1_X__,
- I0_XXX, I1___Z,
+ {3,{0,0,2,0},{ I0_WWW, I1___Z,
I0_ZZZ, I1_X__,
- I0_000, I1__Y_ | I1_CST } },
- /* 00W */
- {3,{0,1,0,2},{ I0_WZY, I1_X__,
- I0_XXX, I1___Z,
- I0_000, I1_XY_ | I1_CST,
+ I0_000, I1__Y_,
0,0}},
+ /* W0W */
+ {2,{0,2,0,0},{ I0_WWW, I1_X_Z,
+ I0_000, I1__Y_,
+ 0,0,0,0}},
+ /* 00W */
+ {2,{0,2,0,0},{ I0_WWW, I1___Z,
+ I0_000, I1_XY_,
+ 0,0,0,0}},
/* 10W */
- {4,{0,1,2,2},{ I0_WZY, I1_X__,
- I0_XXX, I1___Z,
- I0_111, I1_X__ | I1_CST,
- I0_000, I1__Y_ | I1_CST } },
+ {3,{0,2,2,0},{ I0_WWW, I1___Z,
+ I0_111, I1_X__,
+ I0_000, I1__Y_,
+ 0,0}},
SEMPTY,SEMPTY,
/* X1W */
- {4,{0,1,0,2},{ I0_WZY, I1_X__,
- I0_XXX, I1___Z,
+ {3,{0,0,2,0},{ I0_WWW, I1___Z,
I0_XYZ, I1_X__,
- I0_111, I1__Y_ | I1_CST } },
+ I0_111, I1__Y_,
+ 0,0}},
/* Y1W */
- {4,{0,1,0,2},{ I0_WZY, I1_X__,
- I0_XXX, I1___Z,
+ {3,{0,0,2,0},{ I0_WWW, I1___Z,
I0_YYY, I1_X__,
- I0_111, I1__Y_ | I1_CST } },
+ I0_111, I1__Y_,
+ 0,0}},
/* Z1W */
- {4,{0,1,0,2},{ I0_WZY, I1_X__,
- I0_XXX, I1___Z,
+ {3,{0,0,2,0},{ I0_WWW, I1___Z,
I0_ZZZ, I1_X__,
- I0_111, I1__Y_ | I1_CST } },
+ I0_111, I1__Y_,
+ 0,0}},
+ /* W1W */
+ {2,{0,2,0,0},{ I0_WWW, I1_XYZ,
+ I0_111, I1__Y_,
+ 0,0,0,0}},
/* 01W */
- {4,{0,1,2,2},{ I0_WZY, I1_X__,
- I0_XXX, I1___Z,
- I0_000, I1_X__ | I1_CST,
- I0_111, I1__Y_ | I1_CST } },
- /* 11W */
- {3,{0,1,0,2},{ I0_WZY, I1_X__,
- I0_XXX, I1___Z,
- I0_111, I1_XY_ | I1_CST,
+ {3,{0,2,2,0},{ I0_WWW, I1___Z,
+ I0_000, I1_X__,
+ I0_111, I1__Y_,
0,0}},
+ /* 11W */
+ {2,{0,2,0,0},{ I0_WWW, I1___Z,
+ I0_111, I1_XY_,
+ 0,0,0,0}},
SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
/* XX0 */
- {2,{2,0,0,0},{ I0_000, I1___Z | I1_CST,
- I0_XXX, I1_XY_,
+ {2,{0,2,0,0},{ I0_XXX, I1_XY_,
+ I0_000, I1___Z,
0,0,0,0}},
/* YX0 */
- {3,{2,0,0,0},{ I0_000, I1___Z | I1_CST,
+ {3,{0,0,2,0},{ I0_YYY, I1_X__,
I0_XXX, I1__Y_,
- I0_YYY, I1_X__,
+ I0_000, I1___Z,
0,0}},
/* ZX0 */
- {2,{2,0,0,0},{ I0_000, I1___Z | I1_CST,
- I0_ZXY, I1_XY_,
+ {2,{0,2,0,0},{ I0_ZXY, I1_XY_,
+ I0_000, I1___Z,
0,0,0,0}},
/* WX0 */
- {3,{2,0,0,0},{ I0_000, I1___Z | I1_CST,
+ {3,{0,0,2,0},{ I0_WZY, I1_X__,
I0_XXX, I1__Y_,
- I0_WZY, I1_X__,
+ I0_000, I1___Z,
0,0}},
/* 0X0 */
- {2,{2,0,0,0},{ I0_000, I1_X_Z | I1_CST,
- I0_XXX, I1__Y_,
+ {2,{0,2,0,0},{ I0_XXX, I1__Y_,
+ I0_000, I1_X_Z,
0,0,0,0}},
/* 1X0 */
- {3,{2,0,2,0},{ I0_000, I1___Z | I1_CST,
- I0_XXX, I1__Y_,
- I0_111, I1_X__ | I1_CST,
+ {3,{0,2,2,0},{ I0_XXX, I1__Y_,
+ I0_000, I1___Z,
+ I0_111, I1_X__,
0,0}},
SEMPTY,SEMPTY,
/* XY0 */
- {2,{2,0,0,0},{ I0_000, I1___Z | I1_CST,
- I0_XYZ, I1_XY_,
+ {2,{0,2,0,0},{ I0_XYZ, I1_XY_,
+ I0_000, I1___Z,
0,0,0,0}},
/* YY0 */
- {2,{2,0,0,0},{ I0_000, I1___Z | I1_CST,
- I0_YYY, I1_XY_,
+ {2,{0,2,0,0},{ I0_YYY, I1_XY_,
+ I0_000, I1___Z,
0,0,0,0}},
/* ZY0 */
- {3,{2,0,0,0},{ I0_000, I1___Z | I1_CST,
+ {3,{0,0,2,0},{ I0_YYY, I1__Y_,
I0_ZZZ, I1_X__,
- I0_YYY, I1__Y_,
+ I0_000, I1___Z,
0,0}},
/* WY0 */
- {3,{2,0,0,0},{ I0_000, I1___Z | I1_CST,
+ {3,{0,0,2,0},{ I0_WZY, I1_X__,
I0_XYZ, I1__Y_,
- I0_WZY, I1_X__,
+ I0_000, I1___Z,
0,0}},
/* 0Y0 */
- {2,{2,0,0,0},{ I0_000, I1_X_Z | I1_CST,
- I0_XYZ, I1__Y_,
+ {2,{0,2,0,0},{ I0_XYZ, I1__Y_,
+ I0_000, I1_X_Z,
0,0,0,0}},
/* 1Y0 */
- {3,{2,0,2,0},{ I0_000, I1___Z | I1_CST,
- I0_XYZ, I1__Y_,
- I0_111, I1_X__ | I1_CST,
+ {3,{0,2,2,0},{ I0_XYZ, I1__Y_,
+ I0_000, I1___Z,
+ I0_111, I1_X__,
0,0}},
SEMPTY,SEMPTY,
/* XZ0 */
- {3,{2,0,0,0},{ I0_000, I1___Z | I1_CST,
+ {3,{0,0,2,0},{ I0_ZZZ, I1__Y_,
I0_XYZ, I1_X__,
- I0_ZZZ, I1__Y_,
+ I0_000, I1___Z,
0,0}},
/* YZ0 */
- {2,{2,0,0,0},{ I0_000, I1___Z | I1_CST,
- I0_YZX, I1_XY_,
+ {2,{0,2,0,0},{ I0_YZX, I1_XY_,
+ I0_000, I1___Z,
0,0,0,0}},
/* ZZ0 */
- {2,{2,0,0,0},{ I0_000, I1___Z | I1_CST,
- I0_ZZZ, I1_XY_,
+ {2,{0,2,0,0},{ I0_ZZZ, I1_XY_,
+ I0_000, I1___Z,
0,0,0,0}},
/* WZ0 */
- {2,{2,0,0,0},{ I0_000, I1___Z | I1_CST,
+ {3,{0,0,2,0},{ I0_XYZ, I1_XYZ,
I0_WZY, I1_XY_,
- 0,0,0,0}},
+ I0_000, I1___Z,
+ 0,0}},
/* 0Z0 */
- {2,{2,0,0,0},{ I0_000, I1_X_Z | I1_CST,
- I0_ZZZ, I1__Y_,
+ {2,{0,2,0,0},{ I0_ZZZ, I1__Y_,
+ I0_000, I1_X_Z,
0,0,0,0}},
/* 1Z0 */
- {3,{2,0,2,0},{ I0_000, I1___Z | I1_CST,
- I0_ZZZ, I1__Y_,
- I0_111, I1_X__ | I1_CST,
+ {3,{0,2,2,0},{ I0_ZZZ, I1__Y_,
+ I0_000, I1___Z,
+ I0_111, I1_X__,
0,0}},
SEMPTY,SEMPTY,
/* XW0 */
- {4,{0,1,2,0},{ I0_WZY, I1_XYZ,
- I0_XXX, I1__Y_,
- I0_000, I1___Z | I1_CST,
- I0_XYZ, I1_X__ } },
+ {3,{0,0,2,0},{ I0_WWW, I1__Y_,
+ I0_XYZ, I1_X__,
+ I0_000, I1___Z,
+ 0,0}},
/* YW0 */
- {4,{0,1,2,0},{ I0_WZY, I1_XYZ,
- I0_XXX, I1__Y_,
- I0_000, I1___Z | I1_CST,
- I0_YYY, I1_X__ } },
+ {3,{0,2,0,0},{ I0_WWW, I1__Y_,
+ I0_000, I1___Z,
+ I0_YYY, I1_X__,
+ 0,0}},
/* ZW0 */
- {4,{0,1,2,0},{ I0_WZY, I1_XYZ,
- I0_XXX, I1__Y_,
- I0_000, I1___Z | I1_CST,
- I0_ZZZ, I1_X__ } },
- /* WW0 */
- {3,{0,1,2,0},{ I0_WZY, I1_XYZ,
- I0_XXX, I1_XY_,
- I0_000, I1___Z | I1_CST,
+ {3,{0,2,0,0},{ I0_WWW, I1__Y_,
+ I0_000, I1___Z,
+ I0_ZZZ, I1_X__,
0,0}},
+ /* WW0 */
+ {2,{0,2,0,0},{ I0_WWW, I1_XY_,
+ I0_000, I1___Z,
+ 0,0,0,0}},
/* 0W0 */
- {3,{0,1,2,0},{ I0_WZY, I1_XYZ,
- I0_XXX, I1__Y_,
- I0_000, I1_X_Z | I1_CST,
- 0,0}},
+ {2,{0,2,0,0},{ I0_WWW, I1__Y_,
+ I0_000, I1_X_Z,
+ 0,0,0,0}},
/* 1W0 */
- {4,{0,1,2,2},{ I0_WZY, I1_XYZ,
- I0_XXX, I1__Y_,
- I0_000, I1___Z | I1_CST,
- I0_111, I1_X__ | I1_CST } },
+ {3,{0,2,2,0},{ I0_WWW, I1__Y_,
+ I0_000, I1___Z,
+ I0_111, I1_X__,
+ 0,0}},
SEMPTY,SEMPTY,
/* X00 */
- {2,{2,0,0,0},{ I0_000, I1__YZ | I1_CST,
- I0_XYZ, I1_X__,
+ {2,{0,2,0,0},{ I0_XYZ, I1_X__,
+ I0_000, I1__YZ,
0,0,0,0}},
/* Y00 */
- {2,{2,0,0,0},{ I0_000, I1__YZ | I1_CST,
- I0_YYY, I1_X__,
+ {2,{0,2,0,0},{ I0_YYY, I1_X__,
+ I0_000, I1__YZ,
0,0,0,0}},
/* Z00 */
- {2,{2,0,0,0},{ I0_000, I1__YZ | I1_CST,
- I0_ZZZ, I1_X__,
+ {2,{0,2,0,0},{ I0_ZZZ, I1_X__,
+ I0_000, I1__YZ,
0,0,0,0}},
/* W00 */
- {2,{2,0,0,0},{ I0_000, I1__YZ | I1_CST,
- I0_WZY, I1_X__,
+ {2,{2,0,0,0},{ I0_WZY, I1_X__,
+ I0_000, I1__YZ,
0,0,0,0}},
/* 000 */
- {1,{2,0,0,0},{ I0_000, I1_XYZ | I1_CST,
+ {1,{2,0,0,0},{ I0_000, I1_XYZ,
0, 0, 0, 0, 0, 0 } },
/* 100 */
- {2,{2,2,0,0},{ I0_000, I1__YZ | I1_CST,
- I0_111, I1_X__ | I1_CST,
+ {2,{2,2,0,0},{ I0_000, I1__YZ,
+ I0_111, I1_X__,
0,0,0,0}},
SEMPTY,SEMPTY,
/* X10 */
- {3,{2,0,2,0},{ I0_000, I1___Z | I1_CST,
- I0_XYZ, I1_X__,
- I0_111, I1__Y_ | I1_CST,
+ {3,{0,2,2,0},{ I0_XYZ, I1_XYZ,
+ I0_000, I1___Z,
+ I0_111, I1__Y_,
0,0}},
/* Y10 */
- {3,{2,0,2,0},{ I0_000, I1___Z | I1_CST,
- I0_YYY, I1_X__,
- I0_111, I1__Y_ | I1_CST,
+ {3,{0,2,2,0},{ I0_YYY, I1_XYZ,
+ I0_000, I1___Z,
+ I0_111, I1__Y_,
0,0}},
/* Z10 */
- {3,{2,0,2,0},{ I0_000, I1___Z | I1_CST,
- I0_ZZZ, I1_X__,
- I0_111, I1__Y_ | I1_CST,
+ {3,{0,2,2,0},{ I0_ZZZ, I1_XYZ,
+ I0_000, I1___Z,
+ I0_111, I1__Y_,
0,0}},
/* W10 */
- {3,{2,0,2,0},{ I0_000, I1___Z | I1_CST,
- I0_WZY, I1_X__,
- I0_111, I1__Y_ | I1_CST,
+ {3,{0,2,2,0},{ I0_WZY, I1_XYZ,
+ I0_000, I1___Z,
+ I0_111, I1__Y_,
0,0}},
/* 010 */
- {2,{2,2,0,0},{ I0_000, I1_X_Z | I1_CST,
- I0_111, I1__Y_ | I1_CST,
+ {2,{2,2,0,0},{ I0_000, I1_X_Z,
+ I0_111, I1__Y_,
0, 0, 0, 0 } },
/* 110 */
- {2,{2,2,0,0},{ I0_000, I1___Z | I1_CST,
- I0_111, I1_XY_ | I1_CST,
+ {2,{2,2,0,0},{ I0_000, I1___Z,
+ I0_111, I1_XY_,
0,0,0,0}},
SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
@@ -936,170 +920,168 @@ struct r300_fragment_program_swizzle r300_swizzle [512] = {
/* XX1 */
- {2,{2,0,0,0},{ I0_111, I1___Z | I1_CST,
- I0_XXX, I1_XY_,
+ {2,{0,2,0,0},{ I0_XXX, I1_XY_,
+ I0_111, I1___Z,
0,0,0,0}},
/* YX1 */
- {3,{2,0,0,0},{ I0_111, I1___Z | I1_CST,
+ {3,{0,0,2,0},{ I0_YYY, I1_X__,
I0_XXX, I1__Y_,
- I0_YYY, I1_X__,
+ I0_111, I1___Z,
0,0}},
/* ZX1 */
- {2,{2,0,0,0},{ I0_111, I1___Z | I1_CST,
- I0_ZXY, I1_XY_,
+ {2,{0,2,0,0},{ I0_ZXY, I1_XY_,
+ I0_111, I1___Z,
0,0,0,0}},
/* WX1 */
- {3,{2,0,0,0},{ I0_111, I1___Z | I1_CST,
+ {3,{0,0,2,0},{ I0_WZY, I1_XYZ,
I0_XXX, I1__Y_,
- I0_WZY, I1_X__,
+ I0_111, I1___Z,
0,0}},
/* 0X1 */
- {3,{2,0,2,0},{ I0_111, I1___Z | I1_CST,
- I0_XXX, I1__Y_,
- I0_000, I1_X__ | I1_CST,
+ {3,{0,2,2,0},{ I0_XXX, I1__Y_,
+ I0_111, I1___Z,
+ I0_000, I1_X__,
0,0}},
/* 1X1 */
- {2,{2,0,0,0},{ I0_111, I1_X_Z | I1_CST,
- I0_XXX, I1__Y_,
+ {2,{0,2,0,0},{ I0_XXX, I1__Y_,
+ I0_111, I1_X_Z,
0,0,0,0}},
SEMPTY,SEMPTY,
/* XY1 */
- {2,{2,0,0,0},{ I0_111, I1___Z | I1_CST,
- I0_XYZ, I1_XY_,
+ {2,{0,2,0,0},{ I0_XYZ, I1_XY_,
+ I0_111, I1___Z,
0,0,0,0}},
/* YY1 */
- {2,{2,0,0,0},{ I0_111, I1___Z | I1_CST,
- I0_YYY, I1_XY_,
+ {2,{0,2,0,0},{ I0_YYY, I1_XY_,
+ I0_111, I1___Z,
0,0,0,0}},
/* ZY1 */
- {3,{2,0,0,0},{ I0_111, I1___Z | I1_CST,
+ {3,{0,0,2,0},{ I0_YYY, I1__Y_,
I0_ZZZ, I1_X__,
- I0_YYY, I1__Y_,
+ I0_111, I1___Z,
0,0}},
/* WY1 */
- {3,{2,0,0,0},{ I0_111, I1___Z | I1_CST,
+ {3,{0,0,2,0},{ I0_WZY, I1_XYZ,
I0_XYZ, I1__Y_,
- I0_WZY, I1_X__,
+ I0_111, I1___Z,
0,0}},
/* 0Y1 */
- {3,{2,0,2,0},{ I0_111, I1___Z | I1_CST,
- I0_XYZ, I1__Y_,
- I0_000, I1_X__ | I1_CST,
+ {3,{0,2,2,0},{ I0_XYZ, I1__Y_,
+ I0_111, I1___Z,
+ I0_000, I1_X__,
0,0}},
/* 1Y1 */
- {2,{2,0,0,0},{ I0_111, I1_X_Z | I1_CST,
- I0_XYZ, I1__Y_,
+ {2,{0,2,0,0},{ I0_XYZ, I1__Y_,
+ I0_111, I1_X_Z,
0,0,0,0}},
SEMPTY,SEMPTY,
/* XZ1 */
- {3,{2,0,0,0},{ I0_111, I1___Z | I1_CST,
+ {3,{0,0,2,0},{ I0_ZZZ, I1__Y_,
I0_XYZ, I1_X__,
- I0_ZZZ, I1__Y_,
+ I0_111, I1___Z,
0,0}},
/* YZ1 */
- {2,{2,0,0,0},{ I0_111, I1___Z | I1_CST,
- I0_YZX, I1_XY_,
+ {2,{0,2,0,0},{ I0_YZX, I1_XY_,
+ I0_111, I1___Z,
0,0,0,0}},
/* ZZ1 */
- {2,{2,0,0,0},{ I0_111, I1___Z | I1_CST,
- I0_ZZZ, I1_XY_,
+ {2,{0,2,0,0},{ I0_ZZZ, I1_XYZ,
+ I0_111, I1___Z,
0,0,0,0}},
/* WZ1 */
- {2,{2,0,0,0},{ I0_111, I1___Z | I1_CST,
- I0_WZY, I1_XY_,
+ {2,{0,2,0,0},{ I0_WZY, I1_XY_,
+ I0_111, I1___Z,
0,0,0,0}},
/* 0Z1 */
- {3,{2,0,2,0},{ I0_111, I1___Z | I1_CST,
- I0_ZZZ, I1__Y_,
- I0_000, I1_X__ | I1_CST,
+ {3,{0,2,2,0},{ I0_ZZZ, I1_XYZ,
+ I0_111, I1___Z,
+ I0_000, I1_X__,
0,0}},
/* 1Z1 */
- {2,{2,0,0,0},{ I0_111, I1_X_Z | I1_CST,
- I0_ZZZ, I1__Y_,
+ {2,{0,2,0,0},{ I0_ZZZ, I1__Y_,
+ I0_111, I1_X_Z,
0,0,0,0}},
SEMPTY,SEMPTY,
/* XW1 */
- {4,{0,1,2,0},{ I0_WZY, I1_XYZ,
- I0_XXX, I1__Y_,
- I0_000, I1___Z | I1_CST,
- I0_XYZ, I1_X__ } },
+ {3,{0,0,2,0},{ I0_WWW, I1__Y_,
+ I0_XYZ, I1_X__,
+ I0_111, I1___Z,
+ 0,0}},
/* YW1 */
- {4,{0,1,2,0},{ I0_WZY, I1_XYZ,
- I0_XXX, I1__Y_,
- I0_111, I1___Z | I1_CST,
- I0_YYY, I1_X__ } },
+ {3,{0,2,0,0},{ I0_WWW, I1__Y_,
+ I0_111, I1___Z,
+ I0_YYY, I1_X__,
+ 0,0}},
/* ZW1 */
- {4,{0,1,2,0},{ I0_WZY, I1_XYZ,
- I0_XXX, I1__Y_,
- I0_111, I1___Z | I1_CST,
- I0_ZZZ, I1_X__ } },
- /* WW1 */
- {3,{0,1,2,0},{ I0_WZY, I1_XYZ,
- I0_XXX, I1_XY_,
- I0_111, I1___Z | I1_CST,
+ {3,{0,2,0,0},{ I0_WWW, I1__Y_,
+ I0_111, I1___Z,
+ I0_ZZZ, I1_X__,
0,0}},
+ /* WW1 */
+ {2,{0,2,0,0},{ I0_WWW, I1_XY_,
+ I0_111, I1___Z,
+ 0,0,0,0}},
/* 0W1 */
- {4,{0,1,2,2},{ I0_WZY, I1_XYZ,
- I0_XXX, I1__Y_,
- I0_111, I1___Z | I1_CST,
- I0_000, I1_X__ | I1_CST } },
- /* 1W1 */
- {3,{0,1,2,0},{ I0_WZY, I1_XYZ,
- I0_XXX, I1__Y_,
- I0_111, I1_X_Z | I1_CST,
+ {3,{0,2,2,0},{ I0_WWW, I1__Y_,
+ I0_111, I1___Z,
+ I0_000, I1_X__,
0,0}},
+ /* 1W1 */
+ {2,{0,2,0,0},{ I0_WWW, I1__Y_,
+ I0_111, I1_X_Z,
+ 0,0,0,0}},
SEMPTY,SEMPTY,
/* X01 */
- {3,{2,0,2,0},{ I0_111, I1___Z | I1_CST,
- I0_XYZ, I1_X__,
- I0_000, I1__Y_ | I1_CST,
+ {3,{0,2,2,0},{ I0_XYZ, I1_X__,
+ I0_111, I1___Z,
+ I0_000, I1__Y_,
0,0}},
/* Y01 */
- {3,{2,0,2,0},{ I0_111, I1___Z | I1_CST,
- I0_YYY, I1_X__,
- I0_000, I1__Y_ | I1_CST,
+ {3,{0,2,2,0},{ I0_YYY, I1_X__,
+ I0_111, I1___Z,
+ I0_000, I1__Y_,
0,0}},
/* Z01 */
- {3,{2,0,2,0},{ I0_111, I1___Z | I1_CST,
- I0_ZZZ, I1_X__,
- I0_000, I1__Y_ | I1_CST,
+ {3,{0,2,2,0},{ I0_ZZZ, I1_X__,
+ I0_111, I1___Z,
+ I0_000, I1__Y_,
0,0}},
/* W01 */
- {3,{2,0,2,0},{ I0_111, I1___Z | I1_CST,
- I0_WZY, I1_X__,
- I0_000, I1__Y_ | I1_CST,
+ {3,{0,2,2,0},{ I0_WZY, I1_XYZ,
+ I0_111, I1___Z,
+ I0_000, I1__Y_,
0,0}},
/* 001 */
- {2,{2,2,0,0},{ I0_111, I1___Z | I1_CST,
- I0_000, I1_XY_ | I1_CST,
+ {2,{2,2,0,0},{ I0_111, I1___Z,
+ I0_000, I1_XY_,
0,0,0,0}},
/* 101 */
- {2,{2,2,0,0},{ I0_111, I1_X_Z | I1_CST,
- I0_000, I1__Y_ | I1_CST,
+ {2,{2,2,0,0},{ I0_111, I1_X_Z,
+ I0_000, I1__Y_,
0, 0, 0, 0 } },
SEMPTY,SEMPTY,
/* X11 */
- {2,{2,0,0,0},{ I0_111, I1__YZ | I1_CST,
- I0_XYZ, I1_X__,
+ {2,{0,2,0,0},{ I0_XYZ, I1_X__,
+ I0_111, I1__YZ,
0,0,0,0}},
/* Y11 */
- {2,{2,0,0,0},{ I0_111, I1__YZ | I1_CST,
- I0_YYY, I1_X__,
+ {2,{0,2,0,0},{ I0_YYY, I1_X__,
+ I0_111, I1__YZ,
0,0,0,0}},
/* Z11 */
- {2,{2,0,0,0},{ I0_111, I1__YZ | I1_CST,
- I0_ZZZ, I1_X__,
+ {2,{0,2,0,0},{ I0_ZZZ, I1_X__,
+ I0_111, I1__YZ,
0,0,0,0}},
/* W11 */
- {2,{2,0,0,0},{ I0_111, I1__YZ | I1_CST,
- I0_WZY, I1_X__,
+ {2,{0,2,0,0},{ I0_WZY, I1_XYZ,
+ I0_111, I1__YZ,
0,0,0,0}},
/* 011 */
- {2,{2,2,0,0},{ I0_111, I1__YZ | I1_CST,
- I0_000, I1_X__ | I1_CST,
+ {2,{2,2,0,0},{ I0_111, I1__YZ,
+ I0_000, I1_X__,
0,0,0,0}},
/* 111 */
- {1,{2,0,0,0},{ I0_111, I1_XYZ | I1_CST,
+ {1,{2,0,0,0},{ I0_111, I1_XYZ,
0, 0, 0, 0, 0, 0 } },
SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
@@ -1128,6 +1110,7 @@ struct r300_fragment_program_swizzle r300_swizzle [512] = {
#define S0XXX R300_FPI0_ARGC_SRC0C_XXX
#define S0YYY R300_FPI0_ARGC_SRC0C_YYY
#define S0ZZZ R300_FPI0_ARGC_SRC0C_ZZZ
+#define S0WWW R300_FPI0_ARGC_SRC0A
#define S0XYZ R300_FPI0_ARGC_SRC0C_XYZ
#define S0ZXY R300_FPI0_ARGC_SRC0C_ZXY
#define S0YZX R300_FPI0_ARGC_SRC0C_YZX
@@ -1137,6 +1120,7 @@ struct r300_fragment_program_swizzle r300_swizzle [512] = {
#define S1XXX R300_FPI0_ARGC_SRC1C_XXX
#define S1YYY R300_FPI0_ARGC_SRC1C_YYY
#define S1ZZZ R300_FPI0_ARGC_SRC1C_ZZZ
+#define S1WWW R300_FPI0_ARGC_SRC1A
#define S1XYZ R300_FPI0_ARGC_SRC1C_XYZ
#define S1ZXY R300_FPI0_ARGC_SRC1C_ZXY
#define S1YZX R300_FPI0_ARGC_SRC1C_YZX
@@ -1145,6 +1129,7 @@ struct r300_fragment_program_swizzle r300_swizzle [512] = {
#define S2XXX R300_FPI0_ARGC_SRC2C_XXX
#define S2YYY R300_FPI0_ARGC_SRC2C_YYY
#define S2ZZZ R300_FPI0_ARGC_SRC2C_ZZZ
+#define S2WWW R300_FPI0_ARGC_SRC2A
#define S2XYZ R300_FPI0_ARGC_SRC2C_XYZ
#define S2ZXY R300_FPI0_ARGC_SRC2C_ZXY
#define S2YZX R300_FPI0_ARGC_SRC2C_YZX
@@ -1175,7 +1160,7 @@ const GLuint r300_swz_srcc_mask[3][512] = {
ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
- ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
+ ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,S0WWW,
ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
@@ -1229,7 +1214,7 @@ const GLuint r300_swz_srcc_mask[3][512] = {
ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
- ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
+ ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,S1WWW,
ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
@@ -1283,7 +1268,7 @@ const GLuint r300_swz_srcc_mask[3][512] = {
ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
- ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
+ ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,S2WWW,
ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,