Fix some misc bugs

This commit is contained in:
baldurk
2016-02-07 18:48:35 +01:00
parent ebfd953b5d
commit 795fbcaf8d
4 changed files with 81 additions and 3 deletions
+71
View File
@@ -2275,6 +2275,20 @@ string ToStrHelper<false, VkRect2D>::Get(const VkRect2D &el)
return StringFormat::Fmt("VkRect2D<%dx%d+%d+%d>", el.extent.width, el.extent.height, el.offset.x, el.offset.y);
}
template<>
string ToStrHelper<false, VkClearRect>::Get(const VkClearRect &el)
{
return StringFormat::Fmt("VkClearRect<%dx%d+%d+%d %u->%u>",
el.rect.extent.width, el.rect.extent.height, el.rect.offset.x, el.rect.offset.y,
el.baseArrayLayer, el.baseArrayLayer+el.layerCount);
}
template<>
string ToStrHelper<false, VkClearAttachment>::Get(const VkClearAttachment &el)
{
return StringFormat::Fmt("%s[%u] = %s", ToStr::Get((VkImageAspectFlagBits)el.aspectMask).c_str(), el.colorAttachment, ToStr::Get(el.clearValue).c_str());
}
template<>
string ToStrHelper<false, VkExtent2D>::Get(const VkExtent2D &el)
{
@@ -2890,6 +2904,15 @@ void Serialiser::Serialise(const char *name, VkSparseImageMemoryBind &el)
Serialise("flags", (VkSparseMemoryBindFlagBits &)el.flags);
}
template<>
void Serialiser::Serialise(const char *name, VkSparseImageMemoryBindInfo &el)
{
ScopedContext scope(this, name, "VkSparseImageMemoryBindInfo", 0, true);
SerialiseObject(VkImage, "image", el.image);
SerialiseComplexArray("pBinds", (VkSparseImageMemoryBind *&)el.pBinds, el.bindCount);
}
template<>
void Serialiser::Serialise(const char *name, VkBindSparseInfo &el)
{
@@ -3837,6 +3860,39 @@ void Serialiser::Deserialise(const VkDescriptorPoolCreateInfo* const el) const
}
}
template<>
void Serialiser::Serialise(const char *name, VkDescriptorSetAllocateInfo &el)
{
ScopedContext scope(this, name, "VkDescriptorSetAllocateInfo", 0, true);
RDCASSERT(m_Mode < WRITING || el.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO);
SerialiseNext(this, el.sType, el.pNext);
SerialiseObject(VkDescriptorPool, "descriptorPool", el.descriptorPool);
// need to do this one by hand since it's just an array of objects that don't themselves have
// a Serialise overload
Serialise("setLayoutCount", el.setLayoutCount);
if(m_Mode == READING)
el.pSetLayouts = el.setLayoutCount ? new VkDescriptorSetLayout[el.setLayoutCount] : NULL;
// cast away const on array so we can assign to it on reading
VkDescriptorSetLayout* layouts = (VkDescriptorSetLayout*)el.pSetLayouts;
for(uint32_t i=0; i < el.setLayoutCount; i++)
SerialiseObject(VkDescriptorSetLayout, "pSetLayouts", layouts[i]);
}
template<>
void Serialiser::Deserialise(const VkDescriptorSetAllocateInfo* const el) const
{
if(m_Mode == READING)
{
RDCASSERT(el->pNext == NULL); // otherwise delete
delete [] el->pSetLayouts;
}
}
template<>
void Serialiser::Serialise(const char *name, VkDescriptorImageInfo &el)
{
@@ -4114,3 +4170,18 @@ void Serialiser::Serialise(const char *name, VkSwapchainCreateInfoKHR &el)
// don't need the old swap chain
}
// this isn't a real vulkan type, it's our own "anything that could be in a descriptor"
// structure that
template<> void Serialiser::Serialise(const char *name, DescriptorSetSlot &el)
{
SerialiseObject(VkBuffer, "bufferInfo.buffer", el.bufferInfo.buffer);
Serialise("bufferInfo.offset", el.bufferInfo.offset);
Serialise("bufferInfo.range", el.bufferInfo.range);
SerialiseObject(VkSampler, "imageInfo.sampler", el.imageInfo.sampler);
SerialiseObject(VkImageView, "imageInfo.imageView", el.imageInfo.imageView);
Serialise("imageInfo.imageLayout", el.imageInfo.imageLayout);
SerialiseObject(VkBufferView, "texelBufferView", el.texelBufferView);
}
+6
View File
@@ -70,6 +70,7 @@ template<> void Serialiser::Serialise(const char *name, VkBufferCreateInfo &el);
template<> void Serialiser::Serialise(const char *name, VkBufferViewCreateInfo &el);
template<> void Serialiser::Serialise(const char *name, VkImageCreateInfo &el);
template<> void Serialiser::Serialise(const char *name, VkImageViewCreateInfo &el);
template<> void Serialiser::Serialise(const char *name, VkSparseMemoryBind &el);
template<> void Serialiser::Serialise(const char *name, VkBindSparseInfo &el);
template<> void Serialiser::Serialise(const char *name, VkFramebufferCreateInfo &el);
template<> void Serialiser::Serialise(const char *name, VkRenderPassCreateInfo &el);
@@ -87,6 +88,7 @@ template<> void Serialiser::Serialise(const char *name, VkPushConstantRange &el)
template<> void Serialiser::Serialise(const char *name, VkDescriptorSetLayoutBinding &el);
template<> void Serialiser::Serialise(const char *name, VkDescriptorSetLayoutCreateInfo &el);
template<> void Serialiser::Serialise(const char *name, VkDescriptorPoolCreateInfo &el);
template<> void Serialiser::Serialise(const char *name, VkDescriptorSetAllocateInfo &el);
template<> void Serialiser::Serialise(const char *name, VkWriteDescriptorSet &el);
template<> void Serialiser::Serialise(const char *name, VkCopyDescriptorSet &el);
template<> void Serialiser::Serialise(const char *name, VkCommandPoolCreateInfo &el);
@@ -119,10 +121,14 @@ template<> void Serialiser::Serialise(const char *name, VkImageResolve &el);
template<> void Serialiser::Serialise(const char *name, VkSwapchainCreateInfoKHR &el);
struct DescriptorSetSlot;
template<> void Serialiser::Serialise(const char *name, DescriptorSetSlot &el);
template<> void Serialiser::Deserialise(const VkDeviceCreateInfo* const el) const;
template<> void Serialiser::Deserialise(const VkBufferCreateInfo* const el) const;
template<> void Serialiser::Deserialise(const VkImageCreateInfo* const el) const;
template<> void Serialiser::Deserialise(const VkBindSparseInfo* const el) const;
template<> void Serialiser::Deserialise(const VkDescriptorSetAllocateInfo* const el) const;
template<> void Serialiser::Deserialise(const VkFramebufferCreateInfo* const el) const;
template<> void Serialiser::Deserialise(const VkRenderPassCreateInfo* const el) const;
template<> void Serialiser::Deserialise(const VkRenderPassBeginInfo* const el) const;
+1
View File
@@ -52,6 +52,7 @@ WRAPPED_POOL_INST(WrappedVkFramebuffer)
WRAPPED_POOL_INST(WrappedVkCommandPool)
WRAPPED_POOL_INST(WrappedVkSwapchainKHR)
WRAPPED_POOL_INST(WrappedVkSurfaceKHR)
byte VkResourceRecord::markerValue[32] = {
0xaa, 0xbb, 0xcc, 0xdd,
@@ -2023,7 +2023,7 @@ namespace renderdocui.Windows.PipelineState
string slotname = bindMap.bind.ToString();
slotname += ": " + b.name;
for (int a = 0; a < bind.arraySize; a++)
for (int a = 0; a < bind.descriptorCount; a++)
{
var descriptorBind = bind.binds[a];
@@ -2093,7 +2093,7 @@ namespace renderdocui.Windows.PipelineState
string slotname = bindMap.bind.ToString();
slotname += ": " + b.name;
for (int a = 0; a < bind.arraySize; a++)
for (int a = 0; a < bind.descriptorCount; a++)
{
var descriptorBind = bind.binds[a];
@@ -2209,7 +2209,7 @@ namespace renderdocui.Windows.PipelineState
string slotname = bindMap.bind.ToString();
slotname += ": " + b.name;
for (int a = 0; a < bind.arraySize; a++)
for (int a = 0; a < bind.descriptorCount; a++)
{
var descriptorBind = bind.binds[a];