mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 09:28:07 +02:00
r300: Added the vertex program swizzle (aka selection) defines.
This commit is contained in:
parent
b2c02a4a7c
commit
8c4d811295
2 changed files with 21 additions and 24 deletions
|
|
@ -2495,6 +2495,15 @@ enum {
|
|||
PVS_DST_REG_INPUT = 5, /* Output Memory & Replicate X to all channels */
|
||||
};
|
||||
|
||||
enum {
|
||||
PVS_SRC_SELECT_X = 0, /* Select X Component */
|
||||
PVS_SRC_SELECT_Y = 1, /* Select Y Component */
|
||||
PVS_SRC_SELECT_Z = 2, /* Select Z Component */
|
||||
PVS_SRC_SELECT_W = 3, /* Select W Component */
|
||||
PVS_SRC_SELECT_FORCE_0 = 4, /* Force Component to 0.0 */
|
||||
PVS_SRC_SELECT_FORCE_1 = 5, /* Force Component to 1.0 */
|
||||
};
|
||||
|
||||
/*\}*/
|
||||
|
||||
/*\{*/
|
||||
|
|
@ -2515,18 +2524,6 @@ enum {
|
|||
/* GUESS based on fglrx native limits */
|
||||
#define R300_VPI_IN_REG_INDEX_MASK (255 << 5)
|
||||
|
||||
/* The R300 can select components from the input register arbitrarily.
|
||||
* Use the following constants, shifted by the component shift you
|
||||
* want to select
|
||||
*/
|
||||
#define R300_VPI_IN_SELECT_X 0
|
||||
#define R300_VPI_IN_SELECT_Y 1
|
||||
#define R300_VPI_IN_SELECT_Z 2
|
||||
#define R300_VPI_IN_SELECT_W 3
|
||||
#define R300_VPI_IN_SELECT_ZERO 4
|
||||
#define R300_VPI_IN_SELECT_ONE 5
|
||||
#define R300_VPI_IN_SELECT_MASK 7
|
||||
|
||||
#define R300_VPI_IN_X_SHIFT 13
|
||||
#define R300_VPI_IN_Y_SHIFT 16
|
||||
#define R300_VPI_IN_Z_SHIFT 19
|
||||
|
|
|
|||
|
|
@ -111,20 +111,20 @@
|
|||
#define VP_IN(class,idx) \
|
||||
(((idx) << R300_VPI_IN_REG_INDEX_SHIFT) | \
|
||||
(PVS_SRC_REG_##class << 0) | \
|
||||
(R300_VPI_IN_SELECT_X << R300_VPI_IN_X_SHIFT) | \
|
||||
(R300_VPI_IN_SELECT_Y << R300_VPI_IN_Y_SHIFT) | \
|
||||
(R300_VPI_IN_SELECT_Z << R300_VPI_IN_Z_SHIFT) | \
|
||||
(R300_VPI_IN_SELECT_W << R300_VPI_IN_W_SHIFT))
|
||||
(PVS_SRC_SELECT_X << R300_VPI_IN_X_SHIFT) | \
|
||||
(PVS_SRC_SELECT_Y << R300_VPI_IN_Y_SHIFT) | \
|
||||
(PVS_SRC_SELECT_Z << R300_VPI_IN_Z_SHIFT) | \
|
||||
(PVS_SRC_SELECT_W << R300_VPI_IN_W_SHIFT))
|
||||
#define VP_ZERO() \
|
||||
((R300_VPI_IN_SELECT_ZERO << R300_VPI_IN_X_SHIFT) | \
|
||||
(R300_VPI_IN_SELECT_ZERO << R300_VPI_IN_Y_SHIFT) | \
|
||||
(R300_VPI_IN_SELECT_ZERO << R300_VPI_IN_Z_SHIFT) | \
|
||||
(R300_VPI_IN_SELECT_ZERO << R300_VPI_IN_W_SHIFT))
|
||||
((PVS_SRC_SELECT_FORCE_0 << R300_VPI_IN_X_SHIFT) | \
|
||||
(PVS_SRC_SELECT_FORCE_0 << R300_VPI_IN_Y_SHIFT) | \
|
||||
(PVS_SRC_SELECT_FORCE_0 << R300_VPI_IN_Z_SHIFT) | \
|
||||
(PVS_SRC_SELECT_FORCE_0 << R300_VPI_IN_W_SHIFT))
|
||||
#define VP_ONE() \
|
||||
((R300_VPI_IN_SELECT_ONE << R300_VPI_IN_X_SHIFT) | \
|
||||
(R300_VPI_IN_SELECT_ONE << R300_VPI_IN_Y_SHIFT) | \
|
||||
(R300_VPI_IN_SELECT_ONE << R300_VPI_IN_Z_SHIFT) | \
|
||||
(R300_VPI_IN_SELECT_ONE << R300_VPI_IN_W_SHIFT))
|
||||
((PVS_SRC_SELECT_FORCE_1 << R300_VPI_IN_X_SHIFT) | \
|
||||
(PVS_SRC_SELECT_FORCE_1 << R300_VPI_IN_Y_SHIFT) | \
|
||||
(PVS_SRC_SELECT_FORCE_1 << R300_VPI_IN_Z_SHIFT) | \
|
||||
(PVS_SRC_SELECT_FORCE_1 << R300_VPI_IN_W_SHIFT))
|
||||
|
||||
#define VP_NEG(in,comp) ((in) ^ (R300_VPI_IN_NEG_##comp))
|
||||
#define VP_NEGALL(in,comp) VP_NEG(VP_NEG(VP_NEG(VP_NEG((in),X),Y),Z),W)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue