Fix out-of-bounds vertex buffer writes in PrimitiveGeneratedQuery tests
authorRicardo Garcia <rgarcia@igalia.com>
Wed, 21 Sep 2022 15:01:14 +0000 (17:01 +0200)
committerMatthew Netsch <quic_mnetsch@quicinc.com>
Thu, 13 Oct 2022 21:38:31 +0000 (21:38 +0000)
Wrong index usage was leaving a gap in the vertex buffer and writing out
of bounds.

Affects:
dEQP-VK.transform_feedback.primitives_generated_query.*

Components: Vulkan
VK-GL-CTS issue: 3965
VK-GL-CTS issue: 3966

Change-Id: I2d656797506031713187a867902c05b1a363b450

external/vulkancts/modules/vulkan/transform_feedback/vktPrimitivesGeneratedQueryTests.cpp

index 3d751cf..1fbd3b5 100644 (file)
@@ -632,11 +632,11 @@ void PrimitivesGeneratedQueryTestInstance::fillVertexBuffer(tcu::Vec2* vertices,
                        {
                                if (prim % 2 == 0)
                                {
-                                       vertices[2 + prim] = tcu::Vec2(-1.0f + 2.0f * (float)prim * step,  1.0f);
+                                       vertices[1 + prim] = tcu::Vec2(-1.0f + 2.0f * (float)prim * step,  1.0f);
                                }
                                else
                                {
-                                       vertices[2 + prim] = tcu::Vec2(-1.0f + 2.0f * (float)prim * step, -1.0f);
+                                       vertices[1 + prim] = tcu::Vec2(-1.0f + 2.0f * (float)prim * step, -1.0f);
                                }
                        }
                        break;
@@ -691,15 +691,15 @@ void PrimitivesGeneratedQueryTestInstance::fillVertexBuffer(tcu::Vec2* vertices,
                        {
                                if (prim % 2 == 0)
                                {
-                                       vertices[3 + prim] = tcu::Vec2(-1.0f + 2.0f * (float)prim * step,  1.0f);
+                                       vertices[2 + prim] = tcu::Vec2(-1.0f + 2.0f * (float)prim * step,  1.0f);
                                }
                                else
                                {
-                                       vertices[3 + prim] = tcu::Vec2(-1.0f + 2.0f * (float)prim * step, -1.0f);
+                                       vertices[2 + prim] = tcu::Vec2(-1.0f + 2.0f * (float)prim * step, -1.0f);
                                }
                        }
 
-                       vertices[3 + primitivesGenerated] = tcu::Vec2(1.0f, 0.0f);
+                       vertices[2 + primitivesGenerated] = tcu::Vec2(1.0f, 0.0f);
 
                        break;
                }