<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [anv] vkCmdCopyBuffer() and vkCmdCopyQueryPoolResults() write-after-write hazard"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=108894#c7">Comment # 7</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [anv] vkCmdCopyBuffer() and vkCmdCopyQueryPoolResults() write-after-write hazard"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=108894">bug 108894</a>
              from <span class="vcard"><a class="email" href="mailto:joseph.kucia@gmail.com" title="Józef Kucia <joseph.kucia@gmail.com>"> <span class="fn">Józef Kucia</span></a>
</span></b>
        <pre>(In reply to Lionel Landwerlin from <a href="show_bug.cgi?id=108894#c5">comment #5</a>)
<span class="quote">> I'm unfamiliar with d3d, what should I add to insert a barrier?</span >

transition_resource_state(command_list, readback_buffer,                    
   D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_COPY_DEST);    

produces the following Vulkan barrier:

vkCmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask,
dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount,
pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers) returns
void:
    commandBuffer:                  VkCommandBuffer = 0x55a1a81b7430
    srcStageMask:                   VkPipelineStageFlags = 4096
(VK_PIPELINE_STAGE_TRANSFER_BIT)
    dstStageMask:                   VkPipelineStageFlags = 4096
(VK_PIPELINE_STAGE_TRANSFER_BIT)
    dependencyFlags:                VkDependencyFlags = 0
    memoryBarrierCount:             uint32_t = 0
    pMemoryBarriers:                const VkMemoryBarrier* = NULL
    bufferMemoryBarrierCount:       uint32_t = 1
    pBufferMemoryBarriers:          const VkBufferMemoryBarrier* =
0x7fffeabcdd00
        pBufferMemoryBarriers[0]:       const VkBufferMemoryBarrier =
0x7fffeabcdd00:
            sType:                          VkStructureType =
VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER (44)
            pNext:                          const void* = NULL
            srcAccessMask:                  VkAccessFlags = 4096
(VK_ACCESS_TRANSFER_WRITE_BIT)
            dstAccessMask:                  VkAccessFlags = 4096
(VK_ACCESS_TRANSFER_WRITE_BIT)
            srcQueueFamilyIndex:            uint32_t = 4294967295
            dstQueueFamilyIndex:            uint32_t = 4294967295
            buffer:                         VkBuffer = 0x55a1a80f6fc0
            offset:                         VkDeviceSize = 0
            size:                           VkDeviceSize = 18446744073709551615
    imageMemoryBarrierCount:        uint32_t = 0
    pImageMemoryBarriers:           const VkImageMemoryBarrier* = NULL


with this change the test fails intermittently on Anv.</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
          <li>You are the QA Contact for the bug.</li>
      </ul>
    </body>
</html>