v3dv: make sure we emit vertex attributes in location order

Graphics / Mesa 3D Graphics Library / Mesa - Iago Toral Quiroga [igalia.com] - 13 October 2020 21:21 UTC

The order in which we emit the attributes is relevant, since GL_SHADER_STATE_ATTRIBUTE_RECORD packets don't include an explicit attribute index. This means that we need to emit them in driver location order, since the compiler uses that location to compute attribute offsets in the VPM.

Fixes ~1300 CTS tests in: dEQP-VK.pipeline.vertex_input.multiple_attributes.out_of_order.*

Part-of:

a2538b25202 v3dv: make sure we emit vertex attributes in location order
src/broadcom/vulkan/v3dv_cmd_buffer.c | 18 +++++++++++++++---
src/broadcom/vulkan/v3dv_pipeline.c | 10 +++++-----
src/broadcom/vulkan/v3dv_private.h | 12 +++---------
3 files changed, 23 insertions(+), 17 deletions(-)

Upstream: cgit.freedesktop.org


  • Share