mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-04 00:50:40 +00:00
Extend VK_Resource_Usage test: multiple usages, desc buffer copying
- Bind the same resource as the Indirect Buffer and the Index Buffer - Defines the resource usage when an indirect command binds the same resource for multiple usags i.e. Indirect + Index Buffer - Descriptor buffer contents set by earlier command buffer than usage in a single submit - Verifies the resource usage submit replay is correct (one command buffer at a time)
This commit is contained in:
@@ -292,13 +292,13 @@ RD_TEST(VK_Resource_Usage, VulkanGraphicsTest)
|
||||
vkGetDescriptorEXT(device, &get, DescSize(type), dst);
|
||||
}
|
||||
|
||||
void BufferUpload(AllocatedBuffer & buffer, void *data, size_t countBytes)
|
||||
void BufferUpload(AllocatedBuffer & buffer, void *data, size_t countBytes, size_t offset = 0)
|
||||
{
|
||||
VmaAllocationInfo alloc_info;
|
||||
vmaGetAllocationInfo(buffer.allocator, buffer.alloc, &alloc_info);
|
||||
uint16_t *dst = NULL;
|
||||
vkMapMemory(device, alloc_info.deviceMemory, alloc_info.offset, VK_WHOLE_SIZE, 0, (void **)&dst);
|
||||
memcpy(dst, data, countBytes);
|
||||
memcpy(dst + offset, data, countBytes);
|
||||
vkUnmapMemory(device, alloc_info.deviceMemory);
|
||||
}
|
||||
|
||||
@@ -584,9 +584,11 @@ RD_TEST(VK_Resource_Usage, VulkanGraphicsTest)
|
||||
this,
|
||||
vkh::BufferCreateInfo(indirectDataSize, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT |
|
||||
VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT |
|
||||
VK_BUFFER_USAGE_INDEX_BUFFER_BIT |
|
||||
VK_BUFFER_USAGE_TRANSFER_DST_BIT),
|
||||
VmaAllocationCreateInfo({0, VMA_MEMORY_USAGE_GPU_ONLY}));
|
||||
VmaAllocationCreateInfo({0, VMA_MEMORY_USAGE_CPU_TO_GPU}));
|
||||
setName(indirectData.buffer, "Indirect Data");
|
||||
BufferUpload(indirectData, (void *)indices, sizeof(indices), 1024);
|
||||
|
||||
AllocatedBuffer barrierBuffer(this,
|
||||
vkh::BufferCreateInfo(1024, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT),
|
||||
@@ -611,16 +613,25 @@ RD_TEST(VK_Resource_Usage, VulkanGraphicsTest)
|
||||
|
||||
VkDescriptorBufferBindingInfoEXT descBuffBind = {};
|
||||
AllocatedBuffer descBuf;
|
||||
AllocatedBuffer descBackupBuf;
|
||||
if(descBuffer)
|
||||
{
|
||||
descBuf = AllocatedBuffer(
|
||||
this,
|
||||
vkh::BufferCreateInfo(0x1000, VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR |
|
||||
VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT |
|
||||
VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT),
|
||||
VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT |
|
||||
VK_BUFFER_USAGE_TRANSFER_SRC_BIT |
|
||||
VK_BUFFER_USAGE_TRANSFER_DST_BIT),
|
||||
VmaAllocationCreateInfo({0, VMA_MEMORY_USAGE_CPU_TO_GPU}));
|
||||
|
||||
setName(descBuf.buffer, "Descriptor Buffer");
|
||||
descBackupBuf =
|
||||
AllocatedBuffer(this,
|
||||
vkh::BufferCreateInfo(0x1000, VK_BUFFER_USAGE_TRANSFER_SRC_BIT |
|
||||
VK_BUFFER_USAGE_TRANSFER_DST_BIT),
|
||||
VmaAllocationCreateInfo({0, VMA_MEMORY_USAGE_GPU_ONLY}));
|
||||
|
||||
setName(descBackupBuf.buffer, "Descriptor Backup Buffer");
|
||||
VmaAllocationInfo alloc_info;
|
||||
vmaGetAllocationInfo(descBuf.allocator, descBuf.alloc, &alloc_info);
|
||||
byte *descBufMem = NULL;
|
||||
@@ -1150,6 +1161,12 @@ RD_TEST(VK_Resource_Usage, VulkanGraphicsTest)
|
||||
vkCmdDrawIndexedIndirect(cmd, indirectData.buffer, offset, countDrawIndexed,
|
||||
strideDrawIndexed);
|
||||
NextTest();
|
||||
|
||||
vkCmdSetViewport(cmd, 0, 1, &viewPort);
|
||||
vkCmdBindIndexBuffer(cmd, indirectData.buffer, 1024, VK_INDEX_TYPE_UINT32);
|
||||
vkCmdDrawIndexedIndirect(cmd, indirectData.buffer, offset, 1, strideDrawIndexed);
|
||||
vkCmdBindIndexBuffer(cmd, ib.buffer, 0, VK_INDEX_TYPE_UINT32);
|
||||
NextTest();
|
||||
offset += countDrawIndexed * strideDrawIndexed;
|
||||
|
||||
if(draw_indirect_count)
|
||||
@@ -1236,9 +1253,51 @@ RD_TEST(VK_Resource_Usage, VulkanGraphicsTest)
|
||||
popMarker(cmd);
|
||||
}
|
||||
|
||||
VkCommandBuffer backupDescBufCmd = VK_NULL_HANDLE;
|
||||
VkCommandBuffer restoreDescBufCmd = VK_NULL_HANDLE;
|
||||
std::vector<VkCommandBuffer> cmds;
|
||||
|
||||
// Descriptor Buffer
|
||||
if(descBuffer)
|
||||
{
|
||||
VkBufferCopy copyRegion;
|
||||
copyRegion.srcOffset = 0;
|
||||
copyRegion.dstOffset = 0;
|
||||
copyRegion.size = 0x1000;
|
||||
|
||||
backupDescBufCmd = GetCommandBuffer();
|
||||
vkBeginCommandBuffer(backupDescBufCmd, vkh::CommandBufferBeginInfo());
|
||||
vkh::cmdPipelineBarrier(
|
||||
backupDescBufCmd, {},
|
||||
{
|
||||
vkh::BufferMemoryBarrier(VK_ACCESS_TRANSFER_READ_BIT, VK_ACCESS_TRANSFER_READ_BIT,
|
||||
descBuf.buffer),
|
||||
vkh::BufferMemoryBarrier(VK_ACCESS_TRANSFER_WRITE_BIT, VK_ACCESS_TRANSFER_WRITE_BIT,
|
||||
descBackupBuf.buffer),
|
||||
});
|
||||
vkCmdCopyBuffer(backupDescBufCmd, descBuf.buffer, descBackupBuf.buffer, 1, ©Region);
|
||||
vkh::cmdPipelineBarrier(
|
||||
backupDescBufCmd, {},
|
||||
{
|
||||
vkh::BufferMemoryBarrier(VK_ACCESS_TRANSFER_WRITE_BIT, VK_ACCESS_TRANSFER_WRITE_BIT,
|
||||
descBuf.buffer),
|
||||
});
|
||||
vkCmdFillBuffer(backupDescBufCmd, descBuf.buffer, 0, 0x1000, 0);
|
||||
vkEndCommandBuffer(backupDescBufCmd);
|
||||
|
||||
restoreDescBufCmd = GetCommandBuffer();
|
||||
vkBeginCommandBuffer(restoreDescBufCmd, vkh::CommandBufferBeginInfo());
|
||||
vkh::cmdPipelineBarrier(
|
||||
restoreDescBufCmd, {},
|
||||
{
|
||||
vkh::BufferMemoryBarrier(VK_ACCESS_TRANSFER_READ_BIT, VK_ACCESS_TRANSFER_READ_BIT,
|
||||
descBackupBuf.buffer),
|
||||
vkh::BufferMemoryBarrier(VK_ACCESS_TRANSFER_WRITE_BIT, VK_ACCESS_TRANSFER_WRITE_BIT,
|
||||
descBuf.buffer),
|
||||
});
|
||||
vkCmdCopyBuffer(restoreDescBufCmd, descBackupBuf.buffer, descBuf.buffer, 1, ©Region);
|
||||
vkEndCommandBuffer(restoreDescBufCmd);
|
||||
|
||||
pushMarker(cmd, "Descriptor Buffer");
|
||||
vkCmdSetScissor(cmd, 0, 1, &mainWindow->scissor);
|
||||
vkh::cmdBindVertexBuffers(cmd, 0, {vb.buffer}, {0});
|
||||
@@ -1275,17 +1334,20 @@ RD_TEST(VK_Resource_Usage, VulkanGraphicsTest)
|
||||
vkCmdDispatch(cmd, 1, 1, 1);
|
||||
|
||||
popMarker(cmd);
|
||||
cmds.push_back(backupDescBufCmd);
|
||||
cmds.push_back(restoreDescBufCmd);
|
||||
}
|
||||
|
||||
FinishUsingBackbuffer(cmd, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_GENERAL);
|
||||
|
||||
vkEndCommandBuffer(cmd);
|
||||
cmds.push_back(cmd);
|
||||
|
||||
Submit(1, 3, {cmd});
|
||||
Submit(1, 3, cmds);
|
||||
|
||||
std::vector<VkCommandBuffer> cmds;
|
||||
cmds.push_back(barrierCmd);
|
||||
VkSubmitInfo submit = vkh::SubmitInfo(cmds);
|
||||
std::vector<VkCommandBuffer> cmds2;
|
||||
cmds2.push_back(barrierCmd);
|
||||
VkSubmitInfo submit = vkh::SubmitInfo(cmds2);
|
||||
for(uint32_t i = 0; i < 10; ++i)
|
||||
{
|
||||
vkWaitForFences(device, 1, &barrerCmdSubmitFence, VK_TRUE, UINT64_MAX);
|
||||
|
||||
@@ -43,7 +43,9 @@ class VK_Resource_Usage(rdtest.TestCase):
|
||||
|
||||
countDrawIndirectCount = 30 if drawIndirectCount else 0
|
||||
countNested = 39 if nestedSecondaries else 0
|
||||
countDescBufferCopy = 10 if descBuffer else 0
|
||||
countDescBuffer = 21 if descBuffer else 0
|
||||
countDescBuffer += countDescBufferCopy
|
||||
|
||||
action = self.find_action("Draw")
|
||||
self.controller.SetFrameEvent(action.eventId, False)
|
||||
@@ -96,24 +98,25 @@ class VK_Resource_Usage(rdtest.TestCase):
|
||||
(207,rd.ResourceUsage.ColorTarget),
|
||||
(212,rd.ResourceUsage.ColorTarget),
|
||||
(213,rd.ResourceUsage.ColorTarget),
|
||||
(214,rd.ResourceUsage.ColorTarget)]
|
||||
(214,rd.ResourceUsage.ColorTarget),
|
||||
(219,rd.ResourceUsage.ColorTarget)]
|
||||
if drawIndirectCount:
|
||||
expectedUsage += [
|
||||
(235,rd.ResourceUsage.ColorTarget),
|
||||
(236,rd.ResourceUsage.ColorTarget),
|
||||
(237,rd.ResourceUsage.ColorTarget),
|
||||
(240,rd.ResourceUsage.ColorTarget),
|
||||
(241,rd.ResourceUsage.ColorTarget),
|
||||
(242,rd.ResourceUsage.ColorTarget),
|
||||
(243,rd.ResourceUsage.ColorTarget)]
|
||||
(247,rd.ResourceUsage.ColorTarget),
|
||||
(248,rd.ResourceUsage.ColorTarget)]
|
||||
if nestedSecondaries:
|
||||
expectedUsage += [
|
||||
(238+countDrawIndirectCount,rd.ResourceUsage.ColorTarget),
|
||||
(241+countDrawIndirectCount,rd.ResourceUsage.ColorTarget)]
|
||||
(243+countDrawIndirectCount+countDescBufferCopy,rd.ResourceUsage.ColorTarget),
|
||||
(246+countDrawIndirectCount+countDescBufferCopy,rd.ResourceUsage.ColorTarget)]
|
||||
if descBuffer:
|
||||
expectedUsage += [
|
||||
(233+countDrawIndirectCount+countNested,rd.ResourceUsage.ColorTarget),
|
||||
(236+countDrawIndirectCount+countNested,rd.ResourceUsage.ColorTarget)]
|
||||
(248+countDrawIndirectCount+countNested,rd.ResourceUsage.ColorTarget),
|
||||
(251+countDrawIndirectCount+countNested,rd.ResourceUsage.ColorTarget)]
|
||||
|
||||
expectedUsage += [(222+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier)]
|
||||
expectedUsage += [(227+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier)]
|
||||
else:
|
||||
expectedUsage = []
|
||||
elif res.type == rd.ResourceType.RenderPass:
|
||||
@@ -163,22 +166,23 @@ class VK_Resource_Usage(rdtest.TestCase):
|
||||
(207,rd.ResourceUsage.VertexBuffer),
|
||||
(212,rd.ResourceUsage.VertexBuffer),
|
||||
(213,rd.ResourceUsage.VertexBuffer),
|
||||
(214,rd.ResourceUsage.VertexBuffer)]
|
||||
(214,rd.ResourceUsage.VertexBuffer),
|
||||
(219,rd.ResourceUsage.VertexBuffer)]
|
||||
if drawIndirectCount:
|
||||
expectedUsage += [
|
||||
(235,rd.ResourceUsage.VertexBuffer),
|
||||
(236,rd.ResourceUsage.VertexBuffer),
|
||||
(237,rd.ResourceUsage.VertexBuffer),
|
||||
(240,rd.ResourceUsage.VertexBuffer),
|
||||
(241,rd.ResourceUsage.VertexBuffer),
|
||||
(242,rd.ResourceUsage.VertexBuffer),
|
||||
(243,rd.ResourceUsage.VertexBuffer)]
|
||||
(247,rd.ResourceUsage.VertexBuffer),
|
||||
(248,rd.ResourceUsage.VertexBuffer)]
|
||||
if nestedSecondaries:
|
||||
expectedUsage += [
|
||||
(238+countDrawIndirectCount,rd.ResourceUsage.VertexBuffer),
|
||||
(241+countDrawIndirectCount,rd.ResourceUsage.VertexBuffer)]
|
||||
(243+countDrawIndirectCount+countDescBufferCopy,rd.ResourceUsage.VertexBuffer),
|
||||
(246+countDrawIndirectCount+countDescBufferCopy,rd.ResourceUsage.VertexBuffer)]
|
||||
if descBuffer:
|
||||
expectedUsage += [
|
||||
(233+countDrawIndirectCount+countNested,rd.ResourceUsage.VertexBuffer),
|
||||
(236+countDrawIndirectCount+countNested,rd.ResourceUsage.VertexBuffer)]
|
||||
(248+countDrawIndirectCount+countNested,rd.ResourceUsage.VertexBuffer),
|
||||
(251+countDrawIndirectCount+countNested,rd.ResourceUsage.VertexBuffer)]
|
||||
if (res.name == "Index Buffer"):
|
||||
expectedUsage = [(35,rd.ResourceUsage.IndexBuffer),
|
||||
(45,rd.ResourceUsage.IndexBuffer),
|
||||
@@ -195,28 +199,28 @@ class VK_Resource_Usage(rdtest.TestCase):
|
||||
(214,rd.ResourceUsage.IndexBuffer)]
|
||||
if drawIndirectCount:
|
||||
expectedUsage += [
|
||||
(242,rd.ResourceUsage.IndexBuffer),
|
||||
(243,rd.ResourceUsage.IndexBuffer)]
|
||||
(247,rd.ResourceUsage.IndexBuffer),
|
||||
(248,rd.ResourceUsage.IndexBuffer)]
|
||||
if nestedSecondaries:
|
||||
expectedUsage += [
|
||||
(241+countDrawIndirectCount,rd.ResourceUsage.IndexBuffer)]
|
||||
(246+countDrawIndirectCount+countDescBufferCopy,rd.ResourceUsage.IndexBuffer)]
|
||||
if descBuffer:
|
||||
expectedUsage += [
|
||||
(236+countDrawIndirectCount+countNested,rd.ResourceUsage.IndexBuffer)]
|
||||
(251+countDrawIndirectCount+countNested,rd.ResourceUsage.IndexBuffer)]
|
||||
if (res.name == "Compute Buffer In"):
|
||||
expectedUsage += [(87,rd.ResourceUsage.CS_Constants),
|
||||
(94,rd.ResourceUsage.CS_Constants)]
|
||||
if nestedSecondaries:
|
||||
expectedUsage += [(254+countDrawIndirectCount,rd.ResourceUsage.CS_Constants)]
|
||||
expectedUsage += [(259+countDrawIndirectCount+countDescBufferCopy,rd.ResourceUsage.CS_Constants)]
|
||||
if descBuffer:
|
||||
expectedUsage += [(241+countDrawIndirectCount+countNested,rd.ResourceUsage.CS_Constants)]
|
||||
expectedUsage += [(256+countDrawIndirectCount+countNested,rd.ResourceUsage.CS_Constants)]
|
||||
if (res.name == "Compute Buffer Out"):
|
||||
expectedUsage += [(87,rd.ResourceUsage.CS_RWResource),
|
||||
(94,rd.ResourceUsage.CS_RWResource)]
|
||||
if nestedSecondaries:
|
||||
expectedUsage += [(254+countDrawIndirectCount,rd.ResourceUsage.CS_RWResource)]
|
||||
expectedUsage += [(259+countDrawIndirectCount+countDescBufferCopy,rd.ResourceUsage.CS_RWResource)]
|
||||
if descBuffer:
|
||||
expectedUsage += [(241+countDrawIndirectCount+countNested,rd.ResourceUsage.CS_RWResource)]
|
||||
expectedUsage += [(256+countDrawIndirectCount+countNested,rd.ResourceUsage.CS_RWResource)]
|
||||
if (res.name == "Indirect Data"):
|
||||
expectedUsage += [(14,rd.ResourceUsage.Barrier),
|
||||
(15,rd.ResourceUsage.Clear),
|
||||
@@ -249,41 +253,57 @@ class VK_Resource_Usage(rdtest.TestCase):
|
||||
(180,rd.ResourceUsage.Indirect),
|
||||
(200,rd.ResourceUsage.Indirect),
|
||||
(203,rd.ResourceUsage.Indirect),
|
||||
(211,rd.ResourceUsage.Indirect)]
|
||||
(211,rd.ResourceUsage.Indirect),
|
||||
(219,rd.ResourceUsage.IndexBuffer),
|
||||
(219,rd.ResourceUsage.Indirect)]
|
||||
if drawIndirectCount:
|
||||
expectedUsage += [
|
||||
(219,rd.ResourceUsage.Indirect),
|
||||
(219,rd.ResourceUsage.Indirect),
|
||||
(222,rd.ResourceUsage.Indirect),
|
||||
(222,rd.ResourceUsage.Indirect),
|
||||
(226,rd.ResourceUsage.Indirect),
|
||||
(226,rd.ResourceUsage.Indirect),
|
||||
(230,rd.ResourceUsage.Indirect),
|
||||
(230,rd.ResourceUsage.Indirect),
|
||||
(234,rd.ResourceUsage.Indirect),
|
||||
(234,rd.ResourceUsage.Indirect),
|
||||
(241,rd.ResourceUsage.Indirect),
|
||||
(241,rd.ResourceUsage.Indirect)]
|
||||
expectedUsage += [(218+countDrawIndirectCount,rd.ResourceUsage.Barrier)]
|
||||
(224,rd.ResourceUsage.Indirect),
|
||||
(224,rd.ResourceUsage.Indirect),
|
||||
(227,rd.ResourceUsage.Indirect),
|
||||
(227,rd.ResourceUsage.Indirect),
|
||||
(231,rd.ResourceUsage.Indirect),
|
||||
(231,rd.ResourceUsage.Indirect),
|
||||
(235,rd.ResourceUsage.Indirect),
|
||||
(235,rd.ResourceUsage.Indirect),
|
||||
(239,rd.ResourceUsage.Indirect),
|
||||
(239,rd.ResourceUsage.Indirect),
|
||||
(246,rd.ResourceUsage.Indirect),
|
||||
(246,rd.ResourceUsage.Indirect)]
|
||||
expectedUsage += [(223+countDrawIndirectCount,rd.ResourceUsage.Barrier)]
|
||||
if nestedSecondaries:
|
||||
expectedUsage += [
|
||||
(255+countDrawIndirectCount,rd.ResourceUsage.Barrier)]
|
||||
(260+countDrawIndirectCount+countDescBufferCopy,rd.ResourceUsage.Barrier)]
|
||||
if (res.name == "Barrier Buffer"):
|
||||
expectedUsage = [(229+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(237+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(245+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(253+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(261+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(269+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(277+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(285+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(293+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(301+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier)]
|
||||
expectedUsage = [(234+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(242+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(250+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(258+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(266+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(274+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(282+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(290+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(298+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(306+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier)]
|
||||
if (res.name == "Barrier2 Buffer"):
|
||||
expectedUsage = [(309+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(314+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
expectedUsage = [(314+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(319+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(324+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier)]
|
||||
(324+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier),
|
||||
(329+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Barrier)]
|
||||
if (res.name == "Descriptor Buffer"):
|
||||
if descBuffer:
|
||||
expectedUsage = [(227+countDrawIndirectCount,rd.ResourceUsage.Barrier),
|
||||
(228+countDrawIndirectCount,rd.ResourceUsage.CopySrc),
|
||||
(229+countDrawIndirectCount,rd.ResourceUsage.Barrier),
|
||||
(230+countDrawIndirectCount,rd.ResourceUsage.Clear),
|
||||
(233+countDrawIndirectCount,rd.ResourceUsage.Barrier),
|
||||
(234+countDrawIndirectCount,rd.ResourceUsage.CopyDst)]
|
||||
if (res.name == "Descriptor Backup Buffer"):
|
||||
if descBuffer:
|
||||
expectedUsage = [(227+countDrawIndirectCount,rd.ResourceUsage.Barrier),
|
||||
(228+countDrawIndirectCount,rd.ResourceUsage.CopyDst),
|
||||
(233+countDrawIndirectCount,rd.ResourceUsage.Barrier),
|
||||
(234+countDrawIndirectCount,rd.ResourceUsage.CopySrc)]
|
||||
elif res.type == rd.ResourceType.Texture:
|
||||
if (res.name == "Offscreen MSAA Image"):
|
||||
expectedUsage = [(11,rd.ResourceUsage.Barrier),
|
||||
@@ -318,18 +338,19 @@ class VK_Resource_Usage(rdtest.TestCase):
|
||||
(207,rd.ResourceUsage.PS_Resource),
|
||||
(212,rd.ResourceUsage.PS_Resource),
|
||||
(213,rd.ResourceUsage.PS_Resource),
|
||||
(214,rd.ResourceUsage.PS_Resource)]
|
||||
(214,rd.ResourceUsage.PS_Resource),
|
||||
(219,rd.ResourceUsage.PS_Resource)]
|
||||
if drawIndirectCount:
|
||||
expectedUsage += [
|
||||
(235,rd.ResourceUsage.PS_Resource),
|
||||
(236,rd.ResourceUsage.PS_Resource),
|
||||
(237,rd.ResourceUsage.PS_Resource),
|
||||
(240,rd.ResourceUsage.PS_Resource),
|
||||
(241,rd.ResourceUsage.PS_Resource),
|
||||
(242,rd.ResourceUsage.PS_Resource),
|
||||
(243,rd.ResourceUsage.PS_Resource)]
|
||||
(247,rd.ResourceUsage.PS_Resource),
|
||||
(248,rd.ResourceUsage.PS_Resource)]
|
||||
if descBuffer:
|
||||
expectedUsage += [
|
||||
(233+countDrawIndirectCount+countNested,rd.ResourceUsage.PS_Resource),
|
||||
(236+countDrawIndirectCount+countNested,rd.ResourceUsage.PS_Resource)]
|
||||
(248+countDrawIndirectCount+countNested,rd.ResourceUsage.PS_Resource),
|
||||
(251+countDrawIndirectCount+countNested,rd.ResourceUsage.PS_Resource)]
|
||||
elif res.type == rd.ResourceType.CommandBuffer:
|
||||
expectedUsage = [(0,rd.ResourceUsage.Unused)]
|
||||
elif res.type == rd.ResourceType.DescriptorStore:
|
||||
|
||||
Reference in New Issue
Block a user