- tgsi_mesa_compile_vp_program( &stvp->Base,
- /* inputs */
- vs.num_inputs,
- stvp->input_to_index,
- vs.input_semantic_name,
- vs.input_semantic_index,
- /* outputs */
- vs.num_outputs,
- outputMapping,
- vs.output_semantic_name,
- vs.output_semantic_index,
- /* tokenized result */
- tokensOut, maxTokens);
-
- vs.tokens = tokensOut;
- cso = st_cached_vs_state(st, &vs);
- stvp->vs = cso;
+ num_tokens = tgsi_translate_mesa_program( TGSI_PROCESSOR_VERTEX,
+ &stvp->Base.Base,
+ /* inputs */
+ vs_num_inputs,
+ stvp->input_to_index,
+ vs_input_semantic_name,
+ vs_input_semantic_index,
+ NULL,
+ /* outputs */
+ vs_num_outputs,
+ outputMapping,
+ vs_output_semantic_name,
+ vs_output_semantic_index,
+ /* tokenized result */
+ tokens, ST_MAX_SHADER_TOKENS);
+
+ vs.tokens = (struct tgsi_token *)
+ mem_dup(tokens, num_tokens * sizeof(tokens[0]));
+
+ stvp->num_inputs = vs_num_inputs;
+ stvp->state = vs; /* struct copy */
+ stvp->driver_shader = pipe->create_vs_state(pipe, &vs);
+
+ if (0)
+ _mesa_print_program(&stvp->Base.Base);