Fix modifier tests - Add Invalidate memory before host read.
authorMatthew Netsch <quic_mnetsch@quicinc.com>
Thu, 8 Sep 2022 14:00:27 +0000 (07:00 -0700)
committerMatthew Netsch <quic_mnetsch@quicinc.com>
Thu, 15 Sep 2022 16:43:32 +0000 (16:43 +0000)
After performing copyImagetoBuffer buffers no invalidation was given
before reading from host. Add the invalidate operation for buffer
before reading.

Components: Vulkan
VK-GL-CTS Issue: 3929

Affected tests:
dEQP-VK.transform_feedback.simple.*

Change-Id: I57dd4d65e9894e85f7d0c5adc4682f45e046bc02

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

index 0c460b2..106437c 100644 (file)
@@ -1377,6 +1377,8 @@ tcu::TestStatus TransformFeedbackStreamsTestInstance::iterate (void)
                vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, 0u, 0u, DE_NULL, 0u, DE_NULL, 1u, &preCopyBarrier);
                vk.cmdCopyImageToBuffer(*cmdBuffer, *colorImage, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, *colorBuffer, 1u, &region);
                vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_HOST_BIT, 0u, 0u, DE_NULL, 1u, &postCopyBarrier, DE_NULL, 0u);
+
+               invalidateAlloc(vk, device, *colorBufferAlloc);
        }
        endCommandBuffer(vk, *cmdBuffer);
        submitCommandsAndWait(vk, device, queue, *cmdBuffer);
@@ -1522,6 +1524,8 @@ tcu::TestStatus TransformFeedbackIndirectDrawTestInstance::iterate (void)
                vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, 0u, 0u, DE_NULL, 0u, DE_NULL, 1u, &preCopyBarrier);
                vk.cmdCopyImageToBuffer(*cmdBuffer, *colorImage, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, *colorBuffer, 1u, &region);
                vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_HOST_BIT, 0u, 0u, DE_NULL, 1u, &postCopyBarrier, DE_NULL, 0u);
+
+               invalidateAlloc(vk, device, *colorBufferAlloc);
        }
        endCommandBuffer(vk, *cmdBuffer);
        submitCommandsAndWait(vk, device, queue, *cmdBuffer);