nir: add always_active_io to nir variable

Will be used in nir link pass to decided if we can remove a varying
or not.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eduardo Lima Mitev <elima@igalia.com>
This commit is contained in:
Timothy Arceri
2017-09-11 16:19:22 +10:00
parent 06bfb2d28f
commit 4244bea859
2 changed files with 11 additions and 0 deletions

View File

@@ -315,6 +315,7 @@ nir_visitor::visit(ir_variable *ir)
var->type = ir->type;
var->name = ralloc_strdup(var, ir->name);
var->data.always_active_io = ir->data.always_active_io;
var->data.read_only = ir->data.read_only;
var->data.centroid = ir->data.centroid;
var->data.sample = ir->data.sample;

View File

@@ -191,6 +191,16 @@ typedef struct nir_variable {
unsigned patch:1;
unsigned invariant:1;
/**
* When separate shader programs are enabled, only input/outputs between
* the stages of a multi-stage separate program can be safely removed
* from the shader interface. Other input/outputs must remains active.
*
* This is also used to make sure xfb varyings that are unused by the
* fragment shader are not removed.
*/
unsigned always_active_io:1;
/**
* Interpolation mode for shader inputs / outputs
*