From 3ccf89d58479d48b8643b1c67c4b9c34b6b97e4a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Nicolai=20H=C3=A4hnle?= Date: Mon, 27 Jul 2009 20:16:17 +0200 Subject: [PATCH] r300/compiler: Make calculate_inputs_outputs available to external users MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit In the long run, it's probably better to just get rid of InputsRead and OutputsWritten. Signed-off-by: Nicolai Hähnle --- src/mesa/drivers/dri/r300/compiler/radeon_compiler.h | 5 +++++ src/mesa/drivers/dri/r300/compiler/radeon_nqssadce.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_compiler.h b/src/mesa/drivers/dri/r300/compiler/radeon_compiler.h index 15f8b8fd92c..5bdc0754470 100644 --- a/src/mesa/drivers/dri/r300/compiler/radeon_compiler.h +++ b/src/mesa/drivers/dri/r300/compiler/radeon_compiler.h @@ -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); diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_nqssadce.c b/src/mesa/drivers/dri/r300/compiler/radeon_nqssadce.c index 9d0e265a5d9..aaaa50ad1f9 100644 --- a/src/mesa/drivers/dri/r300/compiler/radeon_nqssadce.c +++ b/src/mesa/drivers/dri/r300/compiler/radeon_nqssadce.c @@ -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); } -- 2.30.2