aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/drivers/panfrost/pan_assemble.c20
-rw-r--r--src/panfrost/util/pan_ir.h3
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;