From cd66aa712d9498b3c0d9a976d32e0bc487138a77 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Wed, 4 Nov 2020 11:17:43 -0500 Subject: [PATCH] panfrost: Deduplicate shader properties Between Midgard and Bifrost. Signed-off-by: Alyssa Rosenzweig Part-of: --- src/gallium/drivers/panfrost/pan_assemble.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/gallium/drivers/panfrost/pan_assemble.c b/src/gallium/drivers/panfrost/pan_assemble.c index a8501596413..b4974e43c1a 100644 --- a/src/gallium/drivers/panfrost/pan_assemble.c +++ b/src/gallium/drivers/panfrost/pan_assemble.c @@ -53,16 +53,10 @@ pan_prepare_midgard_props(struct panfrost_shader_state *state, * conformant on gles3 */ state->properties.midgard.fp_mode = MALI_FP_MODE_GL_INF_NAN_SUPPRESSED; - if (stage == MESA_SHADER_FRAGMENT) { - /* Work register count, early-z, reads at draw-time */ - state->properties.stencil_from_shader = state->writes_stencil; - state->properties.shader_contains_barrier = state->helper_invocations; - state->properties.depth_source = state->writes_depth ? - MALI_DEPTH_SOURCE_SHADER : - MALI_DEPTH_SOURCE_FIXED_FUNCTION; - } else { + /* For fragment shaders, work register count, early-z, reads at draw-time */ + + if (stage != MESA_SHADER_FRAGMENT) state->properties.midgard.work_register_count = state->work_reg_count; - } } static void @@ -86,7 +80,6 @@ pan_prepare_bifrost_props(struct panfrost_shader_state *state, /* Early-Z set at draw-time */ state->properties.bifrost.zs_update_operation = MALI_PIXEL_KILL_STRONG_EARLY; state->properties.uniform_buffer_count = state->ubo_count; - state->properties.shader_contains_barrier = state->helper_invocations; state->properties.bifrost.shader_modifies_coverage = state->can_discard; pan_prepare(&state->preload, PRELOAD); @@ -393,6 +386,12 @@ panfrost_shader_compile(struct panfrost_context *ctx, else pan_prepare_midgard_props(state, stage); + state->properties.stencil_from_shader = state->writes_stencil; + state->properties.shader_contains_barrier = state->helper_invocations; + state->properties.depth_source = state->writes_depth ? + MALI_DEPTH_SOURCE_SHADER : + MALI_DEPTH_SOURCE_FIXED_FUNCTION; + if (stage != MESA_SHADER_FRAGMENT) pan_upload_shader_descriptor(ctx, state);