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 <kenneth@whitecape.org>
This commit is contained in:
parent
ca4d192802
commit
d2fe804d18
|
@ -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 =
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue