Check that vkCmdFillBuffer usage is properly populated in VK_Indirect

This commit is contained in:
baldurk
2020-01-27 11:48:39 +00:00
parent bcb08c1948
commit d2cd2f0291
+18
View File
@@ -32,6 +32,18 @@ class VK_Indirect(rdtest.TestCase):
self.overlay_idx = 1
fill = self.find_draw("vkCmdFillBuffer")
self.check(fill is not None)
buffer_usage = {}
for usage in self.controller.GetUsage(fill.copyDestination):
usage: rd.EventUsage
if usage.eventId not in buffer_usage:
buffer_usage[usage.eventId] = []
buffer_usage[usage.eventId].append(usage.usage)
for level in ["Primary", "Secondary"]:
rdtest.log.print("Checking {} indirect calls".format(level))
@@ -125,6 +137,8 @@ class VK_Indirect(rdtest.TestCase):
self.controller.SetFrameEvent(draw.eventId, False)
self.check(rd.ResourceUsage.Indirect in buffer_usage[draw.eventId])
# Check that we have PostVS as expected
postvs_data = self.get_postvs(rd.MeshDataStage.VSOut)
@@ -141,6 +155,8 @@ class VK_Indirect(rdtest.TestCase):
rdtest.log.success("{} {} is as expected".format(level, draw.name))
self.check(rd.ResourceUsage.Indirect in buffer_usage[indirects.children[1].eventId])
# vkCmdDrawIndexedIndirect[0](...)
draw = indirects.children[1].children[0]
self.check(draw.numIndices == 3)
@@ -219,6 +235,8 @@ class VK_Indirect(rdtest.TestCase):
# vkCmdDrawIndirectCountKHR
draw_indirect = indirect_count_root.children[1].children[0]
self.check(rd.ResourceUsage.Indirect in buffer_usage[draw_indirect.eventId])
self.check(draw_indirect and len(draw_indirect.children) == 1)
# vkCmdDrawIndirectCountKHR[0]