Fix instance-rate vertex attribute verification
authorMaciej Jesionowski <maciej.jesionowski@amd.com>
Thu, 5 Oct 2017 12:40:53 +0000 (14:40 +0200)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Fri, 6 Oct 2017 21:25:37 +0000 (17:25 -0400)
There was a bug in the test where it expected instance-rate vertex
attribute data at incorrect offsets in the input buffer. As a result
these attributes were always treated as out of bounds.

Affects: dEQP-VK.robustness.vertex_access.*

VK-GL-CTS issue: 752
Components: Vulkan

Change-Id: Ied900ab4174d4e8c25fd07c95e90d3c8228d5a26

external/vulkancts/modules/vulkan/robustness/vktRobustnessVertexAccessTests.cpp

index 0f15ba1..a0c33f4 100644 (file)
@@ -129,7 +129,7 @@ public:
                                                                                                                                                                 deUint32                                               numInstanceValues,
                                                                                                                                                                 deUint32                                               numVertices,
                                                                                                                                                                 deUint32                                               numInstances,
-                                                                                                                                                                const std::vector<deUint32>    indices);
+                                                                                                                                                                const std::vector<deUint32>&   indices);
 
        virtual                                                         ~VertexAccessInstance                                   (void) {}
        virtual tcu::TestStatus                         iterate                                                                 (void);
@@ -420,14 +420,14 @@ TestInstance* DrawIndexedAccessTest::createInstance (Context& context) const
 
 // VertexAccessInstance
 
-VertexAccessInstance::VertexAccessInstance (Context&                                   context,
-                                                                                       Move<VkDevice>                          device,
-                                                                                       VkFormat                                        inputFormat,
-                                                                                       deUint32                                        numVertexValues,
-                                                                                       deUint32                                        numInstanceValues,
-                                                                                       deUint32                                        numVertices,
-                                                                                       deUint32                                        numInstances,
-                                                                                       const std::vector<deUint32>     indices)
+VertexAccessInstance::VertexAccessInstance (Context&                                           context,
+                                                                                       Move<VkDevice>                                  device,
+                                                                                       VkFormat                                                inputFormat,
+                                                                                       deUint32                                                numVertexValues,
+                                                                                       deUint32                                                numInstanceValues,
+                                                                                       deUint32                                                numVertices,
+                                                                                       deUint32                                                numInstances,
+                                                                                       const std::vector<deUint32>&    indices)
 
        : vkt::TestInstance                     (context)
        , m_device                                      (device)
@@ -792,7 +792,7 @@ bool VertexAccessInstance::verifyResult (void)
                        numInBufferValues       = m_numInstanceValues;
                        inBufferPtr                     = m_instanceRateBufferAlloc->getHostPtr();
                        inBufferAllocSize       = m_instanceRateBufferAllocSize;
-                       inBufferValueIndex      = (getIndex(elementIndex) * numChannels) + (valueNdx % numScalarsPerVertex) - (2 * numChannels);
+                       inBufferValueIndex      = (elementIndex * numChannels) + (valueNdx % numScalarsPerVertex) - (2 * numChannels);
                }
                else
                {