MCPcopy Create free account
hub / github.com/baldurk/renderdoc / decode_task_data

Method decode_task_data

util/test/rdtest/testcase.py:1002–1037  ·  view source on GitHub ↗
(self, controller: rd.ReplayController, mesh: rd.MeshFormat, payload: rd.ConstantBlock, task: int = 0)

Source from the content-addressed store, hash-verified

1000 log.success(f"Pixel shader debugging at {x},{y} was successful")
1001
1002 def decode_task_data(self, controller: rd.ReplayController, mesh: rd.MeshFormat, payload: rd.ConstantBlock, task: int = 0):
1003
1004 begin = mesh.vertexByteOffset + mesh.vertexByteStride * task
1005 end = min(begin + mesh.vertexByteSize, 0xffffffffffffffff)
1006 buffer_data = controller.GetBufferData(mesh.vertexResourceId, begin, end -begin)
1007
1008 ret = []
1009 offset = 0
1010 for var in payload.variables:
1011 var_data = {}
1012 var_data[var.name] = []
1013 if (var.type.baseType == rd.VarType.Struct):
1014 structSize = 0
1015 structSize += var.type.members[0].byteOffset
1016 for member in var.type.members:
1017 byteWidth = rd.VarTypeByteSize(member.type.baseType)
1018 structSize += byteWidth * member.type.columns * member.type.elements
1019 skipBytes = structSize * var.type.elements
1020 log.print(f"Skipping struct variable '{var.name}' Size {skipBytes}")
1021 offset += skipBytes
1022 continue
1023 # This is not complete to decode all possible payload layouts
1024 for i in range(var.type.elements):
1025 format = rd.ResourceFormat()
1026 format.compByteWidth = rd.VarTypeByteSize(var.type.baseType)
1027 format.compCount = var.type.columns
1028 format.compType = rd.VarTypeCompType(var.type.baseType)
1029 format.type = rd.ResourceFormatType.Regular
1030
1031 data = analyse.unpack_data(format, buffer_data, offset)
1032 if data:
1033 var_data[var.name] += data
1034 offset += format.compByteWidth * format.compCount
1035 ret.append(var_data)
1036
1037 return ret
1038
1039 def get_task_data(self, action: rd.ActionDescription):
1040 mesh: rd.MeshFormat = self.controller.GetPostVSData(0, 0, rd.MeshDataStage.TaskOut)

Callers 1

get_task_dataMethod · 0.95

Calls 4

rangeFunction · 0.50
GetBufferDataMethod · 0.45
printMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected