From 035a1002468e7c5e7343f71374527e145dc76d1a Mon Sep 17 00:00:00 2001 From: Christian Gmeiner Date: Thu, 14 Sep 2023 08:34:19 +0200 Subject: [PATCH] etnaviv: Extend compiled_shader_state for MRTs We can have up to 8 MRTs (depending on HALTI) and we need more two uint32_t in total. Just convert PS_OUTPUT_REG to an array and change the code that works with it. This is just prep change for MRT support. Signed-off-by: Christian Gmeiner Reviewed-by: Lucas Stach Part-of: --- src/gallium/drivers/etnaviv/etnaviv_emit.c | 2 +- src/gallium/drivers/etnaviv/etnaviv_internal.h | 2 +- src/gallium/drivers/etnaviv/etnaviv_shader.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/etnaviv/etnaviv_emit.c b/src/gallium/drivers/etnaviv/etnaviv_emit.c index b02bfaf492f..27dbdce2194 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_emit.c +++ b/src/gallium/drivers/etnaviv/etnaviv_emit.c @@ -424,7 +424,7 @@ etna_emit_state(struct etna_context *ctx) /*00E08*/ EMIT_STATE(RA_EARLY_DEPTH, etna_zsa_state(ctx->zsa)->RA_DEPTH_CONFIG); } if (unlikely(dirty & (ETNA_DIRTY_SHADER | ETNA_DIRTY_FRAMEBUFFER))) { - /*01004*/ EMIT_STATE(PS_OUTPUT_REG, ctx->shader_state.PS_OUTPUT_REG); + /*01004*/ EMIT_STATE(PS_OUTPUT_REG, ctx->shader_state.PS_OUTPUT_REG[0]); /*01008*/ EMIT_STATE(PS_INPUT_COUNT, ctx->framebuffer.msaa_mode ? ctx->shader_state.PS_INPUT_COUNT_MSAA diff --git a/src/gallium/drivers/etnaviv/etnaviv_internal.h b/src/gallium/drivers/etnaviv/etnaviv_internal.h index 31ced167ca4..667d4622ee4 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_internal.h +++ b/src/gallium/drivers/etnaviv/etnaviv_internal.h @@ -227,7 +227,7 @@ struct compiled_shader_state { uint32_t VS_LOAD_BALANCING; uint32_t VS_START_PC; uint32_t PS_END_PC; - uint32_t PS_OUTPUT_REG; + uint32_t PS_OUTPUT_REG[2]; uint32_t PS_INPUT_COUNT; uint32_t PS_INPUT_COUNT_MSAA; /* Adds an input */ uint32_t PS_TEMP_REGISTER_CONTROL; diff --git a/src/gallium/drivers/etnaviv/etnaviv_shader.c b/src/gallium/drivers/etnaviv/etnaviv_shader.c index 1c3a049962f..3b2278588e5 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_shader.c +++ b/src/gallium/drivers/etnaviv/etnaviv_shader.c @@ -188,7 +188,7 @@ etna_link_shaders(struct etna_context *ctx, struct compiled_shader_state *cs, cs->VS_START_PC = 0; cs->PS_END_PC = fs->code_size / 4; - cs->PS_OUTPUT_REG = fs->ps_color_out_reg; + cs->PS_OUTPUT_REG[0] = fs->ps_color_out_reg; cs->PS_INPUT_COUNT = VIVS_PS_INPUT_COUNT_COUNT(link.num_varyings + 1) | /* Number of inputs plus position */ VIVS_PS_INPUT_COUNT_UNK8(fs->input_count_unk8);