Add missing flushes for indirect draws
authorGary Sweet <gsweet@broadcom.com>
Thu, 16 Mar 2017 13:26:53 +0000 (13:26 +0000)
committerGary Sweet <gsweet@broadcom.com>
Thu, 16 Mar 2017 13:26:53 +0000 (13:26 +0000)
Buffers were being mapped and written, but not flushed
before use. This affected the indirect draw tests when running
with a non-coherent heap.

Affects:

dEQP-VK.draw.indirect_draw.*

Components: Vulkan

VK-GL-CTS issue: 210

Change-Id: Ie8920bea727419a1da22b8e2d9babcca2c6593fe

external/vulkancts/modules/vulkan/draw/vktDrawIndirectTest.cpp

index 5f3a4d1..56347ca 100644 (file)
@@ -256,7 +256,7 @@ tcu::TestStatus IndirectDraw::iterate (void)
                                                           m_context.getDevice(),
                                                           m_indirectBuffer->getBoundMemory().getMemory(),
                                                           m_indirectBuffer->getBoundMemory().getOffset(),
-                                                          dataSize);
+                                                          dataSize + m_offsetInBuffer);
 
        m_vk.cmdBindPipeline(*m_cmdBuffer, vk::VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipeline);
        if (m_isMultiDrawEnabled && m_drawCount <= m_drawIndirectMaxCount)
@@ -439,7 +439,7 @@ tcu::TestStatus IndirectDrawInstanced<FirstInstanceSupport>::iterate (void)
                                                           m_context.getDevice(),
                                                           m_indirectBuffer->getBoundMemory().getMemory(),
                                                           m_indirectBuffer->getBoundMemory().getOffset(),
-                                                          dataSize);
+                                                          dataSize + m_offsetInBuffer);
 
        m_vk.cmdBindPipeline(*m_cmdBuffer, vk::VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipeline);
        if (m_isMultiDrawEnabled && m_drawCount <= m_drawIndirectMaxCount)