From 7a95b1f0fc26fedb6b6bf68fc25353db11be7346 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Mon, 5 Jul 2021 12:23:09 -0400 Subject: [PATCH] asahi: Set vertex texture/sampler counts Fixes dEQP-GLES2.functional.shaders.texture_functions.vertex.texture2d Signed-off-by: Alyssa Rosenzweig Part-of: --- src/gallium/drivers/asahi/agx_state.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/asahi/agx_state.c b/src/gallium/drivers/asahi/agx_state.c index bead2b993dc..28fc07c2753 100644 --- a/src/gallium/drivers/asahi/agx_state.c +++ b/src/gallium/drivers/asahi/agx_state.c @@ -1212,10 +1212,10 @@ agx_build_store_pipeline(struct agx_context *ctx, uint32_t code, } static uint64_t -demo_launch_fragment(struct agx_pool *pool, uint32_t pipeline, uint32_t varyings, unsigned input_count) +demo_launch_fragment(struct agx_context *ctx, struct agx_pool *pool, uint32_t pipeline, uint32_t varyings, unsigned input_count) { - unsigned sampler_count = 1; - unsigned texture_count = 1; + unsigned sampler_count = ctx->stage[PIPE_SHADER_FRAGMENT].texture_count; + unsigned texture_count = ctx->stage[PIPE_SHADER_FRAGMENT].texture_count; uint32_t unk[] = { 0x800000, @@ -1343,6 +1343,8 @@ agx_encode_state(struct agx_context *ctx, uint8_t *out, cfg.pipeline = pipeline_vertex; cfg.vs_output_count_1 = ctx->vs->info.varyings.nr_slots; cfg.vs_output_count_2 = ctx->vs->info.varyings.nr_slots; + cfg.sampler_count = ctx->stage[PIPE_SHADER_VERTEX].texture_count; + cfg.texture_count = ctx->stage[PIPE_SHADER_VERTEX].texture_count; } /* yes, it's really 17 bytes */ @@ -1357,7 +1359,7 @@ agx_encode_state(struct agx_context *ctx, uint8_t *out, agx_push_record(&out, 0, zero.gpu); agx_push_record(&out, 5, demo_unk8(ctx->fs, pool)); - agx_push_record(&out, 5, demo_launch_fragment(pool, pipeline_fragment, varyings, ctx->fs->info.varyings.nr_descs)); + agx_push_record(&out, 5, demo_launch_fragment(ctx, pool, pipeline_fragment, varyings, ctx->fs->info.varyings.nr_descs)); agx_push_record(&out, 4, demo_linkage(ctx->vs, pool)); agx_push_record(&out, 7, demo_rasterizer(ctx, pool)); agx_push_record(&out, 5, demo_unk11(pool, is_lines, reads_tib));