i965: Introduce downcast helpers for prog_data structures.
[mesa.git] / src / mesa / drivers / dri / i965 / brw_wm_iz.cpp
index 0a639f176e1b89e4cd2340cab97dc30cac76c485..8f4c1cf2f84c15a9993c9458324ce4d3ba9b7b67 100644 (file)
@@ -30,8 +30,8 @@
   */
 
 
-#include "main/mtypes.h"
 #include "brw_fs.h"
+#include "brw_wm.h"
 
 
 #undef P                        /* prompted depth */
@@ -120,13 +120,14 @@ static const struct {
  * \param line_aa  AA_NEVER, AA_ALWAYS or AA_SOMETIMES
  * \param lookup  bitmask of IZ_* flags
  */
-void fs_visitor::setup_payload_gen4()
+void fs_visitor::setup_fs_payload_gen4()
 {
+   assert(stage == MESA_SHADER_FRAGMENT);
+   struct brw_wm_prog_data *prog_data = brw_wm_prog_data(this->prog_data);
+   brw_wm_prog_key *key = (brw_wm_prog_key*) this->key;
    GLuint reg = 2;
    bool kill_stats_promoted_workaround = false;
    int lookup = key->iz_lookup;
-   bool uses_depth =
-      (fp->Base.InputsRead & (1 << VARYING_SLOT_POS)) != 0;
 
    assert(lookup < IZ_BIT_MAX);
 
@@ -141,7 +142,9 @@ void fs_visitor::setup_payload_gen4()
       kill_stats_promoted_workaround = true;
    }
 
-   if (wm_iz_table[lookup].sd_present || uses_depth ||
+   prog_data->uses_src_depth =
+      (nir->info.inputs_read & (1 << VARYING_SLOT_POS)) != 0;
+   if (wm_iz_table[lookup].sd_present || prog_data->uses_src_depth ||
        kill_stats_promoted_workaround) {
       payload.source_depth_reg = reg;
       reg += 2;