gallium: remove input_map[] from pipe_shader_state
authorBrian <brian.paul@tungstengraphics.com>
Tue, 26 Feb 2008 15:43:07 +0000 (08:43 -0700)
committerBrian <brian.paul@tungstengraphics.com>
Tue, 26 Feb 2008 15:43:07 +0000 (08:43 -0700)
src/gallium/include/pipe/p_state.h
src/mesa/state_tracker/st_atom_shader.c
src/mesa/state_tracker/st_program.c
src/mesa/state_tracker/st_program.h

index 15c88881eb23e38e97d61671f3cf2a4b3fe2d1ed..ddf3c1c79bf53d48c7939e100c030e10c11bbfa6 100644 (file)
@@ -162,7 +162,6 @@ struct pipe_shader_state
    const struct tgsi_token *tokens;
    ubyte num_inputs;
    ubyte num_outputs;
-   ubyte input_map[PIPE_MAX_SHADER_INPUTS]; /* XXX this may be temporary */
    ubyte input_semantic_name[PIPE_MAX_SHADER_INPUTS]; /**< TGSI_SEMANTIC_x */
    ubyte input_semantic_index[PIPE_MAX_SHADER_INPUTS];
    ubyte output_semantic_name[PIPE_MAX_SHADER_OUTPUTS]; /**< TGSI_SEMANTIC_x */
index b67b620eaa5137688fdd661367d69dd45bc144af..10c131d5549819c73fda9155b0c73d93fbdfc60a 100644 (file)
@@ -227,7 +227,7 @@ find_translated_vp(struct st_context *st,
             if (fpInAttrib >= 0) {
                GLuint fpInSlot = stfp->input_to_slot[fpInAttrib];
                if (fpInSlot != ~0) {
-                  GLuint vpOutSlot = stfp->cso->state.input_map[fpInSlot];
+                  GLuint vpOutSlot = stfp->input_map[fpInSlot];
                   xvp->output_to_slot[outAttr] = vpOutSlot;
                   numVpOuts++;
                }
index dc992ee9c24ffcc4b543b09a2d262a1a44339404..aa252c845ad94438b66f56128244af48b466ce1d 100644 (file)
@@ -311,7 +311,7 @@ st_translate_fragment_program(struct st_context *st,
 
          defaultInputMapping[attr] = slot;
 
-         fs.input_map[slot] = vslot++;
+         stfp->input_map[slot] = vslot++;
 
          fs.num_inputs++;
 
index 25cf3e94a8f3a585f01b7e191d7ffafe170351c6..31558af6cedcd016013819f13c29af296d9b5ce3 100644 (file)
@@ -57,6 +57,9 @@ struct st_fragment_program
    GLuint input_to_slot[FRAG_ATTRIB_MAX];  /**< Maps FRAG_ATTRIB_x to slot */
    GLuint num_input_slots;
 
+   /** map FP input back to VP output */
+   GLuint input_map[PIPE_MAX_SHADER_INPUTS];
+
    /** The program in TGSI format */
    struct tgsi_token tokens[ST_MAX_SHADER_TOKENS];