List resources for texture viewer to pick up

This commit is contained in:
baldurk
2015-10-05 13:03:00 +02:00
parent 33fd37282b
commit 238efe31f1
2 changed files with 72 additions and 0 deletions
+68
View File
@@ -737,6 +737,41 @@ namespace renderdocui.Code
return ret;
}
else if (IsLogVK)
{
VulkanPipelineState.Pipeline.DescriptorSet[] descsets = m_Vulkan.graphics.DescSets;
if (stage == ShaderStageType.Compute)
descsets = m_Vulkan.compute.DescSets;
List<ResourceId> ret = new List<ResourceId>();
ShaderStageBits mask = (ShaderStageBits)(1 << (int)stage);
foreach(var descset in m_Vulkan.graphics.DescSets)
{
foreach (var bind in descset.bindings)
{
if ((bind.type == ShaderBindType.ImageSampler ||
bind.type == ShaderBindType.InputAttachment ||
bind.type == ShaderBindType.ReadOnlyBuffer ||
bind.type == ShaderBindType.ReadOnlyImage ||
bind.type == ShaderBindType.ReadOnlyTBuffer
) && (bind.stageFlags & mask) == mask)
{
// VKTODOMED handle bind.arraySize
ret.Add(bind.binds[0].res);
}
else
{
// texture viewer currently expects binds to match up to resource list
// so we need to pad with empty elements
ret.Add(ResourceId.Null);
}
}
}
return ret.ToArray();
}
}
return new ResourceId[0];
@@ -773,6 +808,39 @@ namespace renderdocui.Code
return ret;
}
else if (IsLogVK)
{
VulkanPipelineState.Pipeline.DescriptorSet[] descsets = m_Vulkan.graphics.DescSets;
if (stage == ShaderStageType.Compute)
descsets = m_Vulkan.compute.DescSets;
List<ResourceId> ret = new List<ResourceId>();
ShaderStageBits mask = (ShaderStageBits)(1 << (int)stage);
foreach (var descset in m_Vulkan.graphics.DescSets)
{
foreach (var bind in descset.bindings)
{
if ((bind.type == ShaderBindType.ReadWriteBuffer ||
bind.type == ShaderBindType.ReadWriteImage ||
bind.type == ShaderBindType.ReadWriteTBuffer
) && (bind.stageFlags & mask) == mask)
{
// VKTODOMED handle bind.arraySize
ret.Add(bind.binds[0].res);
}
else
{
// texture viewer currently expects binds to match up to resource list
// so we need to pad with empty elements
ret.Add(ResourceId.Null);
}
}
}
return ret.ToArray();
}
}
return new ResourceId[0];
+4
View File
@@ -1342,6 +1342,9 @@ namespace renderdocui.Windows
}
rtPanel.RefreshLayout();
// VKTODOMED all this needs to be updated to account for multiple descriptor sets
// VKTODOMED also needs to handle array descriptors (ie. not texture arrays)
i = 0;
for(; i < Texs.Length; i++)
@@ -1365,6 +1368,7 @@ namespace renderdocui.Windows
{
used = true;
bindName = "<" + bind.name + ">";
break;
}
}
}