Module: Mesa
Branch: master
Commit: f1de952b695b8f2053d576d3e8093427e598bd4f
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f1de952b695b8f2053d576d3e8093427e598bd4f

Author: Alyssa Rosenzweig <[email protected]>
Date:   Mon Jun  8 18:05:21 2020 -0400

panfrost: Use shader_info harder

We already have this metadata..

Signed-off-by: Alyssa Rosenzweig <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5423>

---

 src/gallium/drivers/panfrost/pan_assemble.c | 20 +++++---------------
 src/panfrost/util/pan_ir.h                  |  3 ---
 2 files changed, 5 insertions(+), 18 deletions(-)

diff --git a/src/gallium/drivers/panfrost/pan_assemble.c 
b/src/gallium/drivers/panfrost/pan_assemble.c
index dfda97f9463..7d0f07a0dd1 100644
--- a/src/gallium/drivers/panfrost/pan_assemble.c
+++ b/src/gallium/drivers/panfrost/pan_assemble.c
@@ -231,11 +231,14 @@ panfrost_shader_compile(struct panfrost_context *ctx,
         }
 
         state->can_discard = s->info.fs.uses_discard;
-        state->writes_point_size = program.writes_point_size;
-        state->reads_point_coord = false;
         state->helper_invocations = s->info.fs.needs_helper_invocations;
         state->stack_size = program.tls_size;
 
+        state->reads_frag_coord = s->info.inputs_read & (1 << 
VARYING_SLOT_POS);
+        state->reads_point_coord = s->info.inputs_read & (1 << 
VARYING_SLOT_PNTC);
+        state->reads_face = s->info.inputs_read & (1 << VARYING_SLOT_FACE);
+        state->writes_point_size = s->info.outputs_written & (1 << 
VARYING_SLOT_PSIZ);
+
         if (outputs_written)
                 *outputs_written = s->info.outputs_written;
 
@@ -263,17 +266,4 @@ panfrost_shader_compile(struct panfrost_context *ctx,
                         state->varyings[loc + c] = 
pan_format_from_glsl(var->type, var->data.location_frac);
                 }
         }
-
-        for (unsigned i = 0; i < state->varying_count; ++i) {
-                unsigned location = state->varyings_loc[i];
-
-                if (location == VARYING_SLOT_POS && stage == 
MESA_SHADER_FRAGMENT)
-                        state->reads_frag_coord = true;
-                else if (location == VARYING_SLOT_PSIZ)
-                        state->writes_point_size = true;
-                else if (location == VARYING_SLOT_PNTC)
-                        state->reads_point_coord = true;
-                else if (location == VARYING_SLOT_FACE)
-                        state->reads_face = true;
-        }
 }
diff --git a/src/panfrost/util/pan_ir.h b/src/panfrost/util/pan_ir.h
index 221967d3b5d..aa0eb7904ce 100644
--- a/src/panfrost/util/pan_ir.h
+++ b/src/panfrost/util/pan_ir.h
@@ -95,9 +95,6 @@ typedef struct {
         unsigned sysval_count;
         unsigned sysvals[MAX_SYSVAL_COUNT];
 
-        /* Boolean properties of the program */
-        bool writes_point_size;
-
         int first_tag;
 
         struct util_dynarray compiled;

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to