r300/compiler: Refactor rewrite_depth_out to use rc_program
authorNicolai Hähnle <nhaehnle@gmail.com>
Fri, 24 Jul 2009 20:50:35 +0000 (22:50 +0200)
committerNicolai Hähnle <nhaehnle@gmail.com>
Mon, 27 Jul 2009 20:51:35 +0000 (22:51 +0200)
Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
src/mesa/drivers/dri/r300/compiler/r3xx_fragprog.c

index bdab61f32da9ba673ddce4f8b1ee54846ce76dee..08283c814747ca4311932787e42527408173578c 100644 (file)
@@ -195,11 +195,13 @@ static void rewriteFog(struct r300_fragment_program_compiler *compiler)
 }
 
 
-static void rewrite_depth_out(struct gl_program *prog)
+static void rewrite_depth_out(struct r300_fragment_program_compiler * c)
 {
-       struct prog_instruction *inst;
+       struct rc_instruction *rci;
+
+       for (rci = c->Base.Program.Instructions.Next; rci != &c->Base.Program.Instructions; rci = rci->Next) {
+               struct prog_instruction * inst = &rci->I;
 
-       for (inst = prog->Instructions; inst->Opcode != OPCODE_END; ++inst) {
                if (inst->DstReg.File != PROGRAM_OUTPUT || inst->DstReg.Index != FRAG_RESULT_DEPTH)
                        continue;
 
@@ -248,10 +250,10 @@ void r3xx_compile_fragment_program(struct r300_fragment_program_compiler* c)
 
        rewriteFog(c);
 
-       rewrite_depth_out(c->program);
-
        rc_mesa_to_rc_program(&c->Base, c->program);
 
+       rewrite_depth_out(c);
+
        if (c->is_r500) {
                struct radeon_program_transformation transformations[] = {
                        { &r500_transform_TEX, c },