From 6a16b6a74c3617205367ab1126b0d9150ca8dfe3 Mon Sep 17 00:00:00 2001 From: Danylo Piliaiev Date: Tue, 5 Oct 2021 14:25:52 +0300 Subject: [PATCH] turnip: fix vbs emission when there are holes in bindings Otherwise we read garbage for bindings with value above vertexBindingDescriptionCount. Fixes vkd3d test "test_append_aligned_element" Signed-off-by: Danylo Piliaiev Part-of: --- src/freedreno/vulkan/tu_pipeline.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/freedreno/vulkan/tu_pipeline.c b/src/freedreno/vulkan/tu_pipeline.c index 4b9b7bb..d490f5c 100644 --- a/src/freedreno/vulkan/tu_pipeline.c +++ b/src/freedreno/vulkan/tu_pipeline.c @@ -2650,7 +2650,11 @@ tu_pipeline_builder_parse_vertex_input(struct tu_pipeline_builder *builder, const struct ir3_shader_variant *vs = builder->variants[MESA_SHADER_VERTEX]; const struct ir3_shader_variant *bs = builder->binning_variant; - pipeline->num_vbs = vi_info->vertexBindingDescriptionCount; + /* Bindings may contain holes */ + for (unsigned i = 0; i < vi_info->vertexBindingDescriptionCount; i++) { + pipeline->num_vbs = + MAX2(pipeline->num_vbs, vi_info->pVertexBindingDescriptions[i].binding + 1); + } struct tu_cs vi_cs; tu_cs_begin_sub_stream(&pipeline->cs, -- 2.7.4