From ec5984c0d484b7a5782d84b1afee355bf44c91f8 Mon Sep 17 00:00:00 2001 From: Emma Anholt Date: Thu, 16 Jun 2022 16:37:07 -0700 Subject: [PATCH] turnip: Fix the reservation for vertex inputs. It was too large since 2cd30266f155 ("tu: Refactor VS DECODE/DEST to be emitted in two pkt4"), so fix it and also give it a name next to the code it relates to. Part-of: --- src/freedreno/vulkan/tu_pipeline.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/freedreno/vulkan/tu_pipeline.c b/src/freedreno/vulkan/tu_pipeline.c index b09cd4f27ac..9bf292892cc 100644 --- a/src/freedreno/vulkan/tu_pipeline.c +++ b/src/freedreno/vulkan/tu_pipeline.c @@ -1804,6 +1804,8 @@ tu6_emit_program(struct tu_cs *cs, } } +#define TU6_EMIT_VERTEX_INPUT_MAX_DWORDS (MAX_VERTEX_ATTRIBS * 5 + 4) + static void tu6_emit_vertex_input(struct tu_pipeline *pipeline, struct tu_cs *cs, @@ -2327,6 +2329,8 @@ tu_pipeline_allocate_cs(struct tu_device *dev, /* graphics case: */ if (builder) { + size += 2 * TU6_EMIT_VERTEX_INPUT_MAX_DWORDS; + for (uint32_t i = 0; i < ARRAY_SIZE(builder->shaders->variants); i++) { if (builder->shaders->variants[i]) { size += builder->shaders->variants[i]->info.size / 4; @@ -3250,13 +3254,13 @@ tu_pipeline_builder_parse_vertex_input(struct tu_pipeline_builder *builder, struct tu_cs vi_cs; tu_cs_begin_sub_stream(&pipeline->cs, - MAX_VERTEX_ATTRIBS * 7 + 2, &vi_cs); + TU6_EMIT_VERTEX_INPUT_MAX_DWORDS, &vi_cs); tu6_emit_vertex_input(pipeline, &vi_cs, vs, vi_info); pipeline->vi.state = tu_cs_end_draw_state(&pipeline->cs, &vi_cs); if (bs) { tu_cs_begin_sub_stream(&pipeline->cs, - MAX_VERTEX_ATTRIBS * 7 + 2, &vi_cs); + TU6_EMIT_VERTEX_INPUT_MAX_DWORDS, &vi_cs); tu6_emit_vertex_input(pipeline, &vi_cs, bs, vi_info); pipeline->vi.binning_state = tu_cs_end_draw_state(&pipeline->cs, &vi_cs);