From e7149d390c94dbe9c25f38b4fb3de0ec61357905 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 18 Sep 2012 18:12:48 +0200 Subject: i965/fs: Pass fragment depth to the fb write as a fs_reg, not an ir_variable. This will be used for the ARB_fp change to use this backend. Reviewed-by: Kenneth Graunke --- src/mesa/drivers/dri/i965/brw_fs.h | 2 +- src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 9 +++------ 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_fs.h b/src/mesa/drivers/dri/i965/brw_fs.h index e69de31c9c5..e0dd720cc94 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.h +++ b/src/mesa/drivers/dri/i965/brw_fs.h @@ -370,7 +370,7 @@ public: int *params_remap; struct hash_table *variable_ht; - ir_variable *frag_depth; + fs_reg frag_depth; fs_reg outputs[BRW_MAX_DRAW_BUFFERS]; unsigned output_components[BRW_MAX_DRAW_BUFFERS]; fs_reg dual_src_output; diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp index d3cbde31d82..da095381716 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp @@ -83,7 +83,7 @@ fs_visitor::visit(ir_variable *ir) this->output_components[i] = 4; } } else if (ir->location == FRAG_RESULT_DEPTH) { - this->frag_depth = ir; + this->frag_depth = *reg; } else { /* gl_FragData or a user-defined FS output */ assert(ir->location >= FRAG_RESULT_DATA0 && @@ -2111,10 +2111,8 @@ fs_visitor::emit_fb_writes() if (c->computes_depth) { /* Hand over gl_FragDepth. */ - assert(this->frag_depth); - fs_reg depth = *(variable_storage(this->frag_depth)); - - emit(BRW_OPCODE_MOV, fs_reg(MRF, nr), depth); + assert(this->frag_depth.file != BAD_FILE); + emit(BRW_OPCODE_MOV, fs_reg(MRF, nr), this->frag_depth); } else { /* Pass through the payload depth. */ emit(BRW_OPCODE_MOV, fs_reg(MRF, nr), @@ -2275,7 +2273,6 @@ fs_visitor::fs_visitor(struct brw_wm_compile *c, struct gl_shader_program *prog, else this->reg_null_cmp = reg_null_f; - this->frag_depth = NULL; memset(this->outputs, 0, sizeof(this->outputs)); memset(this->output_components, 0, sizeof(this->output_components)); this->first_non_payload_grf = 0; -- cgit v1.2.3