r300/compiler: Make calculate_inputs_outputs available to external users
authorNicolai Hähnle <nhaehnle@gmail.com>
Mon, 27 Jul 2009 18:16:17 +0000 (20:16 +0200)
committerNicolai Hähnle <nhaehnle@gmail.com>
Mon, 27 Jul 2009 20:51:40 +0000 (22:51 +0200)
In the long run, it's probably better to just get rid of InputsRead and
OutputsWritten.

Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
src/mesa/drivers/dri/r300/compiler/radeon_compiler.h
src/mesa/drivers/dri/r300/compiler/radeon_nqssadce.c

index 15f8b8fd92ce8012e6e8a7117384a06dd93f753a..5bdc07544700b90f5c1abeb270616a3bc44cd4dd 100644 (file)
@@ -43,6 +43,9 @@ struct rc_program {
         */
        struct rc_instruction Instructions;
 
+       /* Long term, we should probably remove InputsRead & OutputsWritten,
+        * since updating dependent state can be fragile, and they aren't
+        * actually used very often. */
        uint32_t InputsRead;
        uint32_t OutputsWritten;
        uint32_t ShadowSamplers; /**< Texture units used for shadow sampling. */
@@ -66,6 +69,8 @@ void rc_error(struct radeon_compiler * c, const char * fmt, ...);
 
 void rc_mesa_to_rc_program(struct radeon_compiler * c, struct gl_program * program);
 
+void rc_calculate_inputs_outputs(struct radeon_compiler * c);
+
 void rc_move_input(struct radeon_compiler * c, unsigned input, struct prog_src_register new_input);
 void rc_move_output(struct radeon_compiler * c, unsigned output, unsigned new_output, unsigned writemask);
 void rc_copy_output(struct radeon_compiler * c, unsigned output, unsigned dup_output);
index 9d0e265a5d966f206eec3bcd51f0b8d7b1e901bb..aaaa50ad1f93a1fb70b0d3e16fbd3cb361291e27 100644 (file)
@@ -252,7 +252,7 @@ static void process_instruction(struct nqssadce_state* s)
        s->IP = s->IP->Prev;
 }
 
-static void calculateInputs(struct radeon_compiler * c)
+void rc_calculate_inputs_outputs(struct radeon_compiler * c)
 {
        struct rc_instruction *inst;
 
@@ -290,5 +290,5 @@ void radeonNqssaDce(struct radeon_compiler * c, struct radeon_nqssadce_descr* de
        while(s.IP != &c->Program.Instructions && !c->Error)
                process_instruction(&s);
 
-       calculateInputs(c);
+       rc_calculate_inputs_outputs(c);
 }