r300: Cleaned up the vertex program macros.
authorOliver McFadden <z3ro.geek@gmail.com>
Wed, 27 Feb 2008 04:23:11 +0000 (04:23 +0000)
committerOliver McFadden <z3ro.geek@gmail.com>
Sat, 1 Mar 2008 06:33:06 +0000 (06:33 +0000)
src/mesa/drivers/dri/r300/r300_vertprog.h

index 462f655c00fd15bb71176876b134a9f84fb4b39c..b8dc5a5ad624e03b76edc3e959ddb49b8384dc0f 100644 (file)
@@ -3,6 +3,30 @@
 
 #include "r300_reg.h"
 
+#define PVS_VECTOR_OPCODE(op, out_reg_index, out_reg_fields, class)    \
+       ((op)                                                           \
+        | ((out_reg_index) << R300_VPI_OUT_REG_INDEX_SHIFT)            \
+        | ((out_reg_fields) << 20)                                     \
+        | ((class) << 8))
+
+#define PVS_MATH_OPCODE(op, out_reg_index, out_reg_fields, class)      \
+       ((op)                                                           \
+        | (1 << 6)     /* FIXME: PVS_DST_MATH_INST */                  \
+        | ((out_reg_index) << R300_VPI_OUT_REG_INDEX_SHIFT)            \
+        | ((out_reg_fields) << 20)                                     \
+        | ((class) << 8))
+
+#define PVS_SOURCE_OPCODE(in_reg_index, comp_x, comp_y, comp_z, comp_w, class, negate)         \
+       (((in_reg_index) << R300_VPI_IN_REG_INDEX_SHIFT)                                        \
+        | ((comp_x) << R300_VPI_IN_X_SHIFT)                                                    \
+        | ((comp_y) << R300_VPI_IN_Y_SHIFT)                                                    \
+        | ((comp_z) << R300_VPI_IN_Z_SHIFT)                                                    \
+        | ((comp_w) << R300_VPI_IN_W_SHIFT)                                                    \
+        | ((negate) << 25)                                                                     \
+        | ((class)))
+
+#if 1
+
 #define VSF_FLAG_X     1
 #define VSF_FLAG_Y     2
 #define VSF_FLAG_Z     4
 #define VSF_FLAG_ALL  0xf
 #define VSF_FLAG_NONE  0
 
-/* first DWORD of an instruction */
-
-#define PVS_VECTOR_OPCODE(op, out_reg_index, out_reg_fields, class) \
-   ((op)  \
-       | ((out_reg_index) << R300_VPI_OUT_REG_INDEX_SHIFT)     \
-        | ((out_reg_fields) << 20)     \
-       | ( (class) << 8 ) )
-
-#define PVS_DST_MATH_INST      (1 << 6)
-
-#define PVS_MATH_OPCODE(op, out_reg_index, out_reg_fields, class) \
-   ((op)  \
-    | PVS_DST_MATH_INST \
-       | ((out_reg_index) << R300_VPI_OUT_REG_INDEX_SHIFT)     \
-        | ((out_reg_fields) << 20)     \
-       | ( (class) << 8 ) )
-
-/* according to Nikolai, the subsequent 3 DWORDs are sources, use same define for each */
-
-#define PVS_SOURCE_OPCODE(in_reg_index, comp_x, comp_y, comp_z, comp_w, class, negate) \
-       ( ((in_reg_index)<<R300_VPI_IN_REG_INDEX_SHIFT) \
-          | ((comp_x)<<R300_VPI_IN_X_SHIFT) \
-          | ((comp_y)<<R300_VPI_IN_Y_SHIFT) \
-          | ((comp_z)<<R300_VPI_IN_Z_SHIFT) \
-          | ((comp_w)<<R300_VPI_IN_W_SHIFT) \
-          | ((negate)<<25) | ((class)))
-
-#if 1
-
-/**
- * Vertex program helper macros
- */
-
 #define VP_OUTMASK_X   R300_VPI_OUT_WRITE_X
 #define VP_OUTMASK_Y   R300_VPI_OUT_WRITE_Y
 #define VP_OUTMASK_Z   R300_VPI_OUT_WRITE_Z