On 23/09/17 02:59, Kenneth Graunke wrote:
On Tuesday, September 12, 2017 4:37:29 PM PDT Timothy Arceri wrote:
This will be used by the nir linking pass so that we don't remove
otherwise unused varyings.
---
  src/compiler/glsl/link_varyings.cpp | 3 +++
  1 file changed, 3 insertions(+)

diff --git a/src/compiler/glsl/link_varyings.cpp 
b/src/compiler/glsl/link_varyings.cpp
index 528506fd0eb..656bf79ca9d 100644
--- a/src/compiler/glsl/link_varyings.cpp
+++ b/src/compiler/glsl/link_varyings.cpp
@@ -2268,6 +2268,9 @@ assign_varying_locations(struct gl_context *ctx,
           return false;
        }
+ /* Mark xfb varyings as always active */
+      matched_candidate->toplevel_var->data.always_active_io = 1;
+
        if (matched_candidate->toplevel_var->data.is_unmatched_generic_inout) {
           matched_candidate->toplevel_var->data.is_xfb_only = 1;
           matches.record(matched_candidate->toplevel_var, NULL);


Hmm...it looks like this could actually fix a bug today.  At least, I'm
not seeing what code prevents us from deleting variables that are used
for transform feedback but not otherwise.

is_xfb_only is used for that, it also has special meaning when packing since xfb varyings must be packed. For a nir pass is_xfb_only isn't really required and we can just use always_active_io instead.


Patches 1-2 are:
Reviewed-by: Kenneth Graunke <kenn...@whitecape.org>

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to