KHR-GL45.vertex_attrib_binding.basic-inputL-case1 fails on Haswell:
Data is: 0 0 6 0.0078125, data should be: 0 0 0 0, index is: 6
Antia fixed this for Gen8+ here:
Presumably we need to backport something similar to the Gen7/7.5 code...
Andrés sent a patch to fix this bug: "i965: perform 2 uploads with dual slot *64*PASSTHRU formats on gen<8"
Fixed in master with:
Author: Andres Gomez <firstname.lastname@example.org>
Date: Mon Jan 29 18:25:30 2018 +0200
i965: perform 2 uploads with dual slot *64*PASSTHRU formats on gen<8
The emission of vertex attributes corresponding to dvec3 and dvec4
vertex shader input variables was not correct when the <size> passed
to the VertexAttribL* commands was <= 2.
In 61a8a55f557 ("i965/gen8: Fix vertex attrib upload for dvec3/4
shader inputs"), for gen8+ we needed to determine if the attrib was
dual slot to emit 128 or 256-bit, independently of the VAO size.
Similarly, for gen < 8 we also need to determine whether the attrib is
dual slot to force the emission of 256-bits through 2 uploads.
Additionally, we make use of the ISL_FORMAT_R32_FLOAT format in this
second upload to fill these unspecified components with zeros, as we
also do for gen8+.
Fixes the following test on Haswell:
v2: Added more inline comments to explain why we are using
ISL_FORMAT_R32_FLOAT and its consequences, as requested by
Alejandro and Antía.
Fixes: 75968a668e4 ("i965/gen7: expose OpenGL 4.2 on Haswell when
Cc: Alejandro Piñeiro <email@example.com>
Cc: Juan A. Suarez Romero <firstname.lastname@example.org>
Cc: Antia Puentes <email@example.com>
Cc: Rafael Antognolli <firstname.lastname@example.org>
Cc: Kenneth Graunke <email@example.com>
Signed-off-by: Andres Gomez <firstname.lastname@example.org>
Reviewed-by: Alejandro Piñeiro <email@example.com>
Reviewed-by: Antia Puentes <firstname.lastname@example.org>
Reviewed-by: Rafael Antognolli <email@example.com>
Reviewed-by: Kenneth Graunke <firstname.lastname@example.org>