I have problem with vkcmdfillbuffer and vkcmdcopyquerypoolresults. The first runs after vkcmdcopyquerypoolresults. I made barrier but still doesnt works.
vkCmdFillBuffer(info.cmd, query_result_buf, 0, 2 * sizeof(uint64_t), 1u);
VkBufferMemoryBarrier barrier = {};
barrier.sType = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER;
barrier.pNext = NULL;
barrier.srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT;
barrier.dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT;
barrier.srcQueueFamilyIndex = 0;
barrier.dstQueueFamilyIndex = 0;
barrier.buffer = query_result_buf;
barrier.offset = 0;
barrier.size = 2 * sizeof(uint64_t);
vkCmdPipelineBarrier(info.cmd, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, 0, 0, NULL, 1, &barrier, 0, NULL);
vkCmdCopyQueryPoolResults(info.cmd, query_pool, 0 /*firstQuery*/, 1 /*queryCount*/, query_result_buf, 0 /*dstOffset*/,
sizeof(uint64_t) /*stride*/, VK_QUERY_RESULT_64_BIT | VK_QUERY_RESULT_WAIT_BIT);