<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>