[Mesa-dev] [PATCH 01/12] i965/fs: Remove brw_wm_compile::computes_depth field.

Kenneth Graunke kenneth at whitecape.org
Tue Nov 20 21:40:09 PST 2012


Everybody determines this by checking if fp's OutputsWritten field
contains the FRAG_RESULT_DEPTH bit.  Rather than having payload setup
check this and set the computes_depth flag, we can just do the check in
the only place that actually used it: emit_fb_writes().
---
 src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 2 +-
 src/mesa/drivers/dri/i965/brw_wm.c           | 1 -
 src/mesa/drivers/dri/i965/brw_wm.h           | 1 -
 src/mesa/drivers/dri/i965/brw_wm_iz.c        | 3 ---
 4 files changed, 1 insertion(+), 6 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
index b6f7771..5d94181 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
@@ -2049,7 +2049,7 @@ fs_visitor::emit_fb_writes()
 	 fail("Missing support for simd16 depth writes on gen6\n");
       }
 
-      if (c->computes_depth) {
+      if (fp->Base.OutputsWritten & BITFIELD64_BIT(FRAG_RESULT_DEPTH)) {
 	 /* Hand over gl_FragDepth. */
 	 assert(this->frag_depth.file != BAD_FILE);
 	 emit(MOV(fs_reg(MRF, nr), this->frag_depth));
diff --git a/src/mesa/drivers/dri/i965/brw_wm.c b/src/mesa/drivers/dri/i965/brw_wm.c
index e2d16db..9b2c58c 100644
--- a/src/mesa/drivers/dri/i965/brw_wm.c
+++ b/src/mesa/drivers/dri/i965/brw_wm.c
@@ -160,7 +160,6 @@ brw_wm_payload_setup(struct brw_context *brw,
       if (c->fp->program.Base.OutputsWritten &
 	  BITFIELD64_BIT(FRAG_RESULT_DEPTH)) {
 	 c->source_depth_to_render_target = true;
-	 c->computes_depth = true;
       }
    } else {
       brw_wm_lookup_iz(intel, c);
diff --git a/src/mesa/drivers/dri/i965/brw_wm.h b/src/mesa/drivers/dri/i965/brw_wm.h
index 46d4416..c017866 100644
--- a/src/mesa/drivers/dri/i965/brw_wm.h
+++ b/src/mesa/drivers/dri/i965/brw_wm.h
@@ -89,7 +89,6 @@ struct brw_wm_compile {
    uint8_t dest_depth_reg;
    uint8_t barycentric_coord_reg[BRW_WM_BARYCENTRIC_INTERP_MODE_COUNT];
    uint8_t nr_payload_regs;
-   GLuint computes_depth:1;	/* could be derived from program string */
    GLuint source_depth_to_render_target:1;
    GLuint runtime_check_aads_emit:1;
 
diff --git a/src/mesa/drivers/dri/i965/brw_wm_iz.c b/src/mesa/drivers/dri/i965/brw_wm_iz.c
index 878f5d0..147753a 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_iz.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_iz.c
@@ -142,9 +142,6 @@ void brw_wm_lookup_iz(struct intel_context *intel,
       kill_stats_promoted_workaround = true;
    }
 
-   if (lookup & IZ_PS_COMPUTES_DEPTH_BIT)
-      c->computes_depth = 1;
-
    if (wm_iz_table[lookup].sd_present || uses_depth ||
        kill_stats_promoted_workaround) {
       c->source_depth_reg = reg;
-- 
1.8.0



More information about the mesa-dev mailing list