mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-09-13 17:25:54 +00:00
In Vk_Resource_Usage Python compute EIDs and reduce hard coded EIDs
This commit is contained in:
@@ -18,6 +18,9 @@ class VK_Resource_Usage(rdtest.TestCase):
|
||||
if len(usages) != len(expectedUsages):
|
||||
for u in usages:
|
||||
rdtest.log.print(f"Resource '{res.name}' {res.resourceId} usage EID:{u.eventId} usage:{u.usage.name}")
|
||||
for u in expectedUsages:
|
||||
eid, usage = u
|
||||
rdtest.log.print(f"Resource '{res.name}' {res.resourceId} usage EID:{eid} usage:{usage.name}")
|
||||
raise rdtest.TestFailureException(f"'{res.name}' {res.resourceId} Incorrect resource usages count expected:{len(expectedUsages)} actual:{len(usages)}")
|
||||
for i, u in enumerate(usages):
|
||||
eid, usage = expectedUsages[i]
|
||||
@@ -51,12 +54,114 @@ class VK_Resource_Usage(rdtest.TestCase):
|
||||
countDescBuffer += countDescBufferCopy
|
||||
countMeshShader = 33 if meshShader else 0
|
||||
|
||||
# Walk the actions finding all the Dispatch, Draw, DrawIndexed, DrawIndirect, DrawIndirectCount
|
||||
sdfile = self.controller.GetStructuredFile()
|
||||
actions = self.controller.GetRootActions().copy()
|
||||
|
||||
drawEIDs = []
|
||||
meshDispatchEIDs = []
|
||||
indexedEIDs = []
|
||||
indexedSpecialEIDs = []
|
||||
dispatchEIDs = []
|
||||
indirectEIDs = []
|
||||
multiEIDs = []
|
||||
indirectCountEIDs = []
|
||||
submitEIDs = []
|
||||
waitFencesEIDs = []
|
||||
resetFencesEIDs = []
|
||||
descSetDrawEIDs = []
|
||||
descBufferDrawEIDs = []
|
||||
|
||||
markerGraphicsDescriptorSet = 0
|
||||
markerGraphicsSecondaryCommandBuffer = 0
|
||||
markerIndirect = 0
|
||||
markerIndirectEnd = 0
|
||||
markerNestedSecondaryCommandBuffer = 0
|
||||
markerDescriptorBuffer = 0
|
||||
markerBarrierCommandSubmitFence = 0
|
||||
markerCompute = 0
|
||||
markerComputeDescriptorSet = 0
|
||||
|
||||
markerGraphicsSecondaryCommandBuffer = self.find_action("Secondary Command Buffer").eventId
|
||||
if nestedSecondaries:
|
||||
markerNestedSecondaryCommandBuffer = self.find_action("Nested Secondary Command Buffer").eventId
|
||||
if descBuffer:
|
||||
markerDescriptorBuffer = self.find_action("Descriptor Buffer").eventId
|
||||
markerBarrierCommandSubmitFence = self.find_action("Barrier Command Submit Fence").eventId
|
||||
|
||||
while len(actions) > 0:
|
||||
action = actions.pop(0)
|
||||
actions += action.children
|
||||
flags = action.flags
|
||||
if flags & rd.ActionFlags.Drawcall:
|
||||
drawEIDs.append(action.eventId)
|
||||
if flags & rd.ActionFlags.Indexed:
|
||||
# Special case remove this from the indexed list
|
||||
# vkCmdDrawIndexedIndirect(1) => <3, 1>
|
||||
if action.customName.endswith("<3, 1>"):
|
||||
indexedSpecialEIDs.append(action.eventId)
|
||||
else:
|
||||
indexedEIDs.append(action.eventId)
|
||||
if flags & rd.ActionFlags.Dispatch:
|
||||
dispatchEIDs.append(action.eventId)
|
||||
if flags & rd.ActionFlags.Indirect:
|
||||
indirectEIDs.append(action.eventId)
|
||||
if "Count" in action.customName:
|
||||
indirectCountEIDs.append(action.eventId)
|
||||
if flags & rd.ActionFlags.MeshDispatch:
|
||||
meshDispatchEIDs.append(action.eventId)
|
||||
if flags & rd.ActionFlags.MultiAction:
|
||||
multiEIDs.append(action.eventId)
|
||||
if flags & rd.ActionFlags.PushMarker:
|
||||
parentName = action.parent.customName if action.parent is not None else None
|
||||
markerPath = parentName + "." + action.customName if parentName is not None else action.customName
|
||||
if not markerGraphicsDescriptorSet and markerPath == "Graphics.Descriptor Set":
|
||||
rdtest.log.print(f"{action.parent.customName} {action.parent.eventId} {action.customName} {action.eventId}")
|
||||
markerGraphicsDescriptorSet = action.eventId
|
||||
if not markerIndirect and markerPath == "Indirect":
|
||||
markerIndirect = action.eventId
|
||||
markerIndirectEnd = action.children[-1].eventId
|
||||
if not markerCompute and markerPath == "Compute":
|
||||
markerCompute = action.eventId
|
||||
if not markerComputeDescriptorSet and markerPath == "Compute.Descriptor Set":
|
||||
markerComputeDescriptorSet = action.eventId
|
||||
for e in action.events:
|
||||
eventName = sdfile.chunks[e.chunkIndex].name
|
||||
if "vkQueueSubmit" in eventName:
|
||||
submitEIDs.append(e.eventId)
|
||||
if "vkWaitForFences" in eventName:
|
||||
waitFencesEIDs.append(e.eventId)
|
||||
if "vkResetFences" in eventName:
|
||||
resetFencesEIDs.append(e.eventId)
|
||||
|
||||
for eid in drawEIDs:
|
||||
if eid > markerGraphicsDescriptorSet and eid < markerGraphicsSecondaryCommandBuffer:
|
||||
descSetDrawEIDs.append(eid)
|
||||
elif eid > markerIndirect and (not nestedSecondaries or eid < markerNestedSecondaryCommandBuffer):
|
||||
descSetDrawEIDs.append(eid)
|
||||
elif descBuffer and eid > markerDescriptorBuffer:
|
||||
descBufferDrawEIDs.append(eid)
|
||||
|
||||
drawEIDs.sort()
|
||||
indexedEIDs.sort()
|
||||
indexedSpecialEIDs.sort()
|
||||
dispatchEIDs.sort()
|
||||
indirectEIDs.sort()
|
||||
meshDispatchEIDs.sort()
|
||||
multiEIDs.sort()
|
||||
indirectCountEIDs.sort()
|
||||
submitEIDs.sort()
|
||||
waitFencesEIDs.sort()
|
||||
resetFencesEIDs.sort()
|
||||
descSetDrawEIDs.sort()
|
||||
descBufferDrawEIDs.sort()
|
||||
|
||||
action = self.find_action("Draw")
|
||||
self.controller.SetFrameEvent(action.eventId, False)
|
||||
swapImage = self.controller.GetPipelineState().GetOutputTargets()[0].resource
|
||||
|
||||
with rdtest.log.auto_section("Checking Resource Usage"):
|
||||
for res in self.controller.GetResources():
|
||||
for res in resources:
|
||||
expectedUsage = []
|
||||
if res.type == rd.ResourceType.Device:
|
||||
expectedUsage = [(0,rd.ResourceUsage.Unused)]
|
||||
@@ -67,76 +172,17 @@ class VK_Resource_Usage(rdtest.TestCase):
|
||||
elif res.type == rd.ResourceType.SwapchainImage:
|
||||
# the swap chain image has usage, anything else does not
|
||||
if res.resourceId == swapImage:
|
||||
expectedUsage = [(6,rd.ResourceUsage.Barrier),
|
||||
expectedUsage = [
|
||||
(6,rd.ResourceUsage.Barrier),
|
||||
(6,rd.ResourceUsage.Discard),
|
||||
(7,rd.ResourceUsage.Clear),
|
||||
(8,rd.ResourceUsage.Barrier),
|
||||
(32,rd.ResourceUsage.ColorTarget),
|
||||
(35,rd.ResourceUsage.ColorTarget),
|
||||
(42,rd.ResourceUsage.ColorTarget),
|
||||
(45,rd.ResourceUsage.ColorTarget),
|
||||
(59,rd.ResourceUsage.ColorTarget),
|
||||
(62,rd.ResourceUsage.ColorTarget),
|
||||
(73,rd.ResourceUsage.ColorTarget),
|
||||
(76,rd.ResourceUsage.ColorTarget),
|
||||
(120,rd.ResourceUsage.ColorTarget),
|
||||
(124,rd.ResourceUsage.ColorTarget),
|
||||
(128,rd.ResourceUsage.ColorTarget),
|
||||
(129,rd.ResourceUsage.ColorTarget),
|
||||
(130,rd.ResourceUsage.ColorTarget),
|
||||
(131,rd.ResourceUsage.ColorTarget),
|
||||
(136,rd.ResourceUsage.ColorTarget),
|
||||
(137,rd.ResourceUsage.ColorTarget),
|
||||
(138,rd.ResourceUsage.ColorTarget),
|
||||
(142,rd.ResourceUsage.ColorTarget),
|
||||
(177,rd.ResourceUsage.ColorTarget),
|
||||
(181,rd.ResourceUsage.ColorTarget),
|
||||
(182,rd.ResourceUsage.ColorTarget),
|
||||
(183,rd.ResourceUsage.ColorTarget),
|
||||
(184,rd.ResourceUsage.ColorTarget),
|
||||
(189,rd.ResourceUsage.ColorTarget),
|
||||
(190,rd.ResourceUsage.ColorTarget),
|
||||
(191,rd.ResourceUsage.ColorTarget),
|
||||
(208,rd.ResourceUsage.ColorTarget),
|
||||
(212,rd.ResourceUsage.ColorTarget),
|
||||
(213,rd.ResourceUsage.ColorTarget),
|
||||
(214,rd.ResourceUsage.ColorTarget),
|
||||
(215,rd.ResourceUsage.ColorTarget),
|
||||
(220,rd.ResourceUsage.ColorTarget),
|
||||
(221,rd.ResourceUsage.ColorTarget),
|
||||
(222,rd.ResourceUsage.ColorTarget),
|
||||
(227,rd.ResourceUsage.ColorTarget)]
|
||||
if drawIndirectCount:
|
||||
expectedUsage += [
|
||||
(232,rd.ResourceUsage.ColorTarget),
|
||||
(235,rd.ResourceUsage.ColorTarget),
|
||||
(239,rd.ResourceUsage.ColorTarget),
|
||||
(243,rd.ResourceUsage.ColorTarget),
|
||||
(248,rd.ResourceUsage.ColorTarget),
|
||||
(249,rd.ResourceUsage.ColorTarget),
|
||||
(250,rd.ResourceUsage.ColorTarget),
|
||||
(255,rd.ResourceUsage.ColorTarget),
|
||||
(256,rd.ResourceUsage.ColorTarget)]
|
||||
if nestedSecondaries:
|
||||
expectedUsage += [
|
||||
(251+countDrawIndirectCount+countDescBufferCopy,rd.ResourceUsage.ColorTarget),
|
||||
(254+countDrawIndirectCount+countDescBufferCopy,rd.ResourceUsage.ColorTarget)]
|
||||
if descBuffer:
|
||||
expectedUsage += [
|
||||
(256+countDrawIndirectCount+countNested,rd.ResourceUsage.ColorTarget),
|
||||
(259+countDrawIndirectCount+countNested,rd.ResourceUsage.ColorTarget)]
|
||||
if meshShader:
|
||||
expectedUsage += [
|
||||
(241+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.ColorTarget),
|
||||
(245+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.ColorTarget),
|
||||
(246+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.ColorTarget),
|
||||
(249+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.ColorTarget),
|
||||
(252+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.ColorTarget),
|
||||
(256+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.ColorTarget),
|
||||
(260+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.ColorTarget),
|
||||
(264+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.ColorTarget)]
|
||||
|
||||
expectedUsage += [(235+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier)]
|
||||
(8,rd.ResourceUsage.Barrier)]
|
||||
for eid in drawEIDs:
|
||||
expectedUsage.append((eid,rd.ResourceUsage.ColorTarget))
|
||||
for eid in meshDispatchEIDs:
|
||||
expectedUsage.append((eid,rd.ResourceUsage.ColorTarget))
|
||||
expectedUsage += [
|
||||
(235+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier)]
|
||||
else:
|
||||
expectedUsage = []
|
||||
elif res.type == rd.ResourceType.RenderPass:
|
||||
@@ -154,116 +200,38 @@ class VK_Resource_Usage(rdtest.TestCase):
|
||||
elif res.type == rd.ResourceType.PipelineState:
|
||||
expectedUsage = [(0,rd.ResourceUsage.Unused)]
|
||||
elif res.type == rd.ResourceType.Buffer:
|
||||
if (res.name == "Vertex Buffer"):
|
||||
expectedUsage = [(32,rd.ResourceUsage.VertexBuffer),
|
||||
(35,rd.ResourceUsage.VertexBuffer),
|
||||
(42,rd.ResourceUsage.VertexBuffer),
|
||||
(45,rd.ResourceUsage.VertexBuffer),
|
||||
(59,rd.ResourceUsage.VertexBuffer),
|
||||
(62,rd.ResourceUsage.VertexBuffer),
|
||||
(73,rd.ResourceUsage.VertexBuffer),
|
||||
(76,rd.ResourceUsage.VertexBuffer),
|
||||
(120,rd.ResourceUsage.VertexBuffer),
|
||||
(124,rd.ResourceUsage.VertexBuffer),
|
||||
(128,rd.ResourceUsage.VertexBuffer),
|
||||
(129,rd.ResourceUsage.VertexBuffer),
|
||||
(130,rd.ResourceUsage.VertexBuffer),
|
||||
(131,rd.ResourceUsage.VertexBuffer),
|
||||
(136,rd.ResourceUsage.VertexBuffer),
|
||||
(137,rd.ResourceUsage.VertexBuffer),
|
||||
(138,rd.ResourceUsage.VertexBuffer),
|
||||
(142,rd.ResourceUsage.VertexBuffer),
|
||||
(177,rd.ResourceUsage.VertexBuffer),
|
||||
(181,rd.ResourceUsage.VertexBuffer),
|
||||
(182,rd.ResourceUsage.VertexBuffer),
|
||||
(183,rd.ResourceUsage.VertexBuffer),
|
||||
(184,rd.ResourceUsage.VertexBuffer),
|
||||
(189,rd.ResourceUsage.VertexBuffer),
|
||||
(190,rd.ResourceUsage.VertexBuffer),
|
||||
(191,rd.ResourceUsage.VertexBuffer),
|
||||
(208,rd.ResourceUsage.VertexBuffer),
|
||||
(212,rd.ResourceUsage.VertexBuffer),
|
||||
(213,rd.ResourceUsage.VertexBuffer),
|
||||
(214,rd.ResourceUsage.VertexBuffer),
|
||||
(215,rd.ResourceUsage.VertexBuffer),
|
||||
(220,rd.ResourceUsage.VertexBuffer),
|
||||
(221,rd.ResourceUsage.VertexBuffer),
|
||||
(222,rd.ResourceUsage.VertexBuffer),
|
||||
(227,rd.ResourceUsage.VertexBuffer)]
|
||||
if drawIndirectCount:
|
||||
expectedUsage += [
|
||||
(232,rd.ResourceUsage.VertexBuffer),
|
||||
(235,rd.ResourceUsage.VertexBuffer),
|
||||
(239,rd.ResourceUsage.VertexBuffer),
|
||||
(243,rd.ResourceUsage.VertexBuffer),
|
||||
(248,rd.ResourceUsage.VertexBuffer),
|
||||
(249,rd.ResourceUsage.VertexBuffer),
|
||||
(250,rd.ResourceUsage.VertexBuffer),
|
||||
(255,rd.ResourceUsage.VertexBuffer),
|
||||
(256,rd.ResourceUsage.VertexBuffer)]
|
||||
if nestedSecondaries:
|
||||
expectedUsage += [
|
||||
(251+countDrawIndirectCount+countDescBufferCopy,rd.ResourceUsage.VertexBuffer),
|
||||
(254+countDrawIndirectCount+countDescBufferCopy,rd.ResourceUsage.VertexBuffer)]
|
||||
if descBuffer:
|
||||
expectedUsage += [
|
||||
(256+countDrawIndirectCount+countNested,rd.ResourceUsage.VertexBuffer),
|
||||
(259+countDrawIndirectCount+countNested,rd.ResourceUsage.VertexBuffer)]
|
||||
if (res.name == "Index Buffer"):
|
||||
expectedUsage = [(35,rd.ResourceUsage.IndexBuffer),
|
||||
(45,rd.ResourceUsage.IndexBuffer),
|
||||
(62,rd.ResourceUsage.IndexBuffer),
|
||||
(76,rd.ResourceUsage.IndexBuffer),
|
||||
(136,rd.ResourceUsage.IndexBuffer),
|
||||
(137,rd.ResourceUsage.IndexBuffer),
|
||||
(138,rd.ResourceUsage.IndexBuffer),
|
||||
(142,rd.ResourceUsage.IndexBuffer),
|
||||
(189,rd.ResourceUsage.IndexBuffer),
|
||||
(190,rd.ResourceUsage.IndexBuffer),
|
||||
(191,rd.ResourceUsage.IndexBuffer),
|
||||
(220,rd.ResourceUsage.IndexBuffer),
|
||||
(221,rd.ResourceUsage.IndexBuffer),
|
||||
(222,rd.ResourceUsage.IndexBuffer)]
|
||||
if drawIndirectCount:
|
||||
expectedUsage += [
|
||||
(235,rd.ResourceUsage.IndexBuffer),
|
||||
(243,rd.ResourceUsage.IndexBuffer),
|
||||
(255,rd.ResourceUsage.IndexBuffer),
|
||||
(256,rd.ResourceUsage.IndexBuffer)]
|
||||
if nestedSecondaries:
|
||||
expectedUsage += [
|
||||
(254+countDrawIndirectCount+countDescBufferCopy,rd.ResourceUsage.IndexBuffer)]
|
||||
if descBuffer:
|
||||
expectedUsage += [
|
||||
(259+countDrawIndirectCount+countNested,rd.ResourceUsage.IndexBuffer)]
|
||||
if (res.name == "Compute Buffer In"):
|
||||
expectedUsage += [(89,rd.ResourceUsage.CS_Constants),
|
||||
(96,rd.ResourceUsage.CS_Constants)]
|
||||
if nestedSecondaries:
|
||||
expectedUsage += [(267+countDrawIndirectCount+countDescBufferCopy,rd.ResourceUsage.CS_Constants)]
|
||||
if descBuffer:
|
||||
expectedUsage += [(264+countDrawIndirectCount+countNested,rd.ResourceUsage.CS_Constants)]
|
||||
if (res.name == "Compute Buffer Out"):
|
||||
expectedUsage += [(89,rd.ResourceUsage.CS_RWResource),
|
||||
(96,rd.ResourceUsage.CS_RWResource)]
|
||||
if nestedSecondaries:
|
||||
expectedUsage += [(267+countDrawIndirectCount+countDescBufferCopy,rd.ResourceUsage.CS_RWResource)]
|
||||
if descBuffer:
|
||||
expectedUsage += [(264+countDrawIndirectCount+countNested,rd.ResourceUsage.CS_RWResource)]
|
||||
if (res.name == "Indirect Data"):
|
||||
if res.name == "Vertex Buffer":
|
||||
for eid in drawEIDs:
|
||||
expectedUsage.append((eid,rd.ResourceUsage.VertexBuffer))
|
||||
if res.name == "Index Buffer":
|
||||
for eid in indexedEIDs:
|
||||
expectedUsage.append((eid,rd.ResourceUsage.IndexBuffer))
|
||||
if res.name == "Compute Buffer In":
|
||||
# All dispatches within "Compute" region
|
||||
# All dispatches within "Nested Secondary Command Buffer" region
|
||||
for eid in dispatchEIDs:
|
||||
if eid > markerComputeDescriptorSet and eid < markerIndirect:
|
||||
expectedUsage.append((eid,rd.ResourceUsage.CS_Constants))
|
||||
elif nestedSecondaries and eid > markerNestedSecondaryCommandBuffer:
|
||||
expectedUsage.append((eid,rd.ResourceUsage.CS_Constants))
|
||||
if res.name == "Compute Buffer Out":
|
||||
# All dispatches within "Compute" region
|
||||
# All dispatches within "Nested Secondary Command Buffer" region
|
||||
for eid in dispatchEIDs:
|
||||
if eid > markerComputeDescriptorSet and eid < markerIndirect:
|
||||
expectedUsage.append((eid,rd.ResourceUsage.CS_RWResource))
|
||||
elif nestedSecondaries and eid > markerNestedSecondaryCommandBuffer:
|
||||
expectedUsage.append((eid,rd.ResourceUsage.CS_RWResource))
|
||||
if res.name == "Indirect Data":
|
||||
expectedUsage += [(14,rd.ResourceUsage.Barrier),
|
||||
(15,rd.ResourceUsage.Clear),
|
||||
(16,rd.ResourceUsage.Barrier),
|
||||
(20,rd.ResourceUsage.CS_RWResource),
|
||||
(21,rd.ResourceUsage.Barrier),
|
||||
(97,rd.ResourceUsage.Barrier),
|
||||
(108,rd.ResourceUsage.CS_RWResource),
|
||||
(108,rd.ResourceUsage.Indirect),
|
||||
(109,rd.ResourceUsage.Barrier),
|
||||
(120,rd.ResourceUsage.Indirect),
|
||||
(124,rd.ResourceUsage.Indirect),
|
||||
(127,rd.ResourceUsage.Indirect),
|
||||
(135,rd.ResourceUsage.Indirect),
|
||||
(142,rd.ResourceUsage.Indirect),
|
||||
(144,rd.ResourceUsage.Barrier),
|
||||
(149,rd.ResourceUsage.Barrier),
|
||||
@@ -271,35 +239,13 @@ class VK_Resource_Usage(rdtest.TestCase):
|
||||
(151,rd.ResourceUsage.Barrier),
|
||||
(155,rd.ResourceUsage.CS_RWResource),
|
||||
(157,rd.ResourceUsage.Barrier),
|
||||
(159,rd.ResourceUsage.CS_RWResource),
|
||||
(159,rd.ResourceUsage.Indirect),
|
||||
(160,rd.ResourceUsage.CS_RWResource),
|
||||
(160,rd.ResourceUsage.Indirect),
|
||||
(161,rd.ResourceUsage.Barrier),
|
||||
(162,rd.ResourceUsage.CS_RWResource),
|
||||
(162,rd.ResourceUsage.Indirect),
|
||||
(163,rd.ResourceUsage.Barrier),
|
||||
(177,rd.ResourceUsage.Indirect),
|
||||
(180,rd.ResourceUsage.Indirect),
|
||||
(188,rd.ResourceUsage.Indirect),
|
||||
(208,rd.ResourceUsage.Indirect),
|
||||
(211,rd.ResourceUsage.Indirect),
|
||||
(219,rd.ResourceUsage.Indirect),
|
||||
(227,rd.ResourceUsage.IndexBuffer),
|
||||
(227,rd.ResourceUsage.Indirect)]
|
||||
(208,rd.ResourceUsage.Indirect)]
|
||||
if drawIndirectCount:
|
||||
expectedUsage += [
|
||||
(232,rd.ResourceUsage.Indirect),
|
||||
(232,rd.ResourceUsage.Indirect),
|
||||
(235,rd.ResourceUsage.Indirect),
|
||||
(235,rd.ResourceUsage.Indirect),
|
||||
(239,rd.ResourceUsage.Indirect),
|
||||
(239,rd.ResourceUsage.Indirect),
|
||||
(243,rd.ResourceUsage.Indirect),
|
||||
(243,rd.ResourceUsage.Indirect),
|
||||
(247,rd.ResourceUsage.Indirect),
|
||||
(247,rd.ResourceUsage.Indirect),
|
||||
(254,rd.ResourceUsage.Indirect),
|
||||
(254,rd.ResourceUsage.Indirect)]
|
||||
expectedUsage += [(231+countDrawIndirectCount,rd.ResourceUsage.Barrier)]
|
||||
if nestedSecondaries:
|
||||
@@ -307,32 +253,38 @@ class VK_Resource_Usage(rdtest.TestCase):
|
||||
(268+countDrawIndirectCount+countDescBufferCopy,rd.ResourceUsage.Barrier)]
|
||||
if meshShader:
|
||||
expectedUsage += [
|
||||
(244+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Indirect),
|
||||
(249+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Indirect),
|
||||
(252+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Indirect),
|
||||
(255+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Indirect),
|
||||
(255+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Indirect),
|
||||
(260+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Indirect),
|
||||
(260+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Indirect),
|
||||
(264+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Indirect),
|
||||
(264+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Indirect)]
|
||||
if (res.name == "Barrier Buffer"):
|
||||
expectedUsage = [(242+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(250+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(258+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(266+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(274+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(282+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(290+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(298+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(306+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(314+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier)]
|
||||
if (res.name == "Barrier2 Buffer"):
|
||||
expectedUsage = [(322+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(327+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(332+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(337+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier)]
|
||||
if (res.name == "Descriptor Buffer"):
|
||||
(255+countDrawIndirectCount+countNested+countDescBuffer,rd.ResourceUsage.Indirect)]
|
||||
for eid in indirectEIDs:
|
||||
# Dispatch + Indirect
|
||||
if eid in dispatchEIDs:
|
||||
expectedUsage.append((eid,rd.ResourceUsage.CS_RWResource))
|
||||
expectedUsage.append((eid,rd.ResourceUsage.Indirect))
|
||||
for eid in multiEIDs:
|
||||
expectedUsage.append((eid,rd.ResourceUsage.Indirect))
|
||||
for eid in indirectCountEIDs:
|
||||
expectedUsage.append((eid,rd.ResourceUsage.Indirect))
|
||||
for eid in indexedSpecialEIDs:
|
||||
expectedUsage.append((eid,rd.ResourceUsage.IndexBuffer))
|
||||
expectedUsage.append((eid,rd.ResourceUsage.Indirect))
|
||||
if res.name == "Barrier Buffer":
|
||||
expectedUsage = [(243+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(251+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(259+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(267+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(275+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(283+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(291+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(299+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(307+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(315+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier)]
|
||||
if res.name == "Barrier2 Buffer":
|
||||
expectedUsage = [(323+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(328+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(333+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier),
|
||||
(338+countDrawIndirectCount+countNested+countDescBuffer+countMeshShader,rd.ResourceUsage.Barrier)]
|
||||
if res.name == "Descriptor Buffer":
|
||||
if descBuffer:
|
||||
expectedUsage = [(235+countDrawIndirectCount,rd.ResourceUsage.Barrier),
|
||||
(236+countDrawIndirectCount,rd.ResourceUsage.CopySrc),
|
||||
@@ -340,65 +292,25 @@ class VK_Resource_Usage(rdtest.TestCase):
|
||||
(238+countDrawIndirectCount,rd.ResourceUsage.Clear),
|
||||
(241+countDrawIndirectCount,rd.ResourceUsage.Barrier),
|
||||
(242+countDrawIndirectCount,rd.ResourceUsage.CopyDst)]
|
||||
if (res.name == "Descriptor Backup Buffer"):
|
||||
if res.name == "Descriptor Backup Buffer":
|
||||
if descBuffer:
|
||||
expectedUsage = [(235+countDrawIndirectCount,rd.ResourceUsage.Barrier),
|
||||
(236+countDrawIndirectCount,rd.ResourceUsage.CopyDst),
|
||||
(241+countDrawIndirectCount,rd.ResourceUsage.Barrier),
|
||||
(242+countDrawIndirectCount,rd.ResourceUsage.CopySrc)]
|
||||
elif res.type == rd.ResourceType.Texture:
|
||||
if (res.name == "Offscreen MSAA Image"):
|
||||
if res.name == "Offscreen MSAA Image":
|
||||
expectedUsage = [(11,rd.ResourceUsage.Barrier),
|
||||
(11,rd.ResourceUsage.Discard),
|
||||
(12,rd.ResourceUsage.Clear)]
|
||||
if (res.name == "Offscreen Image"):
|
||||
if res.name == "Offscreen Image":
|
||||
expectedUsage = [(9,rd.ResourceUsage.Barrier),
|
||||
(9,rd.ResourceUsage.Discard),
|
||||
(10,rd.ResourceUsage.Clear),
|
||||
(42,rd.ResourceUsage.PS_Resource),
|
||||
(45,rd.ResourceUsage.PS_Resource),
|
||||
(120,rd.ResourceUsage.PS_Resource),
|
||||
(124,rd.ResourceUsage.PS_Resource),
|
||||
(128,rd.ResourceUsage.PS_Resource),
|
||||
(129,rd.ResourceUsage.PS_Resource),
|
||||
(130,rd.ResourceUsage.PS_Resource),
|
||||
(131,rd.ResourceUsage.PS_Resource),
|
||||
(136,rd.ResourceUsage.PS_Resource),
|
||||
(137,rd.ResourceUsage.PS_Resource),
|
||||
(138,rd.ResourceUsage.PS_Resource),
|
||||
(142,rd.ResourceUsage.PS_Resource),
|
||||
(177,rd.ResourceUsage.PS_Resource),
|
||||
(181,rd.ResourceUsage.PS_Resource),
|
||||
(182,rd.ResourceUsage.PS_Resource),
|
||||
(183,rd.ResourceUsage.PS_Resource),
|
||||
(184,rd.ResourceUsage.PS_Resource),
|
||||
(189,rd.ResourceUsage.PS_Resource),
|
||||
(190,rd.ResourceUsage.PS_Resource),
|
||||
(191,rd.ResourceUsage.PS_Resource),
|
||||
(208,rd.ResourceUsage.PS_Resource),
|
||||
(212,rd.ResourceUsage.PS_Resource),
|
||||
(213,rd.ResourceUsage.PS_Resource),
|
||||
(214,rd.ResourceUsage.PS_Resource),
|
||||
(215,rd.ResourceUsage.PS_Resource),
|
||||
(220,rd.ResourceUsage.PS_Resource),
|
||||
(221,rd.ResourceUsage.PS_Resource),
|
||||
(222,rd.ResourceUsage.PS_Resource),
|
||||
(227,rd.ResourceUsage.PS_Resource)]
|
||||
if drawIndirectCount:
|
||||
expectedUsage += [
|
||||
(232,rd.ResourceUsage.PS_Resource),
|
||||
(235,rd.ResourceUsage.PS_Resource),
|
||||
(239,rd.ResourceUsage.PS_Resource),
|
||||
(243,rd.ResourceUsage.PS_Resource),
|
||||
(248,rd.ResourceUsage.PS_Resource),
|
||||
(249,rd.ResourceUsage.PS_Resource),
|
||||
(250,rd.ResourceUsage.PS_Resource),
|
||||
(255,rd.ResourceUsage.PS_Resource),
|
||||
(256,rd.ResourceUsage.PS_Resource)]
|
||||
if descBuffer:
|
||||
expectedUsage += [
|
||||
(256+countDrawIndirectCount+countNested,rd.ResourceUsage.PS_Resource),
|
||||
(259+countDrawIndirectCount+countNested,rd.ResourceUsage.PS_Resource)]
|
||||
(10,rd.ResourceUsage.Clear)]
|
||||
for eid in descSetDrawEIDs:
|
||||
expectedUsage.append((eid,rd.ResourceUsage.PS_Resource))
|
||||
for eid in descBufferDrawEIDs:
|
||||
expectedUsage.append((eid,rd.ResourceUsage.PS_Resource))
|
||||
elif res.type == rd.ResourceType.CommandBuffer:
|
||||
expectedUsage = [(0,rd.ResourceUsage.Unused)]
|
||||
elif res.type == rd.ResourceType.DescriptorStore:
|
||||
@@ -407,7 +319,8 @@ class VK_Resource_Usage(rdtest.TestCase):
|
||||
expectedUsage = [(0,rd.ResourceUsage.Unused)]
|
||||
else:
|
||||
raise rdtest.TestFailureException(f"'{res.name}' {res.resourceId} Unexpected resource type {res.type.name}")
|
||||
rdtest.log.print(f"Resource '{res.name}' type:{res.type.name} {res.resourceId} usages:{len(self.controller.GetUsage(res.resourceId))} expectedUsages:{len(expectedUsage)}")
|
||||
rdtest.log.print(f"Resource '{res.name}' type:{res.type.name} {res.resourceId} usages:{len(self.resourceUsages[res.resourceId])} expectedUsages:{len(expectedUsage)}")
|
||||
expectedUsage.sort(key=lambda x: x[0])
|
||||
self.check_resource_usage(res, expectedUsage)
|
||||
|
||||
actions = self.controller.GetRootActions()
|
||||
@@ -416,7 +329,7 @@ class VK_Resource_Usage(rdtest.TestCase):
|
||||
|
||||
# Select every event of the resource usage to ensure the EID is valid
|
||||
with rdtest.log.auto_section("Checking Resource Usage Events can be replayed"):
|
||||
for res in self.controller.GetResources():
|
||||
for res in resources:
|
||||
rdtest.log.print(f"Resource '{res.name}' type:{res.type.name} {res.resourceId}")
|
||||
usages = self.resourceUsages[res.resourceId]
|
||||
for u in usages:
|
||||
|
||||
Reference in New Issue
Block a user