static INLINE void
-emit_vertex_attr(struct vertex_info *vinfo, /*uint vfAttr,*/
+emit_vertex_attr(struct vertex_info *vinfo,
attrib_format format, interp_mode interp)
{
const uint n = vinfo->num_attribs;
/*
* First three attribs are always the same: header, clip pos, winpos
*/
- emit_vertex_attr(vinfo, /*TGSI_ATTRIB_VERTEX_HEADER,*/ FORMAT_1F, INTERP_NONE);
- emit_vertex_attr(vinfo, /*TGSI_ATTRIB_CLIP_POS,*/ FORMAT_4F, INTERP_LINEAR);
- emit_vertex_attr(vinfo, /*TGSI_ATTRIB_POS,*/ FORMAT_4F_VIEWPORT, INTERP_LINEAR);
+ emit_vertex_attr(vinfo, FORMAT_1F, INTERP_NONE);
+ emit_vertex_attr(vinfo, FORMAT_4F, INTERP_LINEAR);
+ emit_vertex_attr(vinfo, FORMAT_4F_VIEWPORT, INTERP_LINEAR);
/*
* Remaining attribs (color, texcoords, etc)
*/
for (i = 1; i < nr_attrs; i++) {
- emit_vertex_attr(vinfo, /*slot_to_vf_attr[i],*/ FORMAT_4F, interps[i]);
+ emit_vertex_attr(vinfo, FORMAT_4F, interps[i]);
}
draw_compute_vertex_size(vinfo);
#define DRAW_VERTEX_H
-
-#if 0
-#define MAX_VERT_ATTRIBS 12 /* OK? */
-#endif
-
struct draw_context;
-
/**
* Vertex attribute format
*/
{
const uint n = vinfo->num_attribs;
assert(n < PIPE_MAX_SHADER_OUTPUTS);
- /*
- vinfo->attr_mask |= (1 << vfAttr);
- */
vinfo->format[n] = format;
vinfo->interp_mode[n] = interp;
vinfo->num_attribs++;
const float *trans = draw->viewport.translate;
assert(count <= 4);
-#if 0
- assert(draw->vertex_shader.outputs_written & (1 << TGSI_ATTRIB_POS));
-#else
assert(draw->vertex_shader.output_semantics[0] == TGSI_SEMANTIC_POSITION);
-#endif
#ifdef DEBUG
memset( &machine, 0, sizeof( machine ) );
}
}
-#if 0
- /* color0 */
- if (inputsRead & (1 << TGSI_ATTRIB_COLOR0)) {
- 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, FORMAT_4UB, colorInterp);
- vinfo->hwfmt[0] |= S4_VFMT_SPEC_FOG;
- }
-
- /* XXX fog? */
-
- /* texcoords */
- {
- uint i;
- for (i = TGSI_ATTRIB_TEX0; i <= TGSI_ATTRIB_TEX7; i++) {
- uint hwtc;
- if (inputsRead & (1 << i)) {
- draw_emit_vertex_attr(vinfo, FORMAT_4F, INTERP_PERSPECTIVE);
- hwtc = TEXCOORDFMT_4D;
- needW = TRUE;
- }
- else {
- hwtc = TEXCOORDFMT_NOT_PRESENT;
- }
- vinfo->hwfmt[1] |= hwtc << ((i - TGSI_ATTRIB_TEX0) * 4);
- }
- }
-#endif
-
/* go back and fill in the vertex position info now that we have needW */
if (needW) {
vinfo->hwfmt[0] |= S4_VFMT_XYZW;
struct tgsi_processor *processor;\r
struct tgsi_full_declaration fulldecl;\r
struct tgsi_full_instruction fullinst;\r
- /*\r
- struct tgsi_full_dst_register *fulldst;\r
- struct tgsi_full_src_register *fullsrc;\r
- GLuint inputs_read;\r
- GLboolean reads_wpos;\r
- */\r
GLuint preamble_size = 0;\r
\r
*(struct tgsi_version *) &tokens[0] = tgsi_build_version();\r
\r
ti = 3;\r
\r
+ /* XXX todo: input/output declarations\r
+ */\r
+\r
for( i = 0; i < program->Base.NumInstructions; i++ ) {\r
if( compile_instruction(\r
&program->Base.Instructions[i],\r