Mesa (master): i965/fs: Pass fragment depth to the fb write as a fs_reg, not an ir_variable.
Eric Anholt
anholt at kemper.freedesktop.org
Mon Oct 8 15:52:41 UTC 2012
Module: Mesa
Branch: master
Commit: e7149d390c94dbe9c25f38b4fb3de0ec61357905
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e7149d390c94dbe9c25f38b4fb3de0ec61357905
Author: Eric Anholt <eric at anholt.net>
Date: Tue Sep 18 18:12:48 2012 +0200
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 <kenneth at whitecape.org>
---
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 e69de31..e0dd720 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 d3cbde3..da09538 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;
More information about the mesa-commit
mailing list