diff --git a/src/gallium/drivers/etnaviv/etnaviv_context.c b/src/gallium/drivers/etnaviv/etnaviv_context.c index b44e9925f0d..8e8c21eee14 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_context.c +++ b/src/gallium/drivers/etnaviv/etnaviv_context.c @@ -499,9 +499,6 @@ etna_reset_gpu_state(struct etna_context *ctx) etna_set_state(stream, VIVS_PS_SAMPLER_BASE, 0x00000000); etna_set_state(stream, VIVS_VS_SAMPLER_BASE, 0x00000020); etna_set_state(stream, VIVS_SH_CONFIG, VIVS_SH_CONFIG_RTNE_ROUNDING); - } else { /* Only on pre-HALTI5 */ - etna_set_state(stream, VIVS_GL_VARYING_COMPONENT_USE2, 0x00000000); - etna_set_state(stream, VIVS_GL_VARYING_COMPONENT_USE3, 0x00000000); } if (VIV_FEATURE(screen, ETNA_FEATURE_BUG_FIXES18)) diff --git a/src/gallium/drivers/etnaviv/etnaviv_emit.c b/src/gallium/drivers/etnaviv/etnaviv_emit.c index 6b28ad3ecf8..06aac1d9dbe 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_emit.c +++ b/src/gallium/drivers/etnaviv/etnaviv_emit.c @@ -226,6 +226,8 @@ emit_pre_halti5_state(struct etna_context *ctx) /*03828*/ EMIT_STATE(GL_VARYING_COMPONENT_USE(x), ctx->shader_state.GL_VARYING_COMPONENT_USE[x]); } /*03834*/ EMIT_STATE(GL_VARYING_NUM_COMPONENTS2, ctx->shader_state.GL_VARYING_NUM_COMPONENTS[1]); + /*03838*/ EMIT_STATE(GL_VARYING_COMPONENT_USE2, ctx->shader_state.GL_VARYING_COMPONENT_USE[2]); + /*03854*/ EMIT_STATE(GL_VARYING_COMPONENT_USE3, ctx->shader_state.GL_VARYING_COMPONENT_USE[3]); } etna_coalesce_end(stream, &coalesce); } diff --git a/src/gallium/drivers/etnaviv/etnaviv_internal.h b/src/gallium/drivers/etnaviv/etnaviv_internal.h index 2d12f2f184d..08182a4f632 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_internal.h +++ b/src/gallium/drivers/etnaviv/etnaviv_internal.h @@ -252,7 +252,7 @@ struct compiled_shader_state { uint32_t PS_START_PC; uint32_t GL_VARYING_TOTAL_COMPONENTS; uint32_t GL_VARYING_NUM_COMPONENTS[2]; - uint32_t GL_VARYING_COMPONENT_USE[2]; + uint32_t GL_VARYING_COMPONENT_USE[4]; uint32_t GL_HALTI5_SH_SPECIALS; uint32_t FE_HALTI5_ID_CONFIG; unsigned vs_inst_mem_size; diff --git a/src/gallium/drivers/etnaviv/etnaviv_shader.c b/src/gallium/drivers/etnaviv/etnaviv_shader.c index 7ce046169b3..71790459f97 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_shader.c +++ b/src/gallium/drivers/etnaviv/etnaviv_shader.c @@ -248,6 +248,8 @@ etna_link_shaders(struct etna_context *ctx, struct compiled_shader_state *cs, cs->GL_VARYING_NUM_COMPONENTS[1] = num_components[1]; cs->GL_VARYING_COMPONENT_USE[0] = component_use[0]; cs->GL_VARYING_COMPONENT_USE[1] = component_use[1]; + cs->GL_VARYING_COMPONENT_USE[2] = component_use[2]; + cs->GL_VARYING_COMPONENT_USE[3] = component_use[3]; cs->GL_HALTI5_SH_SPECIALS = 0x7f7f0000 | /* unknown bits, probably other PS inputs */