remove stray tab
[mesa.git] / src / mesa / shader / slang / slang_link2.c
index da5ba5c2927612f4a41e9204536dd9ead8efe9d0..0a517aecc5f5f741f4d1dd4352300fe4eb89d627 100644 (file)
@@ -259,8 +259,10 @@ link_uniform_vars(struct gl_shader_program *shProg, struct gl_program *prog)
       if (inst->Opcode == OPCODE_TEX ||
           inst->Opcode == OPCODE_TXB ||
           inst->Opcode == OPCODE_TXP) {
+         /*
          printf("====== remap sampler from %d to %d\n",
                 inst->Sampler, map[ inst->Sampler ]);
+         */
          inst->Sampler = map[ inst->Sampler ];
       }
    }
@@ -332,7 +334,7 @@ _slang_resolve_attributes(struct gl_shader_program *shProg,
     */
    usedAttributes = 0x0;
    for (i = 0; i < shProg->Attributes->NumParameters; i++) {
-      GLint attr = shProg->Attributes->Parameters[i].StateIndexes[1];
+      GLint attr = shProg->Attributes->Parameters[i].StateIndexes[0];
       usedAttributes |= attr;
    }
 
@@ -358,11 +360,14 @@ _slang_resolve_attributes(struct gl_shader_program *shProg,
             GLint attr;
             if (index >= 0) {
                /* found, user must have specified a binding */
-               attr = shProg->Attributes->Parameters[index].StateIndexes[1];
+               attr = shProg->Attributes->Parameters[index].StateIndexes[0];
             }
             else {
-               /* not found, choose our own attribute number */
-               for (attr = 0; attr < MAX_VERTEX_ATTRIBS; attr++) {
+               /* Not found, choose our own attribute number.
+                * Start at 1 since generic attribute 0 always aliases
+                * glVertex/position.
+                */
+               for (attr = 1; attr < MAX_VERTEX_ATTRIBS; attr++) {
                   if (((1 << attr) & usedAttributes) == 0)
                      break;
                }
@@ -568,7 +573,9 @@ _slang_link2(GLcontext *ctx,
    _slang_resolve_samplers(shProg, &shProg->VertexProgram->Base);
    _slang_resolve_samplers(shProg, &shProg->FragmentProgram->Base);
 
-   _slang_resolve_attributes(shProg, &shProg->VertexProgram->Base);
+   if (!_slang_resolve_attributes(shProg, &shProg->VertexProgram->Base)) {
+      /*goto cleanup;*/
+   }
 
    _slang_update_inputs_outputs(&shProg->VertexProgram->Base);
    _slang_update_inputs_outputs(&shProg->FragmentProgram->Base);