When initializing the ANV pipeline, one of the tasks is checking which vertex inputs are enabled. This is done by checking if the enabled bits in inputs_read.
But the mask to use is computed doing `(1 << (VERT_ATTRIB_GENERIC0 + desc->location))`. The problem here is that if location is 15 or greater, the sum is 32 or greater. But C is handling 1 as a 32-bit integer, which means the displaced bit is out of range and thus the full value is 0. Rather, use BITFIELD64_BIT() to compute the mask. This fixes: dEQP-VK.pipeline.vertex_input.max_attributes.16_attributes.binding_one_to_one.interleaved Signed-off-by: Juan A. Suarez Romero <jasua...@igalia.com> Cc: mesa-sta...@lists.freedesktop.org --- src/intel/vulkan/anv_pipeline.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_pipeline.c index 5494a6e..edbe2e7 100644 --- a/src/intel/vulkan/anv_pipeline.c +++ b/src/intel/vulkan/anv_pipeline.c @@ -1330,7 +1330,7 @@ anv_pipeline_init(struct anv_pipeline *pipeline, const VkVertexInputAttributeDescription *desc = &vi_info->pVertexAttributeDescriptions[i]; - if (inputs_read & (1 << (VERT_ATTRIB_GENERIC0 + desc->location))) + if (inputs_read & BITFIELD64_BIT(VERT_ATTRIB_GENERIC0 + desc->location)) pipeline->vb_used |= 1 << desc->binding; } -- 2.9.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev