* \return slot in which the attribute was added
*/
static INLINE uint
-draw_emit_vertex_attr(struct vertex_info *vinfo, uint vfAttr,
+draw_emit_vertex_attr(struct vertex_info *vinfo,
attrib_format format, interp_mode interp)
{
const uint n = vinfo->num_attribs;
memset(vinfo, 0, sizeof(*vinfo));
/* pos */
- draw_emit_vertex_attr(vinfo, TGSI_ATTRIB_POS, FORMAT_3F, INTERP_LINEAR);
+ draw_emit_vertex_attr(vinfo, FORMAT_3F, INTERP_LINEAR);
/* Note: we'll set the S4_VFMT_XYZ[W] bits below */
for (i = 0; i < fs->num_inputs; i++) {
case TGSI_SEMANTIC_POSITION:
break;
case TGSI_SEMANTIC_COLOR0:
- front0 = draw_emit_vertex_attr(vinfo, TGSI_ATTRIB_COLOR0,
- FORMAT_4UB, colorInterp);
+ front0 = draw_emit_vertex_attr(vinfo, FORMAT_4UB, colorInterp);
vinfo->hwfmt[0] |= S4_VFMT_COLOR;
break;
case TGSI_SEMANTIC_COLOR1:
assert(0); /* untested */
- front1 = draw_emit_vertex_attr(vinfo, TGSI_ATTRIB_COLOR1,
- FORMAT_4UB, colorInterp);
+ front1 = draw_emit_vertex_attr(vinfo, FORMAT_4UB, colorInterp);
vinfo->hwfmt[0] |= S4_VFMT_SPEC_FOG;
break;
case TGSI_SEMANTIC_TEX0:
const uint unit = fs->input_semantics[i] - TGSI_SEMANTIC_TEX0;
uint hwtc;
texCoords[unit] = TRUE;
- draw_emit_vertex_attr(vinfo, TGSI_ATTRIB_TEX0 + i,
- FORMAT_4F, INTERP_PERSPECTIVE);
+ draw_emit_vertex_attr(vinfo, FORMAT_4F, INTERP_PERSPECTIVE);
hwtc = TEXCOORDFMT_4D;
needW = TRUE;
vinfo->hwfmt[1] |= hwtc << (unit * 4);
#if 0
/* color0 */
if (inputsRead & (1 << TGSI_ATTRIB_COLOR0)) {
- front0 = draw_emit_vertex_attr(vinfo, TGSI_ATTRIB_COLOR0,
- FORMAT_4UB, colorInterp);
+ front0 = draw_emit_vertex_attr(vinfo, FORMAT_4UB, colorInterp);
vinfo->hwfmt[0] |= S4_VFMT_COLOR;
}
/* color 1 */
if (inputsRead & (1 << TGSI_ATTRIB_COLOR1)) {
assert(0); /* untested */
- front1 = draw_emit_vertex_attr(vinfo, TGSI_ATTRIB_COLOR1,
- FORMAT_4UB, colorInterp);
+ front1 = draw_emit_vertex_attr(vinfo, FORMAT_4UB, colorInterp);
vinfo->hwfmt[0] |= S4_VFMT_SPEC_FOG;
}
for (i = TGSI_ATTRIB_TEX0; i <= TGSI_ATTRIB_TEX7; i++) {
uint hwtc;
if (inputsRead & (1 << i)) {
- draw_emit_vertex_attr(vinfo, i, FORMAT_4F, INTERP_PERSPECTIVE);
+ draw_emit_vertex_attr(vinfo, FORMAT_4F, INTERP_PERSPECTIVE);
hwtc = TEXCOORDFMT_4D;
needW = TRUE;
}
*/
if (i915->rasterizer->light_twoside) {
if (front0) {
- back0 = draw_emit_vertex_attr(vinfo, TGSI_ATTRIB_BFC0,
- FORMAT_OMIT, colorInterp);
+ back0 = draw_emit_vertex_attr(vinfo, FORMAT_OMIT, colorInterp);
}
if (back0) {
- back1 = draw_emit_vertex_attr(vinfo, TGSI_ATTRIB_BFC1,
- FORMAT_OMIT, colorInterp);
+ back1 = draw_emit_vertex_attr(vinfo, FORMAT_OMIT, colorInterp);
}
}
float oneoverarea;
- struct tgsi_interp_coef coef[TGSI_ATTRIB_MAX];
+ struct tgsi_interp_coef coef[PIPE_MAX_SHADER_INPUTS];
struct quad_header quad;
struct {
unsigned slot,
unsigned i )
{
- assert(slot < TGSI_ATTRIB_MAX);
+ assert(slot < PIPE_MAX_SHADER_INPUTS);
assert(i <= 3);
setup->coef[slot].dadx[i] = 0;
float a = setup->ebot.dy * majda - botda * setup->emaj.dy;
float b = setup->emaj.dx * botda - majda * setup->ebot.dx;
- assert(slot < TGSI_ATTRIB_MAX);
+ assert(slot < PIPE_MAX_SHADER_INPUTS);
assert(i <= 3);
setup->coef[slot].dadx[i] = a * setup->oneoverarea;
);
*/
- assert(slot < TGSI_ATTRIB_MAX);
+ assert(slot < PIPE_MAX_SHADER_INPUTS);
assert(i <= 3);
setup->coef[slot].dadx[i] = a * setup->oneoverarea;
= sizeAttr ? (0.5f * v0->data[sizeAttr][0])
: (0.5f * setup->softpipe->rasterizer->point_size);
const boolean round = setup->softpipe->rasterizer->point_smooth;
- const float x = v0->data[TGSI_ATTRIB_POS][0];
- const float y = v0->data[TGSI_ATTRIB_POS][1];
+ const float x = v0->data[0][0]; /* Note: data[0] is always position */
+ const float y = v0->data[0][1];
unsigned slot, j;
assert(sizeAttr >= 0);
/* always emit vertex pos */
/* TODO - Figure out if we need to do perspective divide, etc. */
- draw_emit_vertex_attr(vinfo, TGSI_ATTRIB_POS, FORMAT_4F, INTERP_LINEAR);
+ draw_emit_vertex_attr(vinfo, FORMAT_4F, INTERP_LINEAR);
for (i = 0; i < fs->num_inputs; i++) {
switch (fs->input_semantics[i]) {
softpipe->need_w = TRUE;
break;
case TGSI_SEMANTIC_COLOR0:
- front0 = draw_emit_vertex_attr(vinfo, TGSI_ATTRIB_COLOR0,
+ front0 = draw_emit_vertex_attr(vinfo,
FORMAT_4F, colorInterp);
break;
case TGSI_SEMANTIC_COLOR1:
- front1 = draw_emit_vertex_attr(vinfo, TGSI_ATTRIB_COLOR1,
+ front1 = draw_emit_vertex_attr(vinfo,
FORMAT_4F, colorInterp);
break;
case TGSI_SEMANTIC_FOG:
- draw_emit_vertex_attr(vinfo, TGSI_ATTRIB_FOG,
+ draw_emit_vertex_attr(vinfo,
FORMAT_1F, INTERP_PERSPECTIVE);
break;
#if 0
/* XXX only emit if drawing points or front/back polygon mode
* is point mode
*/
- draw_emit_vertex_attr(vinfo, TGSI_ATTRIB_POINTSIZE,
+ draw_emit_vertex_attr(vinfo,
FORMAT_4F, INTERP_CONSTANT);
break;
#endif
softpipe->psize_slot = i;
/*case TGSI_SEMANTIC_TEXCOORD:*/
case TGSI_SEMANTIC_TEX0:
- draw_emit_vertex_attr(vinfo, TGSI_ATTRIB_TEX0,
+ draw_emit_vertex_attr(vinfo,
FORMAT_4F, INTERP_PERSPECTIVE);
softpipe->need_w = TRUE;
break;
case TGSI_SEMANTIC_OTHER:
- draw_emit_vertex_attr(vinfo, i, FORMAT_4F, INTERP_PERSPECTIVE);
+ draw_emit_vertex_attr(vinfo, FORMAT_4F, INTERP_PERSPECTIVE);
softpipe->need_w = TRUE;
break;
*/
if (softpipe->rasterizer->light_twoside) {
if (front0) {
- back0 = draw_emit_vertex_attr(vinfo, TGSI_ATTRIB_BFC0,
- FORMAT_OMIT, colorInterp);
+ back0 = draw_emit_vertex_attr(vinfo, FORMAT_OMIT, colorInterp);
}
if (back0) {
- back1 = draw_emit_vertex_attr(vinfo, TGSI_ATTRIB_BFC1,
- FORMAT_OMIT, colorInterp);
+ back1 = draw_emit_vertex_attr(vinfo, FORMAT_OMIT, colorInterp);
}
}
/**
* The specific values here are not important (could remove them).
*/
+#if 0
enum {
TGSI_ATTRIB_POS = 0,
TGSI_ATTRIB_WEIGHT = 1,
#define TGSI_MAX_TEXTURE 8
#define TGSI_MAX_VARYING 8
+#endif
}
+#if 0
/**
* Convert a mesa vertex attribute to a TGSI attribute
*/
return 0;
}
}
-
+#endif
/**