panfrost: Preload primitive flags when gl_FrontFacing is accessed

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7314>
This commit is contained in:
Boris Brezillon
2020-10-18 18:08:48 +02:00
parent b92eadb29c
commit 0a582b53f2

View File

@@ -93,6 +93,7 @@ pan_prepare_bifrost_props(struct panfrost_shader_state *state,
state->preload.uniform_count = state->uniform_count;
state->preload.fragment.fragment_position = state->reads_frag_coord;
state->preload.fragment.coverage = true;
state->preload.fragment.primitive_flags = state->reads_face;
break;
default:
unreachable("TODO");
@@ -343,7 +344,8 @@ panfrost_shader_compile(struct panfrost_context *ctx,
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->reads_face = (s->info.inputs_read & (1 << VARYING_SLOT_FACE)) ||
(s->info.system_values_read & (1 << SYSTEM_VALUE_FRONT_FACE));
state->writes_point_size = s->info.outputs_written & (1 << VARYING_SLOT_PSIZ);
if (outputs_written)