diff options
Diffstat (limited to 'src/mesa/drivers')
-rw-r--r-- | src/mesa/drivers/dri/r300/r300_fragprog.h | 6 | ||||
-rw-r--r-- | src/mesa/drivers/dri/r300/r300_fragprog_swz.c | 837 |
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 2bcc23d514..d841af98a8 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 00977ce684..b29331d7bd 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, |