merge from master
[mesa.git] / src / mesa / drivers / dri / r300 / r300_vertprog.c
index 0c43270d757eff3acff36e0ad985d71d578192c1..aa2f20127ba81df942fcdcd41d8843b8368409d6 100644 (file)
@@ -33,11 +33,13 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
 #include "macros.h"
 #include "enums.h"
 #include "program.h"
-#include "nvvertexec.h"
+#include "shader/prog_instruction.h"
+#include "shader/prog_parameter.h"
+#include "shader/prog_statevars.h"
+#include "tnl/tnl.h"
 
 #include "r300_context.h"
 #include "r300_program.h"
-#include "program_instruction.h"
 
 #if SWIZZLE_X != VSF_IN_COMPONENT_X || \
     SWIZZLE_Y != VSF_IN_COMPONENT_Y || \
@@ -103,7 +105,7 @@ int r300VertexProgUpdateParams(GLcontext *ctx, struct r300_vertex_program_cont *
         struct gl_program_parameter_list *paramList;
        
        if (mesa_vp->IsNVProgram) {
-               _mesa_init_vp_per_primitive_registers(ctx);
+               _mesa_load_tracked_matrices(ctx);
                
                for (pi=0; pi < MAX_NV_VERTEX_PROGRAM_PARAMS; pi++) {
                        *dst++=ctx->VertexProgram.Parameters[pi][0];
@@ -880,7 +882,7 @@ static void position_invariant(struct gl_program *prog)
        struct gl_program_parameter_list *paramList;
        int i;
 
-       GLint tokens[6] = { STATE_MATRIX, STATE_MVP, 0, 0, 0, STATE_MATRIX };
+       gl_state_index tokens[STATE_LENGTH] = { STATE_MVP_MATRIX, 0, 0, 0, 0 };
 
 #ifdef PREFER_DP4
        tokens[5] = STATE_MATRIX;
@@ -946,7 +948,7 @@ static void position_invariant(struct gl_program *prog)
 #endif                                 
        }
 
-       _mesa_memcpy(&vpi[i], prog->Instructions, prog->NumInstructions * sizeof(struct prog_instruction));
+       _mesa_copy_instructions (&vpi[i], prog->Instructions, prog->NumInstructions);
 
        free(prog->Instructions);
 
@@ -969,10 +971,11 @@ static void insert_wpos(struct r300_vertex_program *vp,
        vpi = _mesa_alloc_instructions (prog->NumInstructions + 2);
        _mesa_init_instructions (vpi, prog->NumInstructions + 2);
        /* all but END */
-       _mesa_memcpy(vpi, prog->Instructions, (prog->NumInstructions - 1) * sizeof(struct prog_instruction));
+       _mesa_copy_instructions (vpi, prog->Instructions, prog->NumInstructions - 1);
        /* END */
-       _mesa_memcpy(&vpi[prog->NumInstructions + 1], &prog->Instructions[prog->NumInstructions - 1],
-               sizeof(struct prog_instruction));
+       _mesa_copy_instructions (&vpi[prog->NumInstructions + 1],
+                                &prog->Instructions[prog->NumInstructions - 1],
+                                1);
        vpi_insert = &vpi[prog->NumInstructions - 1];
 
        vpi_insert[i].Opcode = OPCODE_MOV;