r300: Cleaned up the vertex program macros.

This commit is contained in:
Oliver McFadden 2008-02-27 04:23:11 +00:00
parent e3a0a8dc7d
commit fb0947ed33

View 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
@ -11,39 +35,6 @@
#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