diff options
author | Jason Ekstrand <[email protected]> | 2017-05-09 12:34:10 -0700 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2017-05-09 15:07:47 -0700 |
commit | d2fe804d1890774828a5481f5873743d71d37c2a (patch) | |
tree | 5c1e42ca4a774d7e96bb5d9a6b424f3adbd42eb4 /src/intel | |
parent | ca4d1928023755d099578b7354bf763b8fa4a0f8 (diff) |
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]>
Diffstat (limited to 'src/intel')
-rw-r--r-- | src/intel/compiler/brw_vec4.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/intel/compiler/brw_vec4.cpp b/src/intel/compiler/brw_vec4.cpp index 9366b893068..7b17c642752 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 = |