Module: Mesa
Branch: master
Commit: d2fe804d1890774828a5481f5873743d71d37c2a
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d2fe804d1890774828a5481f5873743d71d37c2a

Author: Jason Ekstrand <[email protected]>
Date:   Tue May  9 12:34:10 2017 -0700

i965/vec4: Set VERT_BIT_EDGEFLAG based on the VUE map

We also add a nice little comment to make it more clear exactly what
happens with the edge flag copy.

Reviewed-by: Kenneth Graunke <[email protected]>

---

 src/intel/compiler/brw_vec4.cpp    | 11 +++++++++++
 src/mesa/drivers/dri/i965/brw_vs.c |  4 ----
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/src/intel/compiler/brw_vec4.cpp b/src/intel/compiler/brw_vec4.cpp
index 9366b89306..7b17c64275 100644
--- a/src/intel/compiler/brw_vec4.cpp
+++ b/src/intel/compiler/brw_vec4.cpp
@@ -2778,6 +2778,17 @@ brw_compile_vs(const struct brw_compiler *compiler, void 
*log_data,
 
    const unsigned *assembly = NULL;
 
+   if (prog_data->base.vue_map.varying_to_slot[VARYING_SLOT_EDGE] != -1) {
+      /* If the output VUE map contains VARYING_SLOT_EDGE then we need to copy
+       * the edge flag from VERT_ATTRIB_EDGEFLAG.  This will be done
+       * automatically by brw_vec4_visitor::emit_urb_slot but we need to
+       * ensure that prog_data->inputs_read is accurate.
+       */
+      assert(!is_scalar);
+      assert(key->copy_edgeflag);
+      prog_data->inputs_read |= VERT_BIT_EDGEFLAG;
+   }
+
    prog_data->base.clip_distance_mask =
       ((1 << shader->info.clip_distance_array_size) - 1);
    prog_data->base.cull_distance_mask =
diff --git a/src/mesa/drivers/dri/i965/brw_vs.c 
b/src/mesa/drivers/dri/i965/brw_vs.c
index b1ea01a9ad..b823a4dd5c 100644
--- a/src/mesa/drivers/dri/i965/brw_vs.c
+++ b/src/mesa/drivers/dri/i965/brw_vs.c
@@ -213,10 +213,6 @@ brw_codegen_vs_prog(struct brw_context *brw,
    prog_data.inputs_read = vp->program.info.inputs_read;
    prog_data.double_inputs_read = vp->program.info.double_inputs_read;
 
-   if (key->copy_edgeflag) {
-      prog_data.inputs_read |= VERT_BIT_EDGEFLAG;
-   }
-
    brw_compute_vue_map(devinfo,
                        &prog_data.base.vue_map, outputs_written,
                        vp->program.nir->info.separate_shader);

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to