Module: Mesa Branch: master Commit: 4244bea8591d13a0f03a329bcd21a57587a68230 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4244bea8591d13a0f03a329bcd21a57587a68230
Author: Timothy Arceri <[email protected]> Date: Mon Sep 11 16:19:22 2017 +1000 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 <[email protected]> Reviewed-by: Eduardo Lima Mitev <[email protected]> --- src/compiler/glsl/glsl_to_nir.cpp | 1 + src/compiler/nir/nir.h | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/src/compiler/glsl/glsl_to_nir.cpp b/src/compiler/glsl/glsl_to_nir.cpp index 99df6e0baf..ce8da1ce43 100644 --- a/src/compiler/glsl/glsl_to_nir.cpp +++ b/src/compiler/glsl/glsl_to_nir.cpp @@ -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; diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h index 8330e6d7ce..fab2110f61 100644 --- a/src/compiler/nir/nir.h +++ b/src/compiler/nir/nir.h @@ -192,6 +192,16 @@ typedef struct nir_variable { 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 * * \sa glsl_interp_mode _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
