Fix stageMask (0x1) usage in binding_model and glsl tests
authorPaavo Pessi <paavo.pessi@siru.fi>
Fri, 24 Nov 2017 09:03:06 +0000 (11:03 +0200)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Thu, 30 Nov 2017 09:44:48 +0000 (04:44 -0500)
Pipeline barriers using PIPELINE_STAGE_TOP_OF_PIPE_BIT with nonzero
access mask were modified to use proper pipeline stage flags.

Memory barrier structure members were renamed to match the current
specification.

Affects:

dEQP-VK.binding_model.*
dEQP-VK.glsl.derivate.*.texture.*
dEQP-VK.glsl.discard.*_texture
dEQP-VK.glsl.texture_functions.*
dEQP-VK.glsl.texture_gather.*
dEQP-VK.glsl.builtin_var.fragdepth.*
dEQP-VK.glsl.builtin.*
dEQP-VK.glsl.opaque_type_indexing.*
dEQP-VK.glsl.atomic_operations.*

VK-GL-CTS issue: 806

Change-Id: Ia223039abed5c4b15ae004fbaa9fba1ebe92056e

external/vulkancts/modules/vulkan/binding_model/vktBindingShaderAccessTests.cpp
external/vulkancts/modules/vulkan/shaderexecutor/vktShaderExecutor.cpp
external/vulkancts/modules/vulkan/shaderrender/vktShaderRender.cpp
external/vulkancts/modules/vulkan/shaderrender/vktShaderRenderBuiltinVarTests.cpp

index 97285cf..b3932d7 100644 (file)
@@ -759,7 +759,7 @@ void SingleTargetRenderInstance::readRenderTarget (tcu::TextureLevel& dst)
                                                         0, (const vk::VkBufferMemoryBarrier*)DE_NULL,
                                                         1, &imageBarrier);
        m_vki.cmdCopyImageToBuffer(*cmd, *m_colorAttachmentImage, vk::VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, *buffer, 1, &copyRegion);
-       m_vki.cmdPipelineBarrier(*cmd, vk::VK_PIPELINE_STAGE_TRANSFER_BIT, vk::VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, (vk::VkDependencyFlags)0,
+       m_vki.cmdPipelineBarrier(*cmd, vk::VK_PIPELINE_STAGE_TRANSFER_BIT, vk::VK_PIPELINE_STAGE_HOST_BIT, (vk::VkDependencyFlags)0,
                                                         0, (const vk::VkMemoryBarrier*)DE_NULL,
                                                         1, &memoryBarrier,
                                                         0, (const vk::VkImageMemoryBarrier*)DE_NULL);
@@ -839,7 +839,7 @@ tcu::TestStatus SingleTargetRenderInstance::iterate (void)
                const deUint64                                                  infiniteTimeout         = ~(deUint64)0u;
 
                VK_CHECK(m_vki.beginCommandBuffer(*cmd, &cmdBufBeginInfo));
-               m_vki.cmdPipelineBarrier(*cmd, vk::VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, vk::VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, (vk::VkDependencyFlags)0,
+               m_vki.cmdPipelineBarrier(*cmd, vk::VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, vk::VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, (vk::VkDependencyFlags)0,
                                                                 0, (const vk::VkMemoryBarrier*)DE_NULL,
                                                                 0, (const vk::VkBufferMemoryBarrier*)DE_NULL,
                                                                 1, &imageBarrier);
@@ -1914,8 +1914,8 @@ vk::VkBufferMemoryBarrier ComputeInstanceResultBuffer::createResultBufferBarrier
        {
                vk::VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,
                DE_NULL,
-               vk::VK_ACCESS_SHADER_WRITE_BIT,                         // outputMask
-               vk::VK_ACCESS_HOST_READ_BIT,                            // inputMask
+               vk::VK_ACCESS_SHADER_WRITE_BIT,                         // srcAccessMask
+               vk::VK_ACCESS_HOST_READ_BIT,                            // dstAccessMask
                VK_QUEUE_FAMILY_IGNORED,                                        // srcQueueFamilyIndex
                VK_QUEUE_FAMILY_IGNORED,                                        // destQueueFamilyIndex
                buffer,                                                                         // buffer
@@ -2128,13 +2128,13 @@ void ComputeCommand::submitAndWait (deUint32 queueFamilyIndex, vk::VkQueue queue
        }
 
        if (m_numPreBarriers)
-               m_vki.cmdPipelineBarrier(*cmd, vk::VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, vk::VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, (vk::VkDependencyFlags)0,
+               m_vki.cmdPipelineBarrier(*cmd, vk::VK_PIPELINE_STAGE_HOST_BIT, vk::VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, (vk::VkDependencyFlags)0,
                                                                 0, (const vk::VkMemoryBarrier*)DE_NULL,
                                                                 m_numPreBarriers, m_preBarriers,
                                                                 0, (const vk::VkImageMemoryBarrier*)DE_NULL);
 
        m_vki.cmdDispatch(*cmd, m_numWorkGroups.x(), m_numWorkGroups.y(), m_numWorkGroups.z());
-       m_vki.cmdPipelineBarrier(*cmd, vk::VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, vk::VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, (vk::VkDependencyFlags)0,
+       m_vki.cmdPipelineBarrier(*cmd, vk::VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, vk::VK_PIPELINE_STAGE_HOST_BIT, (vk::VkDependencyFlags)0,
                                                         0, (const vk::VkMemoryBarrier*)DE_NULL,
                                                         m_numPostBarriers, m_postBarriers,
                                                         0, (const vk::VkImageMemoryBarrier*)DE_NULL);
@@ -2194,13 +2194,13 @@ void ComputeCommand::submitAndWait (deUint32 queueFamilyIndex, vk::VkQueue queue
        updateBuilder.updateWithPush(m_vki, *cmd, vk::VK_PIPELINE_BIND_POINT_COMPUTE, m_pipelineLayout, 0);
 
        if (m_numPreBarriers)
-               m_vki.cmdPipelineBarrier(*cmd, vk::VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, vk::VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, (vk::VkDependencyFlags)0,
+               m_vki.cmdPipelineBarrier(*cmd, vk::VK_PIPELINE_STAGE_HOST_BIT, vk::VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, (vk::VkDependencyFlags)0,
                                                                 0, (const vk::VkMemoryBarrier*)DE_NULL,
                                                                 m_numPreBarriers, m_preBarriers,
                                                                 0, (const vk::VkImageMemoryBarrier*)DE_NULL);
 
        m_vki.cmdDispatch(*cmd, m_numWorkGroups.x(), m_numWorkGroups.y(), m_numWorkGroups.z());
-       m_vki.cmdPipelineBarrier(*cmd, vk::VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, vk::VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, (vk::VkDependencyFlags)0,
+       m_vki.cmdPipelineBarrier(*cmd, vk::VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, vk::VK_PIPELINE_STAGE_HOST_BIT, (vk::VkDependencyFlags)0,
                                                         0, (const vk::VkMemoryBarrier*)DE_NULL,
                                                         m_numPostBarriers, m_postBarriers,
                                                         0, (const vk::VkImageMemoryBarrier*)DE_NULL);
@@ -2615,8 +2615,8 @@ tcu::TestStatus BufferComputeInstance::testResourceAccess (void)
                {
                        vk::VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,
                        DE_NULL,
-                       vk::VK_ACCESS_HOST_WRITE_BIT,                           // outputMask
-                       inputBit,                                                                       // inputMask
+                       vk::VK_ACCESS_HOST_WRITE_BIT,                           // srcAccessMask
+                       inputBit,                                                                       // dstAccessMask
                        VK_QUEUE_FAMILY_IGNORED,                                        // srcQueueFamilyIndex
                        VK_QUEUE_FAMILY_IGNORED,                                        // destQueueFamilyIndex
                        *bufferA,                                                                       // buffer
@@ -2626,8 +2626,8 @@ tcu::TestStatus BufferComputeInstance::testResourceAccess (void)
                {
                        vk::VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,
                        DE_NULL,
-                       vk::VK_ACCESS_HOST_WRITE_BIT,                           // outputMask
-                       inputBit,                                                                       // inputMask
+                       vk::VK_ACCESS_HOST_WRITE_BIT,                           // srcAccessMask
+                       inputBit,                                                                       // dstAccessMask
                        VK_QUEUE_FAMILY_IGNORED,                                        // srcQueueFamilyIndex
                        VK_QUEUE_FAMILY_IGNORED,                                        // destQueueFamilyIndex
                        *bufferB,                                                                       // buffer
@@ -3612,8 +3612,8 @@ void ImageInstanceImages::uploadImage (const vk::DeviceInterface&         vki,
        {
                vk::VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,
                DE_NULL,
-               vk::VK_ACCESS_HOST_WRITE_BIT,                                           // outputMask
-               vk::VK_ACCESS_TRANSFER_READ_BIT,                                        // inputMask
+               vk::VK_ACCESS_HOST_WRITE_BIT,                                           // srcAccessMask
+               vk::VK_ACCESS_TRANSFER_READ_BIT,                                        // dstAccessMask
                VK_QUEUE_FAMILY_IGNORED,                                                        // srcQueueFamilyIndex
                VK_QUEUE_FAMILY_IGNORED,                                                        // destQueueFamilyIndex
                *dataBuffer,                                                                            // buffer
@@ -3632,8 +3632,8 @@ void ImageInstanceImages::uploadImage (const vk::DeviceInterface&         vki,
        {
                vk::VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
                DE_NULL,
-               0u,                                                                                                     // outputMask
-               vk::VK_ACCESS_TRANSFER_WRITE_BIT,                                       // inputMask
+               0u,                                                                                                     // srcAccessMask
+               vk::VK_ACCESS_TRANSFER_WRITE_BIT,                                       // dstAccessMask
                vk::VK_IMAGE_LAYOUT_UNDEFINED,                                          // oldLayout
                vk::VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,                       // newLayout
                VK_QUEUE_FAMILY_IGNORED,                                                        // srcQueueFamilyIndex
@@ -3645,8 +3645,8 @@ void ImageInstanceImages::uploadImage (const vk::DeviceInterface&         vki,
        {
                vk::VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
                DE_NULL,
-               vk::VK_ACCESS_TRANSFER_WRITE_BIT,                                       // outputMask
-               vk::VK_ACCESS_SHADER_READ_BIT,                                          // inputMask
+               vk::VK_ACCESS_TRANSFER_WRITE_BIT,                                       // srcAccessMask
+               vk::VK_ACCESS_SHADER_READ_BIT,                                          // dstAccessMask
                vk::VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,                       // oldLayout
                layout,                                                                                         // newLayout
                VK_QUEUE_FAMILY_IGNORED,                                                        // srcQueueFamilyIndex
@@ -3681,12 +3681,12 @@ void ImageInstanceImages::uploadImage (const vk::DeviceInterface&               vki,
 
        // record command buffer
        VK_CHECK(vki.beginCommandBuffer(*cmd, &cmdBufBeginInfo));
-       vki.cmdPipelineBarrier(*cmd, vk::VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, vk::VK_PIPELINE_STAGE_TRANSFER_BIT, (vk::VkDependencyFlags)0,
+       vki.cmdPipelineBarrier(*cmd, vk::VK_PIPELINE_STAGE_HOST_BIT, vk::VK_PIPELINE_STAGE_TRANSFER_BIT, (vk::VkDependencyFlags)0,
                                                   0, (const vk::VkMemoryBarrier*)DE_NULL,
                                                   1, &preMemoryBarrier,
                                                   1, &preImageBarrier);
        vki.cmdCopyBufferToImage(*cmd, *dataBuffer, image, vk::VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, (deUint32)copySlices.size(), &copySlices[0]);
-       vki.cmdPipelineBarrier(*cmd, vk::VK_PIPELINE_STAGE_TRANSFER_BIT, vk::VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, (vk::VkDependencyFlags)0,
+       vki.cmdPipelineBarrier(*cmd, vk::VK_PIPELINE_STAGE_TRANSFER_BIT, vk::VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT, (vk::VkDependencyFlags)0,
                                                   0, (const vk::VkMemoryBarrier*)DE_NULL,
                                                   0, (const vk::VkBufferMemoryBarrier*)DE_NULL,
                                                   1, &postImageBarrier);
@@ -6794,8 +6794,8 @@ vk::VkBufferMemoryBarrier TexelBufferInstanceBuffers::createBarrier (vk::VkDescr
        {
                vk::VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,
                DE_NULL,
-               vk::VK_ACCESS_HOST_WRITE_BIT,                   // outputMask
-               inputBit,                                                               // inputMask
+               vk::VK_ACCESS_HOST_WRITE_BIT,                   // srcAccessMask
+               inputBit,                                                               // dstAccessMask
                VK_QUEUE_FAMILY_IGNORED,                                // srcQueueFamilyIndex
                VK_QUEUE_FAMILY_IGNORED,                                // destQueueFamilyIndex
                buffer  ,                                                               // buffer
index 7fdf498..b0f316e 100644 (file)
@@ -1216,7 +1216,7 @@ void FragmentOutExecutor::execute (int numValues, const void* const* inputs, voi
 
                VK_CHECK(vk.beginCommandBuffer(*cmdBuffer, &cmdBufferBeginInfo));
 
-               vk.cmdPipelineBarrier(*cmdBuffer, vk::VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT, vk::VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, (VkDependencyFlags)0,
+               vk.cmdPipelineBarrier(*cmdBuffer, vk::VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, vk::VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, (VkDependencyFlags)0,
                                                          0, (const VkMemoryBarrier*)DE_NULL,
                                                          0, (const VkBufferMemoryBarrier*)DE_NULL,
                                                          (deUint32)colorImagePreRenderBarriers.size(), colorImagePreRenderBarriers.empty() ? DE_NULL : &colorImagePreRenderBarriers[0]);
@@ -1247,7 +1247,7 @@ void FragmentOutExecutor::execute (int numValues, const void* const* inputs, voi
                vk.cmdDraw(*cmdBuffer, (deUint32)positions.size(), 1u, 0u, 0u);
 
                vk.cmdEndRenderPass(*cmdBuffer);
-               vk.cmdPipelineBarrier(*cmdBuffer, vk::VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT, vk::VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, (VkDependencyFlags)0,
+               vk.cmdPipelineBarrier(*cmdBuffer, vk::VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, vk::VK_PIPELINE_STAGE_TRANSFER_BIT, (VkDependencyFlags)0,
                                                          0, (const VkMemoryBarrier*)DE_NULL,
                                                          0, (const VkBufferMemoryBarrier*)DE_NULL,
                                                          (deUint32)colorImagePostRenderBarriers.size(), colorImagePostRenderBarriers.empty() ? DE_NULL : &colorImagePostRenderBarriers[0]);
index e38496d..1f81021 100644 (file)
@@ -1206,7 +1206,7 @@ void ShaderRenderCaseInstance::uploadImage (const tcu::TextureFormat&                     texForma
        VK_CHECK(vk.beginCommandBuffer(*cmdBuffer, &cmdBufferBeginInfo));
        vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_HOST_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 1, &preBufferBarrier, 1, &preImageBarrier);
        vk.cmdCopyBufferToImage(*cmdBuffer, *buffer, destImage, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, (deUint32)copyRegions.size(), copyRegions.data());
-       vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 0, (const VkBufferMemoryBarrier*)DE_NULL, 1, &postImageBarrier);
+       vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 0, (const VkBufferMemoryBarrier*)DE_NULL, 1, &postImageBarrier);
        VK_CHECK(vk.endCommandBuffer(*cmdBuffer));
 
        const VkSubmitInfo submitInfo =
@@ -1322,7 +1322,7 @@ void ShaderRenderCaseInstance::clearImage (const tcu::Sampler&                                    refSampler,
        {
                vk.cmdClearDepthStencilImage(*cmdBuffer, destImage, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, &clearValue.depthStencil, 1, &clearRange);
        }
-       vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 0, (const VkBufferMemoryBarrier*)DE_NULL, 1, &postImageBarrier);
+       vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 0, (const VkBufferMemoryBarrier*)DE_NULL, 1, &postImageBarrier);
        VK_CHECK(vk.endCommandBuffer(*cmdBuffer));
 
        const VkSubmitInfo submitInfo =
@@ -1814,7 +1814,7 @@ void ShaderRenderCaseInstance::uploadSparseImage (const tcu::TextureFormat&               tex
        VK_CHECK(vk.beginCommandBuffer(*cmdBuffer, &cmdBufferBeginInfo));
        vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_HOST_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 1, &preBufferBarrier, 1, &preImageBarrier);
        vk.cmdCopyBufferToImage(*cmdBuffer, *buffer, sparseImage, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, (deUint32)copyRegions.size(), copyRegions.data());
-       vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 0, (const VkBufferMemoryBarrier*)DE_NULL, 1, &postImageBarrier);
+       vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 0, (const VkBufferMemoryBarrier*)DE_NULL, 1, &postImageBarrier);
        VK_CHECK(vk.endCommandBuffer(*cmdBuffer));
 
        const VkPipelineStageFlags pipelineStageFlags = VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT;
index 8ff7b9c..fa8a29f 100644 (file)
@@ -865,7 +865,7 @@ TestStatus BuiltinFragDepthCaseInstance::iterate (void)
                };
 
                VK_CHECK(vk.beginCommandBuffer(*transferCmdBuffer, &cmdBufferBeginInfo));
-               vk.cmdPipelineBarrier(*transferCmdBuffer, VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
+               vk.cmdPipelineBarrier(*transferCmdBuffer, VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT | VK_PIPELINE_STAGE_HOST_BIT,
                                (VkDependencyFlags)0,
                                0, (const VkMemoryBarrier*)DE_NULL,
                                0, (const VkBufferMemoryBarrier*)DE_NULL,