111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* THIS FILE IS GENERATED. DO NOT EDIT. */ 211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* 411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Vulkan 511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Copyright (c) 2015-2016 The Khronos Group Inc. 711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Copyright (c) 2015-2016 Valve Corporation. 811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Copyright (c) 2015-2016 LunarG, Inc. 911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Copyright (c) 2015-2016 Google Inc. 1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Licensed under the Apache License, Version 2.0 (the "License"); 1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * you may not use this file except in compliance with the License. 1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * You may obtain a copy of the License at 1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * http://www.apache.org/licenses/LICENSE-2.0 1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Unless required by applicable law or agreed to in writing, software 1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * distributed under the License is distributed on an "AS IS" BASIS, 1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * See the License for the specific language governing permissions and 2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * limitations under the License. 2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Author: Courtney Goeltzenleuchter <courtney@LunarG.com> 2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Author: Tobin Ehlis <tobin@lunarg.com> 2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert */ 2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert//#includes, #defines, globals and such... 2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <vulkan/vulkan.h> 2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <stdint.h> 2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <cinttypes> 3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <stdio.h> 3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <stdlib.h> 3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include "vk_enum_string_helper.h" 3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// Function Prototypes 3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* dynamic_display(const void* pStruct, const char* prefix); 3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkallocationcallbacks(const VkAllocationCallbacks* pStruct, const char* prefix); 3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkandroidsurfacecreateinfokhr(const VkAndroidSurfaceCreateInfoKHR* pStruct, const char* prefix); 3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkapplicationinfo(const VkApplicationInfo* pStruct, const char* prefix); 3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkattachmentdescription(const VkAttachmentDescription* pStruct, const char* prefix); 4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkattachmentreference(const VkAttachmentReference* pStruct, const char* prefix); 4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkbindsparseinfo(const VkBindSparseInfo* pStruct, const char* prefix); 4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkbuffercopy(const VkBufferCopy* pStruct, const char* prefix); 4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkbuffercreateinfo(const VkBufferCreateInfo* pStruct, const char* prefix); 4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkbufferimagecopy(const VkBufferImageCopy* pStruct, const char* prefix); 4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkbuffermemorybarrier(const VkBufferMemoryBarrier* pStruct, const char* prefix); 4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkbufferviewcreateinfo(const VkBufferViewCreateInfo* pStruct, const char* prefix); 4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkclearattachment(const VkClearAttachment* pStruct, const char* prefix); 4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkclearcolorvalue(const VkClearColorValue* pStruct, const char* prefix); 4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkcleardepthstencilvalue(const VkClearDepthStencilValue* pStruct, const char* prefix); 5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkclearrect(const VkClearRect* pStruct, const char* prefix); 5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkclearvalue(const VkClearValue* pStruct, const char* prefix); 5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkcommandbufferallocateinfo(const VkCommandBufferAllocateInfo* pStruct, const char* prefix); 5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkcommandbufferbegininfo(const VkCommandBufferBeginInfo* pStruct, const char* prefix); 5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkcommandbufferinheritanceinfo(const VkCommandBufferInheritanceInfo* pStruct, const char* prefix); 5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkcommandpoolcreateinfo(const VkCommandPoolCreateInfo* pStruct, const char* prefix); 5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkcomponentmapping(const VkComponentMapping* pStruct, const char* prefix); 5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkcomputepipelinecreateinfo(const VkComputePipelineCreateInfo* pStruct, const char* prefix); 5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkcopydescriptorset(const VkCopyDescriptorSet* pStruct, const char* prefix); 5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdebugmarkermarkerinfoext(const VkDebugMarkerMarkerInfoEXT* pStruct, const char* prefix); 6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdebugmarkerobjectnameinfoext(const VkDebugMarkerObjectNameInfoEXT* pStruct, const char* prefix); 6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdebugmarkerobjecttaginfoext(const VkDebugMarkerObjectTagInfoEXT* pStruct, const char* prefix); 6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdebugreportcallbackcreateinfoext(const VkDebugReportCallbackCreateInfoEXT* pStruct, const char* prefix); 6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdescriptorbufferinfo(const VkDescriptorBufferInfo* pStruct, const char* prefix); 6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdescriptorimageinfo(const VkDescriptorImageInfo* pStruct, const char* prefix); 6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdescriptorpoolcreateinfo(const VkDescriptorPoolCreateInfo* pStruct, const char* prefix); 6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdescriptorpoolsize(const VkDescriptorPoolSize* pStruct, const char* prefix); 6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdescriptorsetallocateinfo(const VkDescriptorSetAllocateInfo* pStruct, const char* prefix); 6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdescriptorsetlayoutbinding(const VkDescriptorSetLayoutBinding* pStruct, const char* prefix); 6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdescriptorsetlayoutcreateinfo(const VkDescriptorSetLayoutCreateInfo* pStruct, const char* prefix); 7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdevicecreateinfo(const VkDeviceCreateInfo* pStruct, const char* prefix); 7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdevicequeuecreateinfo(const VkDeviceQueueCreateInfo* pStruct, const char* prefix); 7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdispatchindirectcommand(const VkDispatchIndirectCommand* pStruct, const char* prefix); 7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdisplaymodecreateinfokhr(const VkDisplayModeCreateInfoKHR* pStruct, const char* prefix); 7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdisplaymodeparameterskhr(const VkDisplayModeParametersKHR* pStruct, const char* prefix); 7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdisplaymodepropertieskhr(const VkDisplayModePropertiesKHR* pStruct, const char* prefix); 7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdisplayplanecapabilitieskhr(const VkDisplayPlaneCapabilitiesKHR* pStruct, const char* prefix); 7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdisplayplanepropertieskhr(const VkDisplayPlanePropertiesKHR* pStruct, const char* prefix); 7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdisplaypresentinfokhr(const VkDisplayPresentInfoKHR* pStruct, const char* prefix); 7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdisplaypropertieskhr(const VkDisplayPropertiesKHR* pStruct, const char* prefix); 8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdisplaysurfacecreateinfokhr(const VkDisplaySurfaceCreateInfoKHR* pStruct, const char* prefix); 8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdrawindexedindirectcommand(const VkDrawIndexedIndirectCommand* pStruct, const char* prefix); 8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdrawindirectcommand(const VkDrawIndirectCommand* pStruct, const char* prefix); 8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkeventcreateinfo(const VkEventCreateInfo* pStruct, const char* prefix); 8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkextensionproperties(const VkExtensionProperties* pStruct, const char* prefix); 8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkextent2d(const VkExtent2D* pStruct, const char* prefix); 8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkextent3d(const VkExtent3D* pStruct, const char* prefix); 8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkfencecreateinfo(const VkFenceCreateInfo* pStruct, const char* prefix); 8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkformatproperties(const VkFormatProperties* pStruct, const char* prefix); 8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkframebuffercreateinfo(const VkFramebufferCreateInfo* pStruct, const char* prefix); 9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkgraphicspipelinecreateinfo(const VkGraphicsPipelineCreateInfo* pStruct, const char* prefix); 9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkimageblit(const VkImageBlit* pStruct, const char* prefix); 9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkimagecopy(const VkImageCopy* pStruct, const char* prefix); 9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkimagecreateinfo(const VkImageCreateInfo* pStruct, const char* prefix); 9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkimageformatproperties(const VkImageFormatProperties* pStruct, const char* prefix); 9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkimagememorybarrier(const VkImageMemoryBarrier* pStruct, const char* prefix); 9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkimageresolve(const VkImageResolve* pStruct, const char* prefix); 9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkimagesubresource(const VkImageSubresource* pStruct, const char* prefix); 9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkimagesubresourcelayers(const VkImageSubresourceLayers* pStruct, const char* prefix); 9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkimagesubresourcerange(const VkImageSubresourceRange* pStruct, const char* prefix); 10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkimageviewcreateinfo(const VkImageViewCreateInfo* pStruct, const char* prefix); 10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkinstancecreateinfo(const VkInstanceCreateInfo* pStruct, const char* prefix); 10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vklayerproperties(const VkLayerProperties* pStruct, const char* prefix); 10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkmappedmemoryrange(const VkMappedMemoryRange* pStruct, const char* prefix); 10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkmemoryallocateinfo(const VkMemoryAllocateInfo* pStruct, const char* prefix); 10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkmemorybarrier(const VkMemoryBarrier* pStruct, const char* prefix); 10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkmemoryheap(const VkMemoryHeap* pStruct, const char* prefix); 10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkmemoryrequirements(const VkMemoryRequirements* pStruct, const char* prefix); 10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkmemorytype(const VkMemoryType* pStruct, const char* prefix); 10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkmirsurfacecreateinfokhr(const VkMirSurfaceCreateInfoKHR* pStruct, const char* prefix); 11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkoffset2d(const VkOffset2D* pStruct, const char* prefix); 11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkoffset3d(const VkOffset3D* pStruct, const char* prefix); 11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkphysicaldevicefeatures(const VkPhysicalDeviceFeatures* pStruct, const char* prefix); 11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkphysicaldevicelimits(const VkPhysicalDeviceLimits* pStruct, const char* prefix); 11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkphysicaldevicememoryproperties(const VkPhysicalDeviceMemoryProperties* pStruct, const char* prefix); 11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkphysicaldeviceproperties(const VkPhysicalDeviceProperties* pStruct, const char* prefix); 11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkphysicaldevicesparseproperties(const VkPhysicalDeviceSparseProperties* pStruct, const char* prefix); 11711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkpipelinecachecreateinfo(const VkPipelineCacheCreateInfo* pStruct, const char* prefix); 11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkpipelinecolorblendattachmentstate(const VkPipelineColorBlendAttachmentState* pStruct, const char* prefix); 11911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkpipelinecolorblendstatecreateinfo(const VkPipelineColorBlendStateCreateInfo* pStruct, const char* prefix); 12011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkpipelinedepthstencilstatecreateinfo(const VkPipelineDepthStencilStateCreateInfo* pStruct, const char* prefix); 12111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkpipelinedynamicstatecreateinfo(const VkPipelineDynamicStateCreateInfo* pStruct, const char* prefix); 12211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkpipelineinputassemblystatecreateinfo(const VkPipelineInputAssemblyStateCreateInfo* pStruct, const char* prefix); 12311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkpipelinelayoutcreateinfo(const VkPipelineLayoutCreateInfo* pStruct, const char* prefix); 12411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkpipelinemultisamplestatecreateinfo(const VkPipelineMultisampleStateCreateInfo* pStruct, const char* prefix); 12511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkpipelinerasterizationstatecreateinfo(const VkPipelineRasterizationStateCreateInfo* pStruct, const char* prefix); 12611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkpipelinerasterizationstaterasterizationorderamd(const VkPipelineRasterizationStateRasterizationOrderAMD* pStruct, const char* prefix); 12711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkpipelineshaderstagecreateinfo(const VkPipelineShaderStageCreateInfo* pStruct, const char* prefix); 12811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkpipelinetessellationstatecreateinfo(const VkPipelineTessellationStateCreateInfo* pStruct, const char* prefix); 12911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkpipelinevertexinputstatecreateinfo(const VkPipelineVertexInputStateCreateInfo* pStruct, const char* prefix); 13011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkpipelineviewportstatecreateinfo(const VkPipelineViewportStateCreateInfo* pStruct, const char* prefix); 13111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkpresentinfokhr(const VkPresentInfoKHR* pStruct, const char* prefix); 13211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkpushconstantrange(const VkPushConstantRange* pStruct, const char* prefix); 13311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkquerypoolcreateinfo(const VkQueryPoolCreateInfo* pStruct, const char* prefix); 13411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkqueuefamilyproperties(const VkQueueFamilyProperties* pStruct, const char* prefix); 13511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkrect2d(const VkRect2D* pStruct, const char* prefix); 13611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkrenderpassbegininfo(const VkRenderPassBeginInfo* pStruct, const char* prefix); 13711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkrenderpasscreateinfo(const VkRenderPassCreateInfo* pStruct, const char* prefix); 13811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vksamplercreateinfo(const VkSamplerCreateInfo* pStruct, const char* prefix); 13911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vksemaphorecreateinfo(const VkSemaphoreCreateInfo* pStruct, const char* prefix); 14011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkshadermodulecreateinfo(const VkShaderModuleCreateInfo* pStruct, const char* prefix); 14111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vksparsebuffermemorybindinfo(const VkSparseBufferMemoryBindInfo* pStruct, const char* prefix); 14211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vksparseimageformatproperties(const VkSparseImageFormatProperties* pStruct, const char* prefix); 14311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vksparseimagememorybind(const VkSparseImageMemoryBind* pStruct, const char* prefix); 14411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vksparseimagememorybindinfo(const VkSparseImageMemoryBindInfo* pStruct, const char* prefix); 14511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vksparseimagememoryrequirements(const VkSparseImageMemoryRequirements* pStruct, const char* prefix); 14611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vksparseimageopaquememorybindinfo(const VkSparseImageOpaqueMemoryBindInfo* pStruct, const char* prefix); 14711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vksparsememorybind(const VkSparseMemoryBind* pStruct, const char* prefix); 14811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkspecializationinfo(const VkSpecializationInfo* pStruct, const char* prefix); 14911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkspecializationmapentry(const VkSpecializationMapEntry* pStruct, const char* prefix); 15011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkstencilopstate(const VkStencilOpState* pStruct, const char* prefix); 15111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vksubmitinfo(const VkSubmitInfo* pStruct, const char* prefix); 15211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vksubpassdependency(const VkSubpassDependency* pStruct, const char* prefix); 15311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vksubpassdescription(const VkSubpassDescription* pStruct, const char* prefix); 15411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vksubresourcelayout(const VkSubresourceLayout* pStruct, const char* prefix); 15511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vksurfacecapabilitieskhr(const VkSurfaceCapabilitiesKHR* pStruct, const char* prefix); 15611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vksurfaceformatkhr(const VkSurfaceFormatKHR* pStruct, const char* prefix); 15711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkswapchaincreateinfokhr(const VkSwapchainCreateInfoKHR* pStruct, const char* prefix); 15811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkvertexinputattributedescription(const VkVertexInputAttributeDescription* pStruct, const char* prefix); 15911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkvertexinputbindingdescription(const VkVertexInputBindingDescription* pStruct, const char* prefix); 16011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkviewport(const VkViewport* pStruct, const char* prefix); 16111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkwaylandsurfacecreateinfokhr(const VkWaylandSurfaceCreateInfoKHR* pStruct, const char* prefix); 16211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkwin32surfacecreateinfokhr(const VkWin32SurfaceCreateInfoKHR* pStruct, const char* prefix); 16311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkwritedescriptorset(const VkWriteDescriptorSet* pStruct, const char* prefix); 16411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkxcbsurfacecreateinfokhr(const VkXcbSurfaceCreateInfoKHR* pStruct, const char* prefix); 16511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkxlibsurfacecreateinfokhr(const VkXlibSurfaceCreateInfoKHR* pStruct, const char* prefix); 16611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 16711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if defined(_WIN32) 16811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// Microsoft did not implement C99 in Visual Studio; but started adding it with 16911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// VS2013. However, VS2013 still did not have snprintf(). The following is a 17011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// work-around. 17111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define snprintf _snprintf 17211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif // _WIN32 17311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 17411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkallocationcallbacks(const VkAllocationCallbacks* pStruct, const char* prefix) 17511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 17611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 17711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 17811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 17911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 18011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%spUserData = addr\n%spfnAllocation = addr\n%spfnReallocation = addr\n%spfnFree = addr\n%spfnInternalAllocation = addr\n%spfnInternalFree = addr\n", prefix, prefix, prefix, prefix, prefix, prefix); 18111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 18211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 18311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkandroidsurfacecreateinfokhr(const VkAndroidSurfaceCreateInfoKHR* pStruct, const char* prefix) 18411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 18511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 18611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 18711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 18811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 18911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 19011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 19111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 19211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 19311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 19411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 19511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 19611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 19711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 19811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 19911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 20011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 20111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 20211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 20311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%swindow = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix); 20411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 20511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 20611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 20711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 20811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 20911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 21011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 21111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 21211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 21311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkapplicationinfo(const VkApplicationInfo* pStruct, const char* prefix) 21411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 21511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 21611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 21711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 21811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 21911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 22011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 22111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 22211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 22311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 22411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 22511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 22611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 22711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 22811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 22911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 23011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 23111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 23211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 23311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%spApplicationName = addr\n%sapplicationVersion = %u\n%spEngineName = addr\n%sengineVersion = %u\n%sapiVersion = %u\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, prefix, (pStruct->applicationVersion), prefix, prefix, (pStruct->engineVersion), prefix, (pStruct->apiVersion)); 23411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 23511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 23611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 23711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 23811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 23911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 24011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 24111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 24211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 24311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkattachmentdescription(const VkAttachmentDescription* pStruct, const char* prefix) 24411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 24511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 24611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 24711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 24811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 24911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%sflags = %u\n%sformat = %s\n%ssamples = %s\n%sloadOp = %s\n%sstoreOp = %s\n%sstencilLoadOp = %s\n%sstencilStoreOp = %s\n%sinitialLayout = %s\n%sfinalLayout = %s\n", prefix, (pStruct->flags), prefix, string_VkFormat(pStruct->format), prefix, string_VkSampleCountFlagBits(pStruct->samples), prefix, string_VkAttachmentLoadOp(pStruct->loadOp), prefix, string_VkAttachmentStoreOp(pStruct->storeOp), prefix, string_VkAttachmentLoadOp(pStruct->stencilLoadOp), prefix, string_VkAttachmentStoreOp(pStruct->stencilStoreOp), prefix, string_VkImageLayout(pStruct->initialLayout), prefix, string_VkImageLayout(pStruct->finalLayout)); 25011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 25111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 25211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkattachmentreference(const VkAttachmentReference* pStruct, const char* prefix) 25311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 25411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 25511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 25611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 25711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 25811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%sattachment = %u\n%slayout = %s\n", prefix, (pStruct->attachment), prefix, string_VkImageLayout(pStruct->layout)); 25911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 26011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 26111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkbindsparseinfo(const VkBindSparseInfo* pStruct, const char* prefix) 26211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 26311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 26411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 26511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 26611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 26711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 26811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 26911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[4]; 27011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 27111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 27211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 27311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 27411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 27511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 27611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 27711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 27811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 27911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pBufferBinds) { 28011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vksparsebuffermemorybindinfo(pStruct->pBufferBinds, extra_indent); 28111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 28211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 28311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %spBufferBinds (addr)\n%s", prefix, tmpStr); 28411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 28511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 28611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = ""; 28711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pImageOpaqueBinds) { 28811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vksparseimageopaquememorybindinfo(pStruct->pImageOpaqueBinds, extra_indent); 28911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 29011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[2] = (char*)malloc(len); 29111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[2], len, " %spImageOpaqueBinds (addr)\n%s", prefix, tmpStr); 29211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 29311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 29411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[2] = ""; 29511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pImageBinds) { 29611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vksparseimagememorybindinfo(pStruct->pImageBinds, extra_indent); 29711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 29811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[3] = (char*)malloc(len); 29911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[3], len, " %spImageBinds (addr)\n%s", prefix, tmpStr); 30011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 30111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 30211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[3] = ""; 30311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + strlen(stp_strs[3]) + sizeof(char)*1024; 30411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 30511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%swaitSemaphoreCount = %u\n%spWaitSemaphores = addr\n%sbufferBindCount = %u\n%spBufferBinds = addr\n%simageOpaqueBindCount = %u\n%spImageOpaqueBinds = addr\n%simageBindCount = %u\n%spImageBinds = addr\n%ssignalSemaphoreCount = %u\n%spSignalSemaphores = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->waitSemaphoreCount), prefix, prefix, (pStruct->bufferBindCount), prefix, prefix, (pStruct->imageOpaqueBindCount), prefix, prefix, (pStruct->imageBindCount), prefix, prefix, (pStruct->signalSemaphoreCount), prefix); 30611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 3; stp_index >= 0; stp_index--) { 30711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 30811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 30911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 31011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 31111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 31211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 31311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 31411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 31511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkbuffercopy(const VkBufferCopy* pStruct, const char* prefix) 31611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 31711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 31811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 31911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 32011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 32111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssrcOffset = " PRINTF_SIZE_T_SPECIFIER "\n%sdstOffset = " PRINTF_SIZE_T_SPECIFIER "\n%ssize = " PRINTF_SIZE_T_SPECIFIER "\n", prefix, (pStruct->srcOffset), prefix, (pStruct->dstOffset), prefix, (pStruct->size)); 32211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 32311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 32411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkbuffercreateinfo(const VkBufferCreateInfo* pStruct, const char* prefix) 32511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 32611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 32711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 32811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 32911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 33011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 33111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 33211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 33311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 33411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 33511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 33611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 33711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 33811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 33911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 34011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 34111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 34211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 34311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 34411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%ssize = " PRINTF_SIZE_T_SPECIFIER "\n%susage = %u\n%ssharingMode = %s\n%squeueFamilyIndexCount = %u\n%spQueueFamilyIndices = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, (pStruct->size), prefix, (pStruct->usage), prefix, string_VkSharingMode(pStruct->sharingMode), prefix, (pStruct->queueFamilyIndexCount), prefix); 34511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 34611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 34711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 34811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 34911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 35011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 35111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 35211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 35311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 35411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkbufferimagecopy(const VkBufferImageCopy* pStruct, const char* prefix) 35511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 35611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 35711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 35811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 35911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 36011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 36111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 36211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[3]; 36311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkimagesubresourcelayers(&pStruct->imageSubresource, extra_indent); 36411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 36511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 36611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %simageSubresource (addr)\n%s", prefix, tmpStr); 36711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkoffset3d(&pStruct->imageOffset, extra_indent); 36811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 36911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 37011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %simageOffset (addr)\n%s", prefix, tmpStr); 37111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkextent3d(&pStruct->imageExtent, extra_indent); 37211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 37311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[2] = (char*)malloc(len); 37411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[2], len, " %simageExtent (addr)\n%s", prefix, tmpStr); 37511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + sizeof(char)*1024; 37611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 37711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%sbufferOffset = " PRINTF_SIZE_T_SPECIFIER "\n%sbufferRowLength = %u\n%sbufferImageHeight = %u\n%simageSubresource = addr\n%simageOffset = addr\n%simageExtent = addr\n", prefix, (pStruct->bufferOffset), prefix, (pStruct->bufferRowLength), prefix, (pStruct->bufferImageHeight), prefix, prefix, prefix); 37811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 2; stp_index >= 0; stp_index--) { 37911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 38011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 38111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 38211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 38311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 38411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 38511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 38611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 38711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkbuffermemorybarrier(const VkBufferMemoryBarrier* pStruct, const char* prefix) 38811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 38911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 39011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 39111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 39211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 39311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 39411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 39511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 39611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 39711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 39811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 39911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 40011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 40111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 40211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 40311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 40411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 40511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 40611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 40711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%ssrcAccessMask = %u\n%sdstAccessMask = %u\n%ssrcQueueFamilyIndex = %u\n%sdstQueueFamilyIndex = %u\n%sbuffer = addr\n%soffset = " PRINTF_SIZE_T_SPECIFIER "\n%ssize = " PRINTF_SIZE_T_SPECIFIER "\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->srcAccessMask), prefix, (pStruct->dstAccessMask), prefix, (pStruct->srcQueueFamilyIndex), prefix, (pStruct->dstQueueFamilyIndex), prefix, prefix, (pStruct->offset), prefix, (pStruct->size)); 40811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 40911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 41011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 41111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 41211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 41311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 41411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 41511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 41611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 41711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkbufferviewcreateinfo(const VkBufferViewCreateInfo* pStruct, const char* prefix) 41811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 41911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 42011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 42111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 42211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 42311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 42411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 42511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 42611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 42711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 42811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 42911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 43011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 43111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 43211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 43311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 43411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 43511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 43611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 43711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%sbuffer = addr\n%sformat = %s\n%soffset = " PRINTF_SIZE_T_SPECIFIER "\n%srange = " PRINTF_SIZE_T_SPECIFIER "\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, prefix, string_VkFormat(pStruct->format), prefix, (pStruct->offset), prefix, (pStruct->range)); 43811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 43911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 44011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 44111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 44211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 44311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 44411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 44511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 44611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 44711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkclearattachment(const VkClearAttachment* pStruct, const char* prefix) 44811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 44911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 45011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 45111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 45211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 45311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 45411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 45511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 45611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkclearvalue(&pStruct->clearValue, extra_indent); 45711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 45811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 45911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %sclearValue (addr)\n%s", prefix, tmpStr); 46011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 46111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 46211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%saspectMask = %u\n%scolorAttachment = %u\n%sclearValue = addr\n", prefix, (pStruct->aspectMask), prefix, (pStruct->colorAttachment), prefix); 46311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 46411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 46511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 46611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 46711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 46811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 46911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 47011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 47111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 47211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkclearcolorvalue(const VkClearColorValue* pStruct, const char* prefix) 47311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 47411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 47511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 47611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 47711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 47811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%sfloat32 = addr\n%sint32 = addr\n%suint32 = addr\n", prefix, prefix, prefix); 47911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 48011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 48111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkcleardepthstencilvalue(const VkClearDepthStencilValue* pStruct, const char* prefix) 48211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 48311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 48411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 48511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 48611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 48711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%sdepth = %f\n%sstencil = %u\n", prefix, (pStruct->depth), prefix, (pStruct->stencil)); 48811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 48911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 49011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkclearrect(const VkClearRect* pStruct, const char* prefix) 49111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 49211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 49311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 49411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 49511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 49611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 49711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 49811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 49911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkrect2d(&pStruct->rect, extra_indent); 50011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 50111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 50211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %srect (addr)\n%s", prefix, tmpStr); 50311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 50411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 50511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%srect = addr\n%sbaseArrayLayer = %u\n%slayerCount = %u\n", prefix, prefix, (pStruct->baseArrayLayer), prefix, (pStruct->layerCount)); 50611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 50711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 50811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 50911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 51011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 51111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 51211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 51311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 51411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 51511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkclearvalue(const VkClearValue* pStruct, const char* prefix) 51611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 51711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 51811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 51911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 52011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 52111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 52211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 52311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[2]; 52411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkclearcolorvalue(&pStruct->color, extra_indent); 52511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 52611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 52711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %scolor (addr)\n%s", prefix, tmpStr); 52811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkcleardepthstencilvalue(&pStruct->depthStencil, extra_indent); 52911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 53011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 53111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %sdepthStencil (addr)\n%s", prefix, tmpStr); 53211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 53311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 53411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%scolor = addr\n%sdepthStencil = addr\n", prefix, prefix); 53511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 53611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 53711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 53811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 53911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 54011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 54111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 54211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 54311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 54411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkcommandbufferallocateinfo(const VkCommandBufferAllocateInfo* pStruct, const char* prefix) 54511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 54611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 54711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 54811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 54911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 55011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 55111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 55211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 55311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 55411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 55511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 55611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 55711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 55811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 55911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 56011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 56111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 56211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 56311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 56411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%scommandPool = addr\n%slevel = %s\n%scommandBufferCount = %u\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, prefix, string_VkCommandBufferLevel(pStruct->level), prefix, (pStruct->commandBufferCount)); 56511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 56611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 56711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 56811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 56911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 57011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 57111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 57211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 57311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 57411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkcommandbufferbegininfo(const VkCommandBufferBeginInfo* pStruct, const char* prefix) 57511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 57611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 57711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 57811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 57911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 58011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 58111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 58211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[2]; 58311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 58411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 58511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 58611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 58711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 58811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 58911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 59011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 59111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 59211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pInheritanceInfo) { 59311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkcommandbufferinheritanceinfo(pStruct->pInheritanceInfo, extra_indent); 59411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 59511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 59611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %spInheritanceInfo (addr)\n%s", prefix, tmpStr); 59711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 59811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 59911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = ""; 60011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 60111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 60211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%spInheritanceInfo = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix); 60311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 60411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 60511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 60611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 60711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 60811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 60911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 61011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 61111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 61211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkcommandbufferinheritanceinfo(const VkCommandBufferInheritanceInfo* pStruct, const char* prefix) 61311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 61411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 61511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 61611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 61711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 61811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 61911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 62011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 62111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 62211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 62311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 62411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 62511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 62611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 62711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 62811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 62911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 63011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 63111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 63211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%srenderPass = addr\n%ssubpass = %u\n%sframebuffer = addr\n%socclusionQueryEnable = %s\n%squeryFlags = %u\n%spipelineStatistics = %u\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, prefix, (pStruct->subpass), prefix, prefix, (pStruct->occlusionQueryEnable) ? "TRUE" : "FALSE", prefix, (pStruct->queryFlags), prefix, (pStruct->pipelineStatistics)); 63311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 63411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 63511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 63611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 63711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 63811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 63911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 64011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 64111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 64211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkcommandpoolcreateinfo(const VkCommandPoolCreateInfo* pStruct, const char* prefix) 64311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 64411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 64511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 64611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 64711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 64811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 64911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 65011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 65111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 65211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 65311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 65411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 65511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 65611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 65711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 65811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 65911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 66011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 66111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 66211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%squeueFamilyIndex = %u\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, (pStruct->queueFamilyIndex)); 66311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 66411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 66511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 66611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 66711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 66811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 66911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 67011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 67111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 67211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkcomponentmapping(const VkComponentMapping* pStruct, const char* prefix) 67311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 67411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 67511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 67611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 67711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 67811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%sr = %s\n%sg = %s\n%sb = %s\n%sa = %s\n", prefix, string_VkComponentSwizzle(pStruct->r), prefix, string_VkComponentSwizzle(pStruct->g), prefix, string_VkComponentSwizzle(pStruct->b), prefix, string_VkComponentSwizzle(pStruct->a)); 67911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 68011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 68111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkcomputepipelinecreateinfo(const VkComputePipelineCreateInfo* pStruct, const char* prefix) 68211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 68311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 68411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 68511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 68611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 68711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 68811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 68911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[2]; 69011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 69111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 69211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 69311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 69411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 69511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 69611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 69711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 69811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 69911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkpipelineshaderstagecreateinfo(&pStruct->stage, extra_indent); 70011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 70111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 70211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %sstage (addr)\n%s", prefix, tmpStr); 70311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 70411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 70511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%sstage = addr\n%slayout = addr\n%sbasePipelineHandle = addr\n%sbasePipelineIndex = %i\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, prefix, prefix, prefix, (pStruct->basePipelineIndex)); 70611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 70711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 70811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 70911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 71011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 71111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 71211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 71311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 71411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 71511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkcopydescriptorset(const VkCopyDescriptorSet* pStruct, const char* prefix) 71611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 71711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 71811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 71911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 72011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 72111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 72211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 72311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 72411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 72511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 72611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 72711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 72811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 72911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 73011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 73111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 73211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 73311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 73411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 73511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%ssrcSet = addr\n%ssrcBinding = %u\n%ssrcArrayElement = %u\n%sdstSet = addr\n%sdstBinding = %u\n%sdstArrayElement = %u\n%sdescriptorCount = %u\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, prefix, (pStruct->srcBinding), prefix, (pStruct->srcArrayElement), prefix, prefix, (pStruct->dstBinding), prefix, (pStruct->dstArrayElement), prefix, (pStruct->descriptorCount)); 73611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 73711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 73811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 73911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 74011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 74111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 74211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 74311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 74411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 74511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdebugmarkermarkerinfoext(const VkDebugMarkerMarkerInfoEXT* pStruct, const char* prefix) 74611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 74711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 74811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 74911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 75011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 75111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 75211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 75311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 75411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 75511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 75611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 75711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 75811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 75911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 76011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 76111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 76211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 76311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 76411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 76511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%spMarkerName = addr\n%scolor = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, prefix); 76611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 76711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 76811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 76911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 77011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 77111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 77211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 77311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 77411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 77511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdebugmarkerobjectnameinfoext(const VkDebugMarkerObjectNameInfoEXT* pStruct, const char* prefix) 77611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 77711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 77811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 77911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 78011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 78111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 78211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 78311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 78411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 78511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 78611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 78711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 78811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 78911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 79011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 79111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 79211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 79311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 79411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 79511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sobjectType = %s\n%sobject = %" PRId64 "\n%spObjectName = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, string_VkDebugReportObjectTypeEXT(pStruct->objectType), prefix, (pStruct->object), prefix); 79611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 79711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 79811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 79911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 80011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 80111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 80211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 80311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 80411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 80511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdebugmarkerobjecttaginfoext(const VkDebugMarkerObjectTagInfoEXT* pStruct, const char* prefix) 80611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 80711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 80811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 80911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 81011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 81111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 81211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 81311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 81411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 81511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 81611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 81711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 81811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 81911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 82011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 82111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 82211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 82311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 82411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 82511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sobjectType = %s\n%sobject = %" PRId64 "\n%stagName = %" PRId64 "\n%stagSize = " PRINTF_SIZE_T_SPECIFIER "\n%spTag = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, string_VkDebugReportObjectTypeEXT(pStruct->objectType), prefix, (pStruct->object), prefix, (pStruct->tagName), prefix, (pStruct->tagSize), prefix); 82611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 82711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 82811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 82911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 83011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 83111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 83211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 83311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 83411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 83511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdebugreportcallbackcreateinfoext(const VkDebugReportCallbackCreateInfoEXT* pStruct, const char* prefix) 83611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 83711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 83811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 83911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 84011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 84111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 84211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 84311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 84411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 84511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 84611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 84711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 84811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 84911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 85011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 85111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 85211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 85311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 85411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 85511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%spfnCallback = addr\n%spUserData = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, prefix); 85611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 85711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 85811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 85911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 86011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 86111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 86211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 86311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 86411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 86511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdescriptorbufferinfo(const VkDescriptorBufferInfo* pStruct, const char* prefix) 86611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 86711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 86811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 86911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 87011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 87111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%sbuffer = addr\n%soffset = " PRINTF_SIZE_T_SPECIFIER "\n%srange = " PRINTF_SIZE_T_SPECIFIER "\n", prefix, prefix, (pStruct->offset), prefix, (pStruct->range)); 87211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 87311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 87411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdescriptorimageinfo(const VkDescriptorImageInfo* pStruct, const char* prefix) 87511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 87611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 87711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 87811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 87911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 88011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssampler = addr\n%simageView = addr\n%simageLayout = %s\n", prefix, prefix, prefix, string_VkImageLayout(pStruct->imageLayout)); 88111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 88211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 88311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdescriptorpoolcreateinfo(const VkDescriptorPoolCreateInfo* pStruct, const char* prefix) 88411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 88511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 88611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 88711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 88811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 88911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 89011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 89111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[2]; 89211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 89311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 89411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 89511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 89611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 89711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 89811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 89911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 90011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 90111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pPoolSizes) { 90211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkdescriptorpoolsize(pStruct->pPoolSizes, extra_indent); 90311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 90411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 90511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %spPoolSizes (addr)\n%s", prefix, tmpStr); 90611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 90711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 90811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = ""; 90911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 91011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 91111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%smaxSets = %u\n%spoolSizeCount = %u\n%spPoolSizes = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, (pStruct->maxSets), prefix, (pStruct->poolSizeCount), prefix); 91211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 91311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 91411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 91511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 91611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 91711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 91811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 91911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 92011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 92111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdescriptorpoolsize(const VkDescriptorPoolSize* pStruct, const char* prefix) 92211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 92311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 92411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 92511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 92611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 92711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%stype = %s\n%sdescriptorCount = %u\n", prefix, string_VkDescriptorType(pStruct->type), prefix, (pStruct->descriptorCount)); 92811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 92911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 93011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdescriptorsetallocateinfo(const VkDescriptorSetAllocateInfo* pStruct, const char* prefix) 93111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 93211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 93311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 93411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 93511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 93611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 93711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 93811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 93911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 94011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 94111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 94211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 94311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 94411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 94511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 94611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 94711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 94811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 94911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 95011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sdescriptorPool = addr\n%sdescriptorSetCount = %u\n%spSetLayouts = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, prefix, (pStruct->descriptorSetCount), prefix); 95111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 95211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 95311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 95411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 95511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 95611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 95711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 95811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 95911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 96011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdescriptorsetlayoutbinding(const VkDescriptorSetLayoutBinding* pStruct, const char* prefix) 96111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 96211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 96311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 96411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 96511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 96611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%sbinding = %u\n%sdescriptorType = %s\n%sdescriptorCount = %u\n%sstageFlags = %u\n%spImmutableSamplers = addr\n", prefix, (pStruct->binding), prefix, string_VkDescriptorType(pStruct->descriptorType), prefix, (pStruct->descriptorCount), prefix, (pStruct->stageFlags), prefix); 96711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 96811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 96911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdescriptorsetlayoutcreateinfo(const VkDescriptorSetLayoutCreateInfo* pStruct, const char* prefix) 97011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 97111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 97211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 97311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 97411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 97511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 97611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 97711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[2]; 97811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 97911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 98011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 98111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 98211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 98311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 98411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 98511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 98611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 98711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pBindings) { 98811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkdescriptorsetlayoutbinding(pStruct->pBindings, extra_indent); 98911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 99011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 99111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %spBindings (addr)\n%s", prefix, tmpStr); 99211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 99311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 99411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = ""; 99511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 99611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 99711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%sbindingCount = %u\n%spBindings = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, (pStruct->bindingCount), prefix); 99811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 99911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 100011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 100111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 100211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 100311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 100411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 100511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 100611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 100711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdevicecreateinfo(const VkDeviceCreateInfo* pStruct, const char* prefix) 100811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 100911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 101011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 101111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 101211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 101311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 101411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 101511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[3]; 101611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 101711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 101811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 101911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 102011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 102111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 102211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 102311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 102411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 102511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pQueueCreateInfos) { 102611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkdevicequeuecreateinfo(pStruct->pQueueCreateInfos, extra_indent); 102711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 102811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 102911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %spQueueCreateInfos (addr)\n%s", prefix, tmpStr); 103011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 103111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 103211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = ""; 103311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pEnabledFeatures) { 103411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkphysicaldevicefeatures(pStruct->pEnabledFeatures, extra_indent); 103511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 103611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[2] = (char*)malloc(len); 103711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[2], len, " %spEnabledFeatures (addr)\n%s", prefix, tmpStr); 103811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 103911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 104011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[2] = ""; 104111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + sizeof(char)*1024; 104211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 104311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%squeueCreateInfoCount = %u\n%spQueueCreateInfos = addr\n%senabledLayerCount = %u\n%sppEnabledLayerNames = %s\n%senabledExtensionCount = %u\n%sppEnabledExtensionNames = %s\n%spEnabledFeatures = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, (pStruct->queueCreateInfoCount), prefix, prefix, (pStruct->enabledLayerCount), prefix, (pStruct->ppEnabledLayerNames)[0], prefix, (pStruct->enabledExtensionCount), prefix, (pStruct->ppEnabledExtensionNames)[0], prefix); 104411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 2; stp_index >= 0; stp_index--) { 104511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 104611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 104711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 104811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 104911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 105011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 105111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 105211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 105311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdevicequeuecreateinfo(const VkDeviceQueueCreateInfo* pStruct, const char* prefix) 105411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 105511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 105611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 105711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 105811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 105911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 106011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 106111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 106211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 106311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 106411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 106511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 106611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 106711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 106811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 106911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 107011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 107111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 107211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 107311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%squeueFamilyIndex = %u\n%squeueCount = %u\n%spQueuePriorities = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, (pStruct->queueFamilyIndex), prefix, (pStruct->queueCount), prefix); 107411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 107511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 107611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 107711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 107811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 107911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 108011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 108111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 108211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 108311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdispatchindirectcommand(const VkDispatchIndirectCommand* pStruct, const char* prefix) 108411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 108511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 108611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 108711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 108811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 108911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%sx = %u\n%sy = %u\n%sz = %u\n", prefix, (pStruct->x), prefix, (pStruct->y), prefix, (pStruct->z)); 109011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 109111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 109211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdisplaymodecreateinfokhr(const VkDisplayModeCreateInfoKHR* pStruct, const char* prefix) 109311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 109411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 109511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 109611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 109711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 109811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 109911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 110011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[2]; 110111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 110211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 110311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 110411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 110511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 110611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 110711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 110811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 110911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 111011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkdisplaymodeparameterskhr(&pStruct->parameters, extra_indent); 111111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 111211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 111311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %sparameters (addr)\n%s", prefix, tmpStr); 111411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 111511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 111611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%sparameters = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix); 111711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 111811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 111911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 112011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 112111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 112211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 112311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 112411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 112511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 112611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdisplaymodeparameterskhr(const VkDisplayModeParametersKHR* pStruct, const char* prefix) 112711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 112811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 112911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 113011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 113111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 113211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 113311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 113411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 113511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkextent2d(&pStruct->visibleRegion, extra_indent); 113611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 113711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 113811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %svisibleRegion (addr)\n%s", prefix, tmpStr); 113911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 114011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 114111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%svisibleRegion = addr\n%srefreshRate = %u\n", prefix, prefix, (pStruct->refreshRate)); 114211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 114311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 114411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 114511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 114611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 114711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 114811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 114911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 115011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 115111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdisplaymodepropertieskhr(const VkDisplayModePropertiesKHR* pStruct, const char* prefix) 115211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 115311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 115411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 115511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 115611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 115711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 115811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 115911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 116011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkdisplaymodeparameterskhr(&pStruct->parameters, extra_indent); 116111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 116211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 116311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %sparameters (addr)\n%s", prefix, tmpStr); 116411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 116511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 116611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%sdisplayMode = addr\n%sparameters = addr\n", prefix, prefix); 116711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 116811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 116911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 117011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 117111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 117211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 117311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 117411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 117511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 117611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdisplayplanecapabilitieskhr(const VkDisplayPlaneCapabilitiesKHR* pStruct, const char* prefix) 117711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 117811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 117911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 118011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 118111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 118211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 118311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 118411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[8]; 118511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkoffset2d(&pStruct->minSrcPosition, extra_indent); 118611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 118711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 118811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %sminSrcPosition (addr)\n%s", prefix, tmpStr); 118911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkoffset2d(&pStruct->maxSrcPosition, extra_indent); 119011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 119111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 119211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %smaxSrcPosition (addr)\n%s", prefix, tmpStr); 119311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkextent2d(&pStruct->minSrcExtent, extra_indent); 119411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 119511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[2] = (char*)malloc(len); 119611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[2], len, " %sminSrcExtent (addr)\n%s", prefix, tmpStr); 119711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkextent2d(&pStruct->maxSrcExtent, extra_indent); 119811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 119911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[3] = (char*)malloc(len); 120011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[3], len, " %smaxSrcExtent (addr)\n%s", prefix, tmpStr); 120111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkoffset2d(&pStruct->minDstPosition, extra_indent); 120211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 120311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[4] = (char*)malloc(len); 120411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[4], len, " %sminDstPosition (addr)\n%s", prefix, tmpStr); 120511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkoffset2d(&pStruct->maxDstPosition, extra_indent); 120611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 120711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[5] = (char*)malloc(len); 120811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[5], len, " %smaxDstPosition (addr)\n%s", prefix, tmpStr); 120911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkextent2d(&pStruct->minDstExtent, extra_indent); 121011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 121111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[6] = (char*)malloc(len); 121211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[6], len, " %sminDstExtent (addr)\n%s", prefix, tmpStr); 121311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkextent2d(&pStruct->maxDstExtent, extra_indent); 121411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 121511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[7] = (char*)malloc(len); 121611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[7], len, " %smaxDstExtent (addr)\n%s", prefix, tmpStr); 121711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + strlen(stp_strs[3]) + strlen(stp_strs[4]) + strlen(stp_strs[5]) + strlen(stp_strs[6]) + strlen(stp_strs[7]) + sizeof(char)*1024; 121811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 121911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssupportedAlpha = %u\n%sminSrcPosition = addr\n%smaxSrcPosition = addr\n%sminSrcExtent = addr\n%smaxSrcExtent = addr\n%sminDstPosition = addr\n%smaxDstPosition = addr\n%sminDstExtent = addr\n%smaxDstExtent = addr\n", prefix, (pStruct->supportedAlpha), prefix, prefix, prefix, prefix, prefix, prefix, prefix, prefix); 122011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 7; stp_index >= 0; stp_index--) { 122111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 122211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 122311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 122411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 122511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 122611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 122711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 122811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 122911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdisplayplanepropertieskhr(const VkDisplayPlanePropertiesKHR* pStruct, const char* prefix) 123011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 123111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 123211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 123311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 123411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 123511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%scurrentDisplay = addr\n%scurrentStackIndex = %u\n", prefix, prefix, (pStruct->currentStackIndex)); 123611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 123711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 123811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdisplaypresentinfokhr(const VkDisplayPresentInfoKHR* pStruct, const char* prefix) 123911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 124011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 124111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 124211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 124311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 124411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 124511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 124611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[3]; 124711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 124811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 124911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 125011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 125111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 125211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 125311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 125411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 125511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 125611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkrect2d(&pStruct->srcRect, extra_indent); 125711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 125811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 125911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %ssrcRect (addr)\n%s", prefix, tmpStr); 126011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkrect2d(&pStruct->dstRect, extra_indent); 126111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 126211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[2] = (char*)malloc(len); 126311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[2], len, " %sdstRect (addr)\n%s", prefix, tmpStr); 126411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + sizeof(char)*1024; 126511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 126611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%ssrcRect = addr\n%sdstRect = addr\n%spersistent = %s\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, prefix, prefix, (pStruct->persistent) ? "TRUE" : "FALSE"); 126711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 2; stp_index >= 0; stp_index--) { 126811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 126911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 127011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 127111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 127211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 127311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 127411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 127511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 127611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdisplaypropertieskhr(const VkDisplayPropertiesKHR* pStruct, const char* prefix) 127711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 127811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 127911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 128011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 128111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 128211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 128311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 128411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[2]; 128511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkextent2d(&pStruct->physicalDimensions, extra_indent); 128611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 128711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 128811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %sphysicalDimensions (addr)\n%s", prefix, tmpStr); 128911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkextent2d(&pStruct->physicalResolution, extra_indent); 129011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 129111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 129211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %sphysicalResolution (addr)\n%s", prefix, tmpStr); 129311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 129411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 129511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%sdisplay = addr\n%sdisplayName = addr\n%sphysicalDimensions = addr\n%sphysicalResolution = addr\n%ssupportedTransforms = %u\n%splaneReorderPossible = %s\n%spersistentContent = %s\n", prefix, prefix, prefix, prefix, prefix, (pStruct->supportedTransforms), prefix, (pStruct->planeReorderPossible) ? "TRUE" : "FALSE", prefix, (pStruct->persistentContent) ? "TRUE" : "FALSE"); 129611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 129711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 129811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 129911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 130011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 130111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 130211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 130311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 130411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 130511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdisplaysurfacecreateinfokhr(const VkDisplaySurfaceCreateInfoKHR* pStruct, const char* prefix) 130611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 130711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 130811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 130911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 131011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 131111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 131211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 131311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[2]; 131411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 131511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 131611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 131711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 131811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 131911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 132011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 132111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 132211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 132311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkextent2d(&pStruct->imageExtent, extra_indent); 132411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 132511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 132611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %simageExtent (addr)\n%s", prefix, tmpStr); 132711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 132811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 132911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%sdisplayMode = addr\n%splaneIndex = %u\n%splaneStackIndex = %u\n%stransform = %s\n%sglobalAlpha = %f\n%salphaMode = %s\n%simageExtent = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, prefix, (pStruct->planeIndex), prefix, (pStruct->planeStackIndex), prefix, string_VkSurfaceTransformFlagBitsKHR(pStruct->transform), prefix, (pStruct->globalAlpha), prefix, string_VkDisplayPlaneAlphaFlagBitsKHR(pStruct->alphaMode), prefix); 133011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 133111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 133211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 133311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 133411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 133511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 133611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 133711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 133811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 133911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdrawindexedindirectcommand(const VkDrawIndexedIndirectCommand* pStruct, const char* prefix) 134011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 134111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 134211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 134311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 134411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 134511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%sindexCount = %u\n%sinstanceCount = %u\n%sfirstIndex = %u\n%svertexOffset = %i\n%sfirstInstance = %u\n", prefix, (pStruct->indexCount), prefix, (pStruct->instanceCount), prefix, (pStruct->firstIndex), prefix, (pStruct->vertexOffset), prefix, (pStruct->firstInstance)); 134611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 134711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 134811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkdrawindirectcommand(const VkDrawIndirectCommand* pStruct, const char* prefix) 134911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 135011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 135111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 135211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 135311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 135411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%svertexCount = %u\n%sinstanceCount = %u\n%sfirstVertex = %u\n%sfirstInstance = %u\n", prefix, (pStruct->vertexCount), prefix, (pStruct->instanceCount), prefix, (pStruct->firstVertex), prefix, (pStruct->firstInstance)); 135511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 135611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 135711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkeventcreateinfo(const VkEventCreateInfo* pStruct, const char* prefix) 135811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 135911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 136011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 136111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 136211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 136311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 136411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 136511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 136611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 136711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 136811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 136911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 137011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 137111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 137211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 137311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 137411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 137511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 137611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 137711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags)); 137811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 137911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 138011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 138111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 138211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 138311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 138411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 138511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 138611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 138711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkextensionproperties(const VkExtensionProperties* pStruct, const char* prefix) 138811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 138911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 139011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 139111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 139211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 139311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%sextensionName = %s\n%sspecVersion = %u\n", prefix, (pStruct->extensionName), prefix, (pStruct->specVersion)); 139411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 139511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 139611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkextent2d(const VkExtent2D* pStruct, const char* prefix) 139711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 139811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 139911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 140011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 140111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 140211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%swidth = %u\n%sheight = %u\n", prefix, (pStruct->width), prefix, (pStruct->height)); 140311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 140411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 140511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkextent3d(const VkExtent3D* pStruct, const char* prefix) 140611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 140711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 140811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 140911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 141011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 141111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%swidth = %u\n%sheight = %u\n%sdepth = %u\n", prefix, (pStruct->width), prefix, (pStruct->height), prefix, (pStruct->depth)); 141211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 141311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 141411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkfencecreateinfo(const VkFenceCreateInfo* pStruct, const char* prefix) 141511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 141611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 141711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 141811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 141911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 142011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 142111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 142211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 142311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 142411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 142511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 142611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 142711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 142811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 142911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 143011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 143111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 143211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 143311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 143411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags)); 143511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 143611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 143711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 143811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 143911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 144011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 144111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 144211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 144311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 144411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkformatproperties(const VkFormatProperties* pStruct, const char* prefix) 144511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 144611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 144711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 144811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 144911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 145011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%slinearTilingFeatures = %u\n%soptimalTilingFeatures = %u\n%sbufferFeatures = %u\n", prefix, (pStruct->linearTilingFeatures), prefix, (pStruct->optimalTilingFeatures), prefix, (pStruct->bufferFeatures)); 145111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 145211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 145311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkframebuffercreateinfo(const VkFramebufferCreateInfo* pStruct, const char* prefix) 145411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 145511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 145611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 145711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 145811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 145911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 146011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 146111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 146211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 146311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 146411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 146511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 146611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 146711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 146811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 146911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 147011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 147111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 147211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 147311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%srenderPass = addr\n%sattachmentCount = %u\n%spAttachments = addr\n%swidth = %u\n%sheight = %u\n%slayers = %u\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, prefix, (pStruct->attachmentCount), prefix, prefix, (pStruct->width), prefix, (pStruct->height), prefix, (pStruct->layers)); 147411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 147511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 147611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 147711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 147811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 147911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 148011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 148111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 148211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 148311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkgraphicspipelinecreateinfo(const VkGraphicsPipelineCreateInfo* pStruct, const char* prefix) 148411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 148511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 148611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 148711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 148811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 148911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 149011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 149111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[11]; 149211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 149311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 149411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 149511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 149611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 149711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 149811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 149911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 150011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 150111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pStages) { 150211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkpipelineshaderstagecreateinfo(pStruct->pStages, extra_indent); 150311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 150411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 150511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %spStages (addr)\n%s", prefix, tmpStr); 150611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 150711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 150811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = ""; 150911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pVertexInputState) { 151011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkpipelinevertexinputstatecreateinfo(pStruct->pVertexInputState, extra_indent); 151111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 151211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[2] = (char*)malloc(len); 151311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[2], len, " %spVertexInputState (addr)\n%s", prefix, tmpStr); 151411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 151511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 151611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[2] = ""; 151711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pInputAssemblyState) { 151811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkpipelineinputassemblystatecreateinfo(pStruct->pInputAssemblyState, extra_indent); 151911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 152011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[3] = (char*)malloc(len); 152111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[3], len, " %spInputAssemblyState (addr)\n%s", prefix, tmpStr); 152211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 152311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 152411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[3] = ""; 152511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pTessellationState) { 152611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkpipelinetessellationstatecreateinfo(pStruct->pTessellationState, extra_indent); 152711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 152811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[4] = (char*)malloc(len); 152911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[4], len, " %spTessellationState (addr)\n%s", prefix, tmpStr); 153011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 153111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 153211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[4] = ""; 153311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pViewportState) { 153411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkpipelineviewportstatecreateinfo(pStruct->pViewportState, extra_indent); 153511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 153611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[5] = (char*)malloc(len); 153711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[5], len, " %spViewportState (addr)\n%s", prefix, tmpStr); 153811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 153911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 154011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[5] = ""; 154111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pRasterizationState) { 154211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkpipelinerasterizationstatecreateinfo(pStruct->pRasterizationState, extra_indent); 154311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 154411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[6] = (char*)malloc(len); 154511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[6], len, " %spRasterizationState (addr)\n%s", prefix, tmpStr); 154611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 154711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 154811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[6] = ""; 154911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pMultisampleState) { 155011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkpipelinemultisamplestatecreateinfo(pStruct->pMultisampleState, extra_indent); 155111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 155211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[7] = (char*)malloc(len); 155311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[7], len, " %spMultisampleState (addr)\n%s", prefix, tmpStr); 155411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 155511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 155611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[7] = ""; 155711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pDepthStencilState) { 155811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkpipelinedepthstencilstatecreateinfo(pStruct->pDepthStencilState, extra_indent); 155911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 156011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[8] = (char*)malloc(len); 156111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[8], len, " %spDepthStencilState (addr)\n%s", prefix, tmpStr); 156211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 156311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 156411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[8] = ""; 156511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pColorBlendState) { 156611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkpipelinecolorblendstatecreateinfo(pStruct->pColorBlendState, extra_indent); 156711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 156811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[9] = (char*)malloc(len); 156911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[9], len, " %spColorBlendState (addr)\n%s", prefix, tmpStr); 157011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 157111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 157211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[9] = ""; 157311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pDynamicState) { 157411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkpipelinedynamicstatecreateinfo(pStruct->pDynamicState, extra_indent); 157511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 157611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[10] = (char*)malloc(len); 157711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[10], len, " %spDynamicState (addr)\n%s", prefix, tmpStr); 157811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 157911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 158011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[10] = ""; 158111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + strlen(stp_strs[3]) + strlen(stp_strs[4]) + strlen(stp_strs[5]) + strlen(stp_strs[6]) + strlen(stp_strs[7]) + strlen(stp_strs[8]) + strlen(stp_strs[9]) + strlen(stp_strs[10]) + sizeof(char)*1024; 158211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 158311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%sstageCount = %u\n%spStages = addr\n%spVertexInputState = addr\n%spInputAssemblyState = addr\n%spTessellationState = addr\n%spViewportState = addr\n%spRasterizationState = addr\n%spMultisampleState = addr\n%spDepthStencilState = addr\n%spColorBlendState = addr\n%spDynamicState = addr\n%slayout = addr\n%srenderPass = addr\n%ssubpass = %u\n%sbasePipelineHandle = addr\n%sbasePipelineIndex = %i\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, (pStruct->stageCount), prefix, prefix, prefix, prefix, prefix, prefix, prefix, prefix, prefix, prefix, prefix, prefix, prefix, (pStruct->subpass), prefix, prefix, (pStruct->basePipelineIndex)); 158411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 10; stp_index >= 0; stp_index--) { 158511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 158611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 158711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 158811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 158911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 159011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 159111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 159211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 159311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkimageblit(const VkImageBlit* pStruct, const char* prefix) 159411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 159511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 159611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 159711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 159811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 159911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 160011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 160111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[4]; 160211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkimagesubresourcelayers(&pStruct->srcSubresource, extra_indent); 160311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 160411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 160511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %ssrcSubresource (addr)\n%s", prefix, tmpStr); 160611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkoffset3d(&pStruct->srcOffsets[0], extra_indent); 160711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 160811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 160911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %ssrcOffsets[0] (addr)\n%s", prefix, tmpStr); 161011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkimagesubresourcelayers(&pStruct->dstSubresource, extra_indent); 161111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 161211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[2] = (char*)malloc(len); 161311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[2], len, " %sdstSubresource (addr)\n%s", prefix, tmpStr); 161411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkoffset3d(&pStruct->dstOffsets[0], extra_indent); 161511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 161611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[3] = (char*)malloc(len); 161711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[3], len, " %sdstOffsets[0] (addr)\n%s", prefix, tmpStr); 161811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + strlen(stp_strs[3]) + sizeof(char)*1024; 161911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 162011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssrcSubresource = addr\n%ssrcOffsets = addr\n%sdstSubresource = addr\n%sdstOffsets = addr\n", prefix, prefix, prefix, prefix); 162111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 3; stp_index >= 0; stp_index--) { 162211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 162311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 162411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 162511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 162611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 162711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 162811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 162911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 163011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkimagecopy(const VkImageCopy* pStruct, const char* prefix) 163111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 163211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 163311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 163411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 163511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 163611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 163711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 163811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[5]; 163911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkimagesubresourcelayers(&pStruct->srcSubresource, extra_indent); 164011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 164111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 164211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %ssrcSubresource (addr)\n%s", prefix, tmpStr); 164311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkoffset3d(&pStruct->srcOffset, extra_indent); 164411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 164511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 164611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %ssrcOffset (addr)\n%s", prefix, tmpStr); 164711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkimagesubresourcelayers(&pStruct->dstSubresource, extra_indent); 164811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 164911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[2] = (char*)malloc(len); 165011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[2], len, " %sdstSubresource (addr)\n%s", prefix, tmpStr); 165111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkoffset3d(&pStruct->dstOffset, extra_indent); 165211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 165311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[3] = (char*)malloc(len); 165411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[3], len, " %sdstOffset (addr)\n%s", prefix, tmpStr); 165511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkextent3d(&pStruct->extent, extra_indent); 165611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 165711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[4] = (char*)malloc(len); 165811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[4], len, " %sextent (addr)\n%s", prefix, tmpStr); 165911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + strlen(stp_strs[3]) + strlen(stp_strs[4]) + sizeof(char)*1024; 166011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 166111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssrcSubresource = addr\n%ssrcOffset = addr\n%sdstSubresource = addr\n%sdstOffset = addr\n%sextent = addr\n", prefix, prefix, prefix, prefix, prefix); 166211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 4; stp_index >= 0; stp_index--) { 166311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 166411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 166511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 166611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 166711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 166811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 166911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 167011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 167111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkimagecreateinfo(const VkImageCreateInfo* pStruct, const char* prefix) 167211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 167311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 167411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 167511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 167611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 167711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 167811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 167911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[2]; 168011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 168111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 168211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 168311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 168411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 168511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 168611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 168711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 168811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 168911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkextent3d(&pStruct->extent, extra_indent); 169011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 169111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 169211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %sextent (addr)\n%s", prefix, tmpStr); 169311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 169411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 169511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%simageType = %s\n%sformat = %s\n%sextent = addr\n%smipLevels = %u\n%sarrayLayers = %u\n%ssamples = %s\n%stiling = %s\n%susage = %u\n%ssharingMode = %s\n%squeueFamilyIndexCount = %u\n%spQueueFamilyIndices = addr\n%sinitialLayout = %s\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, string_VkImageType(pStruct->imageType), prefix, string_VkFormat(pStruct->format), prefix, prefix, (pStruct->mipLevels), prefix, (pStruct->arrayLayers), prefix, string_VkSampleCountFlagBits(pStruct->samples), prefix, string_VkImageTiling(pStruct->tiling), prefix, (pStruct->usage), prefix, string_VkSharingMode(pStruct->sharingMode), prefix, (pStruct->queueFamilyIndexCount), prefix, prefix, string_VkImageLayout(pStruct->initialLayout)); 169611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 169711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 169811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 169911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 170011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 170111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 170211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 170311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 170411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 170511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkimageformatproperties(const VkImageFormatProperties* pStruct, const char* prefix) 170611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 170711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 170811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 170911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 171011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 171111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 171211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 171311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 171411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkextent3d(&pStruct->maxExtent, extra_indent); 171511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 171611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 171711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %smaxExtent (addr)\n%s", prefix, tmpStr); 171811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 171911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 172011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%smaxExtent = addr\n%smaxMipLevels = %u\n%smaxArrayLayers = %u\n%ssampleCounts = %u\n%smaxResourceSize = " PRINTF_SIZE_T_SPECIFIER "\n", prefix, prefix, (pStruct->maxMipLevels), prefix, (pStruct->maxArrayLayers), prefix, (pStruct->sampleCounts), prefix, (pStruct->maxResourceSize)); 172111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 172211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 172311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 172411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 172511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 172611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 172711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 172811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 172911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 173011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkimagememorybarrier(const VkImageMemoryBarrier* pStruct, const char* prefix) 173111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 173211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 173311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 173411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 173511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 173611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 173711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 173811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[2]; 173911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 174011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 174111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 174211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 174311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 174411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 174511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 174611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 174711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 174811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkimagesubresourcerange(&pStruct->subresourceRange, extra_indent); 174911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 175011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 175111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %ssubresourceRange (addr)\n%s", prefix, tmpStr); 175211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 175311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 175411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%ssrcAccessMask = %u\n%sdstAccessMask = %u\n%soldLayout = %s\n%snewLayout = %s\n%ssrcQueueFamilyIndex = %u\n%sdstQueueFamilyIndex = %u\n%simage = addr\n%ssubresourceRange = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->srcAccessMask), prefix, (pStruct->dstAccessMask), prefix, string_VkImageLayout(pStruct->oldLayout), prefix, string_VkImageLayout(pStruct->newLayout), prefix, (pStruct->srcQueueFamilyIndex), prefix, (pStruct->dstQueueFamilyIndex), prefix, prefix); 175511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 175611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 175711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 175811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 175911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 176011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 176111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 176211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 176311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 176411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkimageresolve(const VkImageResolve* pStruct, const char* prefix) 176511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 176611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 176711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 176811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 176911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 177011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 177111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 177211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[5]; 177311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkimagesubresourcelayers(&pStruct->srcSubresource, extra_indent); 177411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 177511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 177611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %ssrcSubresource (addr)\n%s", prefix, tmpStr); 177711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkoffset3d(&pStruct->srcOffset, extra_indent); 177811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 177911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 178011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %ssrcOffset (addr)\n%s", prefix, tmpStr); 178111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkimagesubresourcelayers(&pStruct->dstSubresource, extra_indent); 178211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 178311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[2] = (char*)malloc(len); 178411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[2], len, " %sdstSubresource (addr)\n%s", prefix, tmpStr); 178511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkoffset3d(&pStruct->dstOffset, extra_indent); 178611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 178711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[3] = (char*)malloc(len); 178811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[3], len, " %sdstOffset (addr)\n%s", prefix, tmpStr); 178911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkextent3d(&pStruct->extent, extra_indent); 179011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 179111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[4] = (char*)malloc(len); 179211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[4], len, " %sextent (addr)\n%s", prefix, tmpStr); 179311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + strlen(stp_strs[3]) + strlen(stp_strs[4]) + sizeof(char)*1024; 179411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 179511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssrcSubresource = addr\n%ssrcOffset = addr\n%sdstSubresource = addr\n%sdstOffset = addr\n%sextent = addr\n", prefix, prefix, prefix, prefix, prefix); 179611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 4; stp_index >= 0; stp_index--) { 179711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 179811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 179911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 180011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 180111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 180211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 180311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 180411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 180511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkimagesubresource(const VkImageSubresource* pStruct, const char* prefix) 180611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 180711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 180811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 180911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 181011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 181111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%saspectMask = %u\n%smipLevel = %u\n%sarrayLayer = %u\n", prefix, (pStruct->aspectMask), prefix, (pStruct->mipLevel), prefix, (pStruct->arrayLayer)); 181211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 181311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 181411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkimagesubresourcelayers(const VkImageSubresourceLayers* pStruct, const char* prefix) 181511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 181611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 181711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 181811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 181911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 182011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%saspectMask = %u\n%smipLevel = %u\n%sbaseArrayLayer = %u\n%slayerCount = %u\n", prefix, (pStruct->aspectMask), prefix, (pStruct->mipLevel), prefix, (pStruct->baseArrayLayer), prefix, (pStruct->layerCount)); 182111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 182211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 182311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkimagesubresourcerange(const VkImageSubresourceRange* pStruct, const char* prefix) 182411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 182511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 182611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 182711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 182811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 182911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%saspectMask = %u\n%sbaseMipLevel = %u\n%slevelCount = %u\n%sbaseArrayLayer = %u\n%slayerCount = %u\n", prefix, (pStruct->aspectMask), prefix, (pStruct->baseMipLevel), prefix, (pStruct->levelCount), prefix, (pStruct->baseArrayLayer), prefix, (pStruct->layerCount)); 183011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 183111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 183211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkimageviewcreateinfo(const VkImageViewCreateInfo* pStruct, const char* prefix) 183311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 183411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 183511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 183611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 183711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 183811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 183911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 184011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[3]; 184111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 184211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 184311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 184411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 184511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 184611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 184711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 184811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 184911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 185011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkcomponentmapping(&pStruct->components, extra_indent); 185111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 185211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 185311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %scomponents (addr)\n%s", prefix, tmpStr); 185411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkimagesubresourcerange(&pStruct->subresourceRange, extra_indent); 185511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 185611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[2] = (char*)malloc(len); 185711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[2], len, " %ssubresourceRange (addr)\n%s", prefix, tmpStr); 185811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + sizeof(char)*1024; 185911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 186011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%simage = addr\n%sviewType = %s\n%sformat = %s\n%scomponents = addr\n%ssubresourceRange = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, prefix, string_VkImageViewType(pStruct->viewType), prefix, string_VkFormat(pStruct->format), prefix, prefix); 186111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 2; stp_index >= 0; stp_index--) { 186211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 186311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 186411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 186511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 186611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 186711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 186811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 186911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 187011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkinstancecreateinfo(const VkInstanceCreateInfo* pStruct, const char* prefix) 187111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 187211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 187311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 187411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 187511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 187611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 187711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 187811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[2]; 187911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 188011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 188111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 188211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 188311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 188411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 188511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 188611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 188711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 188811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pApplicationInfo) { 188911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkapplicationinfo(pStruct->pApplicationInfo, extra_indent); 189011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 189111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 189211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %spApplicationInfo (addr)\n%s", prefix, tmpStr); 189311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 189411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 189511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = ""; 189611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 189711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 189811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%spApplicationInfo = addr\n%senabledLayerCount = %u\n%sppEnabledLayerNames = %s\n%senabledExtensionCount = %u\n%sppEnabledExtensionNames = %s\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, prefix, (pStruct->enabledLayerCount), prefix, (pStruct->ppEnabledLayerNames)[0], prefix, (pStruct->enabledExtensionCount), prefix, (pStruct->ppEnabledExtensionNames)[0]); 189911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 190011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 190111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 190211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 190311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 190411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 190511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 190611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 190711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 190811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vklayerproperties(const VkLayerProperties* pStruct, const char* prefix) 190911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 191011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 191111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 191211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 191311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 191411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%slayerName = %s\n%sspecVersion = %u\n%simplementationVersion = %u\n%sdescription = %s\n", prefix, (pStruct->layerName), prefix, (pStruct->specVersion), prefix, (pStruct->implementationVersion), prefix, (pStruct->description)); 191511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 191611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 191711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkmappedmemoryrange(const VkMappedMemoryRange* pStruct, const char* prefix) 191811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 191911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 192011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 192111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 192211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 192311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 192411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 192511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 192611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 192711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 192811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 192911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 193011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 193111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 193211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 193311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 193411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 193511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 193611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 193711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%smemory = addr\n%soffset = " PRINTF_SIZE_T_SPECIFIER "\n%ssize = " PRINTF_SIZE_T_SPECIFIER "\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, prefix, (pStruct->offset), prefix, (pStruct->size)); 193811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 193911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 194011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 194111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 194211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 194311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 194411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 194511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 194611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 194711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkmemoryallocateinfo(const VkMemoryAllocateInfo* pStruct, const char* prefix) 194811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 194911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 195011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 195111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 195211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 195311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 195411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 195511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 195611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 195711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 195811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 195911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 196011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 196111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 196211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 196311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 196411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 196511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 196611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 196711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sallocationSize = " PRINTF_SIZE_T_SPECIFIER "\n%smemoryTypeIndex = %u\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->allocationSize), prefix, (pStruct->memoryTypeIndex)); 196811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 196911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 197011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 197111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 197211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 197311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 197411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 197511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 197611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 197711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkmemorybarrier(const VkMemoryBarrier* pStruct, const char* prefix) 197811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 197911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 198011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 198111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 198211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 198311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 198411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 198511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 198611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 198711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 198811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 198911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 199011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 199111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 199211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 199311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 199411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 199511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 199611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 199711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%ssrcAccessMask = %u\n%sdstAccessMask = %u\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->srcAccessMask), prefix, (pStruct->dstAccessMask)); 199811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 199911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 200011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 200111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 200211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 200311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 200411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 200511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 200611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 200711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkmemoryheap(const VkMemoryHeap* pStruct, const char* prefix) 200811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 200911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 201011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 201111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 201211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 201311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssize = " PRINTF_SIZE_T_SPECIFIER "\n%sflags = %u\n", prefix, (pStruct->size), prefix, (pStruct->flags)); 201411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 201511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 201611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkmemoryrequirements(const VkMemoryRequirements* pStruct, const char* prefix) 201711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 201811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 201911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 202011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 202111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 202211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssize = " PRINTF_SIZE_T_SPECIFIER "\n%salignment = " PRINTF_SIZE_T_SPECIFIER "\n%smemoryTypeBits = %u\n", prefix, (pStruct->size), prefix, (pStruct->alignment), prefix, (pStruct->memoryTypeBits)); 202311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 202411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 202511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkmemorytype(const VkMemoryType* pStruct, const char* prefix) 202611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 202711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 202811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 202911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 203011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 203111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%spropertyFlags = %u\n%sheapIndex = %u\n", prefix, (pStruct->propertyFlags), prefix, (pStruct->heapIndex)); 203211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 203311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 203411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkmirsurfacecreateinfokhr(const VkMirSurfaceCreateInfoKHR* pStruct, const char* prefix) 203511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 203611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 203711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 203811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 203911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 204011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 204111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 204211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 204311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 204411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 204511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 204611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 204711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 204811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 204911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 205011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 205111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 205211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 205311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 205411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%sconnection = addr\n%smirSurface = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, prefix); 205511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 205611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 205711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 205811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 205911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 206011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 206111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 206211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 206311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 206411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkoffset2d(const VkOffset2D* pStruct, const char* prefix) 206511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 206611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 206711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 206811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 206911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 207011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%sx = %i\n%sy = %i\n", prefix, (pStruct->x), prefix, (pStruct->y)); 207111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 207211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 207311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkoffset3d(const VkOffset3D* pStruct, const char* prefix) 207411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 207511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 207611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 207711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 207811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 207911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%sx = %i\n%sy = %i\n%sz = %i\n", prefix, (pStruct->x), prefix, (pStruct->y), prefix, (pStruct->z)); 208011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 208111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 208211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkphysicaldevicefeatures(const VkPhysicalDeviceFeatures* pStruct, const char* prefix) 208311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 208411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 208511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 208611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 208711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 208811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%srobustBufferAccess = %s\n%sfullDrawIndexUint32 = %s\n%simageCubeArray = %s\n%sindependentBlend = %s\n%sgeometryShader = %s\n%stessellationShader = %s\n%ssampleRateShading = %s\n%sdualSrcBlend = %s\n%slogicOp = %s\n%smultiDrawIndirect = %s\n%sdrawIndirectFirstInstance = %s\n%sdepthClamp = %s\n%sdepthBiasClamp = %s\n%sfillModeNonSolid = %s\n%sdepthBounds = %s\n%swideLines = %s\n%slargePoints = %s\n%salphaToOne = %s\n%smultiViewport = %s\n%ssamplerAnisotropy = %s\n%stextureCompressionETC2 = %s\n%stextureCompressionASTC_LDR = %s\n%stextureCompressionBC = %s\n%socclusionQueryPrecise = %s\n%spipelineStatisticsQuery = %s\n%svertexPipelineStoresAndAtomics = %s\n%sfragmentStoresAndAtomics = %s\n%sshaderTessellationAndGeometryPointSize = %s\n%sshaderImageGatherExtended = %s\n%sshaderStorageImageExtendedFormats = %s\n%sshaderStorageImageMultisample = %s\n%sshaderStorageImageReadWithoutFormat = %s\n%sshaderStorageImageWriteWithoutFormat = %s\n%sshaderUniformBufferArrayDynamicIndexing = %s\n%sshaderSampledImageArrayDynamicIndexing = %s\n%sshaderStorageBufferArrayDynamicIndexing = %s\n%sshaderStorageImageArrayDynamicIndexing = %s\n%sshaderClipDistance = %s\n%sshaderCullDistance = %s\n%sshaderFloat64 = %s\n%sshaderInt64 = %s\n%sshaderInt16 = %s\n%sshaderResourceResidency = %s\n%sshaderResourceMinLod = %s\n%ssparseBinding = %s\n%ssparseResidencyBuffer = %s\n%ssparseResidencyImage2D = %s\n%ssparseResidencyImage3D = %s\n%ssparseResidency2Samples = %s\n%ssparseResidency4Samples = %s\n%ssparseResidency8Samples = %s\n%ssparseResidency16Samples = %s\n%ssparseResidencyAliased = %s\n%svariableMultisampleRate = %s\n%sinheritedQueries = %s\n", prefix, (pStruct->robustBufferAccess) ? "TRUE" : "FALSE", prefix, (pStruct->fullDrawIndexUint32) ? "TRUE" : "FALSE", prefix, (pStruct->imageCubeArray) ? "TRUE" : "FALSE", prefix, (pStruct->independentBlend) ? "TRUE" : "FALSE", prefix, (pStruct->geometryShader) ? "TRUE" : "FALSE", prefix, (pStruct->tessellationShader) ? "TRUE" : "FALSE", prefix, (pStruct->sampleRateShading) ? "TRUE" : "FALSE", prefix, (pStruct->dualSrcBlend) ? "TRUE" : "FALSE", prefix, (pStruct->logicOp) ? "TRUE" : "FALSE", prefix, (pStruct->multiDrawIndirect) ? "TRUE" : "FALSE", prefix, (pStruct->drawIndirectFirstInstance) ? "TRUE" : "FALSE", prefix, (pStruct->depthClamp) ? "TRUE" : "FALSE", prefix, (pStruct->depthBiasClamp) ? "TRUE" : "FALSE", prefix, (pStruct->fillModeNonSolid) ? "TRUE" : "FALSE", prefix, (pStruct->depthBounds) ? "TRUE" : "FALSE", prefix, (pStruct->wideLines) ? "TRUE" : "FALSE", prefix, (pStruct->largePoints) ? "TRUE" : "FALSE", prefix, (pStruct->alphaToOne) ? "TRUE" : "FALSE", prefix, (pStruct->multiViewport) ? "TRUE" : "FALSE", prefix, (pStruct->samplerAnisotropy) ? "TRUE" : "FALSE", prefix, (pStruct->textureCompressionETC2) ? "TRUE" : "FALSE", prefix, (pStruct->textureCompressionASTC_LDR) ? "TRUE" : "FALSE", prefix, (pStruct->textureCompressionBC) ? "TRUE" : "FALSE", prefix, (pStruct->occlusionQueryPrecise) ? "TRUE" : "FALSE", prefix, (pStruct->pipelineStatisticsQuery) ? "TRUE" : "FALSE", prefix, (pStruct->vertexPipelineStoresAndAtomics) ? "TRUE" : "FALSE", prefix, (pStruct->fragmentStoresAndAtomics) ? "TRUE" : "FALSE", prefix, (pStruct->shaderTessellationAndGeometryPointSize) ? "TRUE" : "FALSE", prefix, (pStruct->shaderImageGatherExtended) ? "TRUE" : "FALSE", prefix, (pStruct->shaderStorageImageExtendedFormats) ? "TRUE" : "FALSE", prefix, (pStruct->shaderStorageImageMultisample) ? "TRUE" : "FALSE", prefix, (pStruct->shaderStorageImageReadWithoutFormat) ? "TRUE" : "FALSE", prefix, (pStruct->shaderStorageImageWriteWithoutFormat) ? "TRUE" : "FALSE", prefix, (pStruct->shaderUniformBufferArrayDynamicIndexing) ? "TRUE" : "FALSE", prefix, (pStruct->shaderSampledImageArrayDynamicIndexing) ? "TRUE" : "FALSE", prefix, (pStruct->shaderStorageBufferArrayDynamicIndexing) ? "TRUE" : "FALSE", prefix, (pStruct->shaderStorageImageArrayDynamicIndexing) ? "TRUE" : "FALSE", prefix, (pStruct->shaderClipDistance) ? "TRUE" : "FALSE", prefix, (pStruct->shaderCullDistance) ? "TRUE" : "FALSE", prefix, (pStruct->shaderFloat64) ? "TRUE" : "FALSE", prefix, (pStruct->shaderInt64) ? "TRUE" : "FALSE", prefix, (pStruct->shaderInt16) ? "TRUE" : "FALSE", prefix, (pStruct->shaderResourceResidency) ? "TRUE" : "FALSE", prefix, (pStruct->shaderResourceMinLod) ? "TRUE" : "FALSE", prefix, (pStruct->sparseBinding) ? "TRUE" : "FALSE", prefix, (pStruct->sparseResidencyBuffer) ? "TRUE" : "FALSE", prefix, (pStruct->sparseResidencyImage2D) ? "TRUE" : "FALSE", prefix, (pStruct->sparseResidencyImage3D) ? "TRUE" : "FALSE", prefix, (pStruct->sparseResidency2Samples) ? "TRUE" : "FALSE", prefix, (pStruct->sparseResidency4Samples) ? "TRUE" : "FALSE", prefix, (pStruct->sparseResidency8Samples) ? "TRUE" : "FALSE", prefix, (pStruct->sparseResidency16Samples) ? "TRUE" : "FALSE", prefix, (pStruct->sparseResidencyAliased) ? "TRUE" : "FALSE", prefix, (pStruct->variableMultisampleRate) ? "TRUE" : "FALSE", prefix, (pStruct->inheritedQueries) ? "TRUE" : "FALSE"); 208911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 209011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 209111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkphysicaldevicelimits(const VkPhysicalDeviceLimits* pStruct, const char* prefix) 209211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 209311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 209411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 209511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 209611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 209711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%smaxImageDimension1D = %u\n%smaxImageDimension2D = %u\n%smaxImageDimension3D = %u\n%smaxImageDimensionCube = %u\n%smaxImageArrayLayers = %u\n%smaxTexelBufferElements = %u\n%smaxUniformBufferRange = %u\n%smaxStorageBufferRange = %u\n%smaxPushConstantsSize = %u\n%smaxMemoryAllocationCount = %u\n%smaxSamplerAllocationCount = %u\n%sbufferImageGranularity = " PRINTF_SIZE_T_SPECIFIER "\n%ssparseAddressSpaceSize = " PRINTF_SIZE_T_SPECIFIER "\n%smaxBoundDescriptorSets = %u\n%smaxPerStageDescriptorSamplers = %u\n%smaxPerStageDescriptorUniformBuffers = %u\n%smaxPerStageDescriptorStorageBuffers = %u\n%smaxPerStageDescriptorSampledImages = %u\n%smaxPerStageDescriptorStorageImages = %u\n%smaxPerStageDescriptorInputAttachments = %u\n%smaxPerStageResources = %u\n%smaxDescriptorSetSamplers = %u\n%smaxDescriptorSetUniformBuffers = %u\n%smaxDescriptorSetUniformBuffersDynamic = %u\n%smaxDescriptorSetStorageBuffers = %u\n%smaxDescriptorSetStorageBuffersDynamic = %u\n%smaxDescriptorSetSampledImages = %u\n%smaxDescriptorSetStorageImages = %u\n%smaxDescriptorSetInputAttachments = %u\n%smaxVertexInputAttributes = %u\n%smaxVertexInputBindings = %u\n%smaxVertexInputAttributeOffset = %u\n%smaxVertexInputBindingStride = %u\n%smaxVertexOutputComponents = %u\n%smaxTessellationGenerationLevel = %u\n%smaxTessellationPatchSize = %u\n%smaxTessellationControlPerVertexInputComponents = %u\n%smaxTessellationControlPerVertexOutputComponents = %u\n%smaxTessellationControlPerPatchOutputComponents = %u\n%smaxTessellationControlTotalOutputComponents = %u\n%smaxTessellationEvaluationInputComponents = %u\n%smaxTessellationEvaluationOutputComponents = %u\n%smaxGeometryShaderInvocations = %u\n%smaxGeometryInputComponents = %u\n%smaxGeometryOutputComponents = %u\n%smaxGeometryOutputVertices = %u\n%smaxGeometryTotalOutputComponents = %u\n%smaxFragmentInputComponents = %u\n%smaxFragmentOutputAttachments = %u\n%smaxFragmentDualSrcAttachments = %u\n%smaxFragmentCombinedOutputResources = %u\n%smaxComputeSharedMemorySize = %u\n%smaxComputeWorkGroupCount = addr\n%smaxComputeWorkGroupInvocations = %u\n%smaxComputeWorkGroupSize = addr\n%ssubPixelPrecisionBits = %u\n%ssubTexelPrecisionBits = %u\n%smipmapPrecisionBits = %u\n%smaxDrawIndexedIndexValue = %u\n%smaxDrawIndirectCount = %u\n%smaxSamplerLodBias = %f\n%smaxSamplerAnisotropy = %f\n%smaxViewports = %u\n%smaxViewportDimensions = addr\n%sviewportBoundsRange = addr\n%sviewportSubPixelBits = %u\n%sminMemoryMapAlignment = " PRINTF_SIZE_T_SPECIFIER "\n%sminTexelBufferOffsetAlignment = " PRINTF_SIZE_T_SPECIFIER "\n%sminUniformBufferOffsetAlignment = " PRINTF_SIZE_T_SPECIFIER "\n%sminStorageBufferOffsetAlignment = " PRINTF_SIZE_T_SPECIFIER "\n%sminTexelOffset = %i\n%smaxTexelOffset = %u\n%sminTexelGatherOffset = %i\n%smaxTexelGatherOffset = %u\n%sminInterpolationOffset = %f\n%smaxInterpolationOffset = %f\n%ssubPixelInterpolationOffsetBits = %u\n%smaxFramebufferWidth = %u\n%smaxFramebufferHeight = %u\n%smaxFramebufferLayers = %u\n%sframebufferColorSampleCounts = %u\n%sframebufferDepthSampleCounts = %u\n%sframebufferStencilSampleCounts = %u\n%sframebufferNoAttachmentsSampleCounts = %u\n%smaxColorAttachments = %u\n%ssampledImageColorSampleCounts = %u\n%ssampledImageIntegerSampleCounts = %u\n%ssampledImageDepthSampleCounts = %u\n%ssampledImageStencilSampleCounts = %u\n%sstorageImageSampleCounts = %u\n%smaxSampleMaskWords = %u\n%stimestampComputeAndGraphics = %s\n%stimestampPeriod = %f\n%smaxClipDistances = %u\n%smaxCullDistances = %u\n%smaxCombinedClipAndCullDistances = %u\n%sdiscreteQueuePriorities = %u\n%spointSizeRange = addr\n%slineWidthRange = addr\n%spointSizeGranularity = %f\n%slineWidthGranularity = %f\n%sstrictLines = %s\n%sstandardSampleLocations = %s\n%soptimalBufferCopyOffsetAlignment = " PRINTF_SIZE_T_SPECIFIER "\n%soptimalBufferCopyRowPitchAlignment = " PRINTF_SIZE_T_SPECIFIER "\n%snonCoherentAtomSize = " PRINTF_SIZE_T_SPECIFIER "\n", prefix, (pStruct->maxImageDimension1D), prefix, (pStruct->maxImageDimension2D), prefix, (pStruct->maxImageDimension3D), prefix, (pStruct->maxImageDimensionCube), prefix, (pStruct->maxImageArrayLayers), prefix, (pStruct->maxTexelBufferElements), prefix, (pStruct->maxUniformBufferRange), prefix, (pStruct->maxStorageBufferRange), prefix, (pStruct->maxPushConstantsSize), prefix, (pStruct->maxMemoryAllocationCount), prefix, (pStruct->maxSamplerAllocationCount), prefix, (pStruct->bufferImageGranularity), prefix, (pStruct->sparseAddressSpaceSize), prefix, (pStruct->maxBoundDescriptorSets), prefix, (pStruct->maxPerStageDescriptorSamplers), prefix, (pStruct->maxPerStageDescriptorUniformBuffers), prefix, (pStruct->maxPerStageDescriptorStorageBuffers), prefix, (pStruct->maxPerStageDescriptorSampledImages), prefix, (pStruct->maxPerStageDescriptorStorageImages), prefix, (pStruct->maxPerStageDescriptorInputAttachments), prefix, (pStruct->maxPerStageResources), prefix, (pStruct->maxDescriptorSetSamplers), prefix, (pStruct->maxDescriptorSetUniformBuffers), prefix, (pStruct->maxDescriptorSetUniformBuffersDynamic), prefix, (pStruct->maxDescriptorSetStorageBuffers), prefix, (pStruct->maxDescriptorSetStorageBuffersDynamic), prefix, (pStruct->maxDescriptorSetSampledImages), prefix, (pStruct->maxDescriptorSetStorageImages), prefix, (pStruct->maxDescriptorSetInputAttachments), prefix, (pStruct->maxVertexInputAttributes), prefix, (pStruct->maxVertexInputBindings), prefix, (pStruct->maxVertexInputAttributeOffset), prefix, (pStruct->maxVertexInputBindingStride), prefix, (pStruct->maxVertexOutputComponents), prefix, (pStruct->maxTessellationGenerationLevel), prefix, (pStruct->maxTessellationPatchSize), prefix, (pStruct->maxTessellationControlPerVertexInputComponents), prefix, (pStruct->maxTessellationControlPerVertexOutputComponents), prefix, (pStruct->maxTessellationControlPerPatchOutputComponents), prefix, (pStruct->maxTessellationControlTotalOutputComponents), prefix, (pStruct->maxTessellationEvaluationInputComponents), prefix, (pStruct->maxTessellationEvaluationOutputComponents), prefix, (pStruct->maxGeometryShaderInvocations), prefix, (pStruct->maxGeometryInputComponents), prefix, (pStruct->maxGeometryOutputComponents), prefix, (pStruct->maxGeometryOutputVertices), prefix, (pStruct->maxGeometryTotalOutputComponents), prefix, (pStruct->maxFragmentInputComponents), prefix, (pStruct->maxFragmentOutputAttachments), prefix, (pStruct->maxFragmentDualSrcAttachments), prefix, (pStruct->maxFragmentCombinedOutputResources), prefix, (pStruct->maxComputeSharedMemorySize), prefix, prefix, (pStruct->maxComputeWorkGroupInvocations), prefix, prefix, (pStruct->subPixelPrecisionBits), prefix, (pStruct->subTexelPrecisionBits), prefix, (pStruct->mipmapPrecisionBits), prefix, (pStruct->maxDrawIndexedIndexValue), prefix, (pStruct->maxDrawIndirectCount), prefix, (pStruct->maxSamplerLodBias), prefix, (pStruct->maxSamplerAnisotropy), prefix, (pStruct->maxViewports), prefix, prefix, prefix, (pStruct->viewportSubPixelBits), prefix, (pStruct->minMemoryMapAlignment), prefix, (pStruct->minTexelBufferOffsetAlignment), prefix, (pStruct->minUniformBufferOffsetAlignment), prefix, (pStruct->minStorageBufferOffsetAlignment), prefix, (pStruct->minTexelOffset), prefix, (pStruct->maxTexelOffset), prefix, (pStruct->minTexelGatherOffset), prefix, (pStruct->maxTexelGatherOffset), prefix, (pStruct->minInterpolationOffset), prefix, (pStruct->maxInterpolationOffset), prefix, (pStruct->subPixelInterpolationOffsetBits), prefix, (pStruct->maxFramebufferWidth), prefix, (pStruct->maxFramebufferHeight), prefix, (pStruct->maxFramebufferLayers), prefix, (pStruct->framebufferColorSampleCounts), prefix, (pStruct->framebufferDepthSampleCounts), prefix, (pStruct->framebufferStencilSampleCounts), prefix, (pStruct->framebufferNoAttachmentsSampleCounts), prefix, (pStruct->maxColorAttachments), prefix, (pStruct->sampledImageColorSampleCounts), prefix, (pStruct->sampledImageIntegerSampleCounts), prefix, (pStruct->sampledImageDepthSampleCounts), prefix, (pStruct->sampledImageStencilSampleCounts), prefix, (pStruct->storageImageSampleCounts), prefix, (pStruct->maxSampleMaskWords), prefix, (pStruct->timestampComputeAndGraphics) ? "TRUE" : "FALSE", prefix, (pStruct->timestampPeriod), prefix, (pStruct->maxClipDistances), prefix, (pStruct->maxCullDistances), prefix, (pStruct->maxCombinedClipAndCullDistances), prefix, (pStruct->discreteQueuePriorities), prefix, prefix, prefix, (pStruct->pointSizeGranularity), prefix, (pStruct->lineWidthGranularity), prefix, (pStruct->strictLines) ? "TRUE" : "FALSE", prefix, (pStruct->standardSampleLocations) ? "TRUE" : "FALSE", prefix, (pStruct->optimalBufferCopyOffsetAlignment), prefix, (pStruct->optimalBufferCopyRowPitchAlignment), prefix, (pStruct->nonCoherentAtomSize)); 209811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 209911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 210011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkphysicaldevicememoryproperties(const VkPhysicalDeviceMemoryProperties* pStruct, const char* prefix) 210111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 210211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 210311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 210411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 210511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 210611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 210711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 210811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[2]; 210911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkmemorytype(&pStruct->memoryTypes[0], extra_indent); 211011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 211111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 211211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %smemoryTypes[0] (addr)\n%s", prefix, tmpStr); 211311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkmemoryheap(&pStruct->memoryHeaps[0], extra_indent); 211411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 211511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 211611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %smemoryHeaps[0] (addr)\n%s", prefix, tmpStr); 211711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 211811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 211911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%smemoryTypeCount = %u\n%smemoryTypes = addr\n%smemoryHeapCount = %u\n%smemoryHeaps = addr\n", prefix, (pStruct->memoryTypeCount), prefix, prefix, (pStruct->memoryHeapCount), prefix); 212011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 212111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 212211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 212311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 212411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 212511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 212611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 212711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 212811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 212911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkphysicaldeviceproperties(const VkPhysicalDeviceProperties* pStruct, const char* prefix) 213011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 213111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 213211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 213311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 213411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 213511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 213611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 213711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[2]; 213811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkphysicaldevicelimits(&pStruct->limits, extra_indent); 213911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 214011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 214111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %slimits (addr)\n%s", prefix, tmpStr); 214211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkphysicaldevicesparseproperties(&pStruct->sparseProperties, extra_indent); 214311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 214411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 214511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %ssparseProperties (addr)\n%s", prefix, tmpStr); 214611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 214711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 214811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%sapiVersion = %u\n%sdriverVersion = %u\n%svendorID = %u\n%sdeviceID = %u\n%sdeviceType = %s\n%sdeviceName = %s\n%spipelineCacheUUID = addr\n%slimits = addr\n%ssparseProperties = addr\n", prefix, (pStruct->apiVersion), prefix, (pStruct->driverVersion), prefix, (pStruct->vendorID), prefix, (pStruct->deviceID), prefix, string_VkPhysicalDeviceType(pStruct->deviceType), prefix, (pStruct->deviceName), prefix, prefix, prefix); 214911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 215011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 215111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 215211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 215311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 215411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 215511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 215611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 215711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 215811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkphysicaldevicesparseproperties(const VkPhysicalDeviceSparseProperties* pStruct, const char* prefix) 215911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 216011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 216111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 216211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 216311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 216411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%sresidencyStandard2DBlockShape = %s\n%sresidencyStandard2DMultisampleBlockShape = %s\n%sresidencyStandard3DBlockShape = %s\n%sresidencyAlignedMipSize = %s\n%sresidencyNonResidentStrict = %s\n", prefix, (pStruct->residencyStandard2DBlockShape) ? "TRUE" : "FALSE", prefix, (pStruct->residencyStandard2DMultisampleBlockShape) ? "TRUE" : "FALSE", prefix, (pStruct->residencyStandard3DBlockShape) ? "TRUE" : "FALSE", prefix, (pStruct->residencyAlignedMipSize) ? "TRUE" : "FALSE", prefix, (pStruct->residencyNonResidentStrict) ? "TRUE" : "FALSE"); 216511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 216611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 216711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkpipelinecachecreateinfo(const VkPipelineCacheCreateInfo* pStruct, const char* prefix) 216811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 216911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 217011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 217111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 217211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 217311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 217411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 217511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 217611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 217711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 217811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 217911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 218011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 218111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 218211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 218311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 218411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 218511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 218611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 218711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%sinitialDataSize = " PRINTF_SIZE_T_SPECIFIER "\n%spInitialData = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, (pStruct->initialDataSize), prefix); 218811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 218911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 219011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 219111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 219211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 219311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 219411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 219511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 219611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 219711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkpipelinecolorblendattachmentstate(const VkPipelineColorBlendAttachmentState* pStruct, const char* prefix) 219811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 219911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 220011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 220111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 220211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 220311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%sblendEnable = %s\n%ssrcColorBlendFactor = %s\n%sdstColorBlendFactor = %s\n%scolorBlendOp = %s\n%ssrcAlphaBlendFactor = %s\n%sdstAlphaBlendFactor = %s\n%salphaBlendOp = %s\n%scolorWriteMask = %u\n", prefix, (pStruct->blendEnable) ? "TRUE" : "FALSE", prefix, string_VkBlendFactor(pStruct->srcColorBlendFactor), prefix, string_VkBlendFactor(pStruct->dstColorBlendFactor), prefix, string_VkBlendOp(pStruct->colorBlendOp), prefix, string_VkBlendFactor(pStruct->srcAlphaBlendFactor), prefix, string_VkBlendFactor(pStruct->dstAlphaBlendFactor), prefix, string_VkBlendOp(pStruct->alphaBlendOp), prefix, (pStruct->colorWriteMask)); 220411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 220511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 220611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkpipelinecolorblendstatecreateinfo(const VkPipelineColorBlendStateCreateInfo* pStruct, const char* prefix) 220711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 220811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 220911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 221011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 221111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 221211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 221311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 221411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[2]; 221511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 221611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 221711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 221811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 221911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 222011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 222111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 222211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 222311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 222411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pAttachments) { 222511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkpipelinecolorblendattachmentstate(pStruct->pAttachments, extra_indent); 222611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 222711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 222811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %spAttachments (addr)\n%s", prefix, tmpStr); 222911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 223011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 223111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = ""; 223211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 223311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 223411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%slogicOpEnable = %s\n%slogicOp = %s\n%sattachmentCount = %u\n%spAttachments = addr\n%sblendConstants = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, (pStruct->logicOpEnable) ? "TRUE" : "FALSE", prefix, string_VkLogicOp(pStruct->logicOp), prefix, (pStruct->attachmentCount), prefix, prefix); 223511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 223611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 223711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 223811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 223911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 224011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 224111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 224211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 224311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 224411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkpipelinedepthstencilstatecreateinfo(const VkPipelineDepthStencilStateCreateInfo* pStruct, const char* prefix) 224511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 224611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 224711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 224811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 224911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 225011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 225111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 225211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[3]; 225311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 225411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 225511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 225611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 225711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 225811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 225911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 226011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 226111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 226211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkstencilopstate(&pStruct->front, extra_indent); 226311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 226411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 226511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %sfront (addr)\n%s", prefix, tmpStr); 226611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkstencilopstate(&pStruct->back, extra_indent); 226711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 226811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[2] = (char*)malloc(len); 226911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[2], len, " %sback (addr)\n%s", prefix, tmpStr); 227011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + sizeof(char)*1024; 227111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 227211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%sdepthTestEnable = %s\n%sdepthWriteEnable = %s\n%sdepthCompareOp = %s\n%sdepthBoundsTestEnable = %s\n%sstencilTestEnable = %s\n%sfront = addr\n%sback = addr\n%sminDepthBounds = %f\n%smaxDepthBounds = %f\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, (pStruct->depthTestEnable) ? "TRUE" : "FALSE", prefix, (pStruct->depthWriteEnable) ? "TRUE" : "FALSE", prefix, string_VkCompareOp(pStruct->depthCompareOp), prefix, (pStruct->depthBoundsTestEnable) ? "TRUE" : "FALSE", prefix, (pStruct->stencilTestEnable) ? "TRUE" : "FALSE", prefix, prefix, prefix, (pStruct->minDepthBounds), prefix, (pStruct->maxDepthBounds)); 227311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 2; stp_index >= 0; stp_index--) { 227411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 227511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 227611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 227711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 227811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 227911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 228011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 228111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 228211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkpipelinedynamicstatecreateinfo(const VkPipelineDynamicStateCreateInfo* pStruct, const char* prefix) 228311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 228411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 228511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 228611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 228711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 228811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 228911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 229011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 229111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 229211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 229311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 229411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 229511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 229611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 229711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 229811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 229911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 230011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 230111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 230211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%sdynamicStateCount = %u\n%spDynamicStates = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, (pStruct->dynamicStateCount), prefix); 230311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 230411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 230511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 230611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 230711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 230811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 230911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 231011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 231111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 231211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkpipelineinputassemblystatecreateinfo(const VkPipelineInputAssemblyStateCreateInfo* pStruct, const char* prefix) 231311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 231411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 231511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 231611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 231711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 231811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 231911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 232011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 232111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 232211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 232311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 232411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 232511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 232611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 232711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 232811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 232911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 233011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 233111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 233211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%stopology = %s\n%sprimitiveRestartEnable = %s\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, string_VkPrimitiveTopology(pStruct->topology), prefix, (pStruct->primitiveRestartEnable) ? "TRUE" : "FALSE"); 233311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 233411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 233511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 233611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 233711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 233811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 233911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 234011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 234111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 234211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkpipelinelayoutcreateinfo(const VkPipelineLayoutCreateInfo* pStruct, const char* prefix) 234311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 234411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 234511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 234611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 234711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 234811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 234911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 235011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[2]; 235111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 235211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 235311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 235411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 235511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 235611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 235711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 235811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 235911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 236011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pPushConstantRanges) { 236111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkpushconstantrange(pStruct->pPushConstantRanges, extra_indent); 236211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 236311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 236411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %spPushConstantRanges (addr)\n%s", prefix, tmpStr); 236511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 236611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 236711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = ""; 236811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 236911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 237011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%ssetLayoutCount = %u\n%spSetLayouts = addr\n%spushConstantRangeCount = %u\n%spPushConstantRanges = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, (pStruct->setLayoutCount), prefix, prefix, (pStruct->pushConstantRangeCount), prefix); 237111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 237211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 237311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 237411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 237511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 237611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 237711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 237811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 237911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 238011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkpipelinemultisamplestatecreateinfo(const VkPipelineMultisampleStateCreateInfo* pStruct, const char* prefix) 238111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 238211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 238311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 238411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 238511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 238611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 238711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 238811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 238911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 239011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 239111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 239211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 239311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 239411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 239511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 239611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 239711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 239811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 239911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 240011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%srasterizationSamples = %s\n%ssampleShadingEnable = %s\n%sminSampleShading = %f\n%spSampleMask = %u\n%salphaToCoverageEnable = %s\n%salphaToOneEnable = %s\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, string_VkSampleCountFlagBits(pStruct->rasterizationSamples), prefix, (pStruct->sampleShadingEnable) ? "TRUE" : "FALSE", prefix, (pStruct->minSampleShading), prefix, (pStruct->pSampleMask), prefix, (pStruct->alphaToCoverageEnable) ? "TRUE" : "FALSE", prefix, (pStruct->alphaToOneEnable) ? "TRUE" : "FALSE"); 240111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 240211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 240311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 240411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 240511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 240611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 240711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 240811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 240911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 241011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkpipelinerasterizationstatecreateinfo(const VkPipelineRasterizationStateCreateInfo* pStruct, const char* prefix) 241111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 241211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 241311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 241411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 241511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 241611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 241711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 241811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 241911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 242011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 242111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 242211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 242311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 242411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 242511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 242611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 242711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 242811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 242911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 243011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%sdepthClampEnable = %s\n%srasterizerDiscardEnable = %s\n%spolygonMode = %s\n%scullMode = %u\n%sfrontFace = %s\n%sdepthBiasEnable = %s\n%sdepthBiasConstantFactor = %f\n%sdepthBiasClamp = %f\n%sdepthBiasSlopeFactor = %f\n%slineWidth = %f\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, (pStruct->depthClampEnable) ? "TRUE" : "FALSE", prefix, (pStruct->rasterizerDiscardEnable) ? "TRUE" : "FALSE", prefix, string_VkPolygonMode(pStruct->polygonMode), prefix, (pStruct->cullMode), prefix, string_VkFrontFace(pStruct->frontFace), prefix, (pStruct->depthBiasEnable) ? "TRUE" : "FALSE", prefix, (pStruct->depthBiasConstantFactor), prefix, (pStruct->depthBiasClamp), prefix, (pStruct->depthBiasSlopeFactor), prefix, (pStruct->lineWidth)); 243111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 243211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 243311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 243411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 243511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 243611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 243711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 243811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 243911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 244011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkpipelinerasterizationstaterasterizationorderamd(const VkPipelineRasterizationStateRasterizationOrderAMD* pStruct, const char* prefix) 244111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 244211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 244311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 244411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 244511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 244611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 244711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 244811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 244911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 245011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 245111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 245211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 245311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 245411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 245511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 245611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 245711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 245811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 245911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 246011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%srasterizationOrder = %s\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, string_VkRasterizationOrderAMD(pStruct->rasterizationOrder)); 246111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 246211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 246311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 246411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 246511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 246611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 246711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 246811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 246911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 247011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkpipelineshaderstagecreateinfo(const VkPipelineShaderStageCreateInfo* pStruct, const char* prefix) 247111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 247211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 247311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 247411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 247511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 247611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 247711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 247811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[2]; 247911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 248011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 248111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 248211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 248311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 248411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 248511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 248611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 248711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 248811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pSpecializationInfo) { 248911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkspecializationinfo(pStruct->pSpecializationInfo, extra_indent); 249011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 249111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 249211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %spSpecializationInfo (addr)\n%s", prefix, tmpStr); 249311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 249411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 249511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = ""; 249611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 249711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 249811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%sstage = %s\n%smodule = addr\n%spName = addr\n%spSpecializationInfo = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, string_VkShaderStageFlagBits(pStruct->stage), prefix, prefix, prefix); 249911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 250011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 250111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 250211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 250311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 250411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 250511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 250611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 250711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 250811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkpipelinetessellationstatecreateinfo(const VkPipelineTessellationStateCreateInfo* pStruct, const char* prefix) 250911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 251011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 251111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 251211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 251311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 251411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 251511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 251611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 251711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 251811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 251911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 252011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 252111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 252211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 252311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 252411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 252511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 252611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 252711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 252811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%spatchControlPoints = %u\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, (pStruct->patchControlPoints)); 252911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 253011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 253111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 253211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 253311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 253411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 253511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 253611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 253711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 253811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkpipelinevertexinputstatecreateinfo(const VkPipelineVertexInputStateCreateInfo* pStruct, const char* prefix) 253911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 254011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 254111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 254211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 254311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 254411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 254511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 254611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[3]; 254711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 254811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 254911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 255011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 255111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 255211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 255311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 255411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 255511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 255611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pVertexBindingDescriptions) { 255711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkvertexinputbindingdescription(pStruct->pVertexBindingDescriptions, extra_indent); 255811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 255911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 256011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %spVertexBindingDescriptions (addr)\n%s", prefix, tmpStr); 256111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 256211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 256311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = ""; 256411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pVertexAttributeDescriptions) { 256511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkvertexinputattributedescription(pStruct->pVertexAttributeDescriptions, extra_indent); 256611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 256711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[2] = (char*)malloc(len); 256811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[2], len, " %spVertexAttributeDescriptions (addr)\n%s", prefix, tmpStr); 256911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 257011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 257111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[2] = ""; 257211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + sizeof(char)*1024; 257311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 257411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%svertexBindingDescriptionCount = %u\n%spVertexBindingDescriptions = addr\n%svertexAttributeDescriptionCount = %u\n%spVertexAttributeDescriptions = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, (pStruct->vertexBindingDescriptionCount), prefix, prefix, (pStruct->vertexAttributeDescriptionCount), prefix); 257511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 2; stp_index >= 0; stp_index--) { 257611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 257711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 257811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 257911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 258011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 258111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 258211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 258311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 258411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkpipelineviewportstatecreateinfo(const VkPipelineViewportStateCreateInfo* pStruct, const char* prefix) 258511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 258611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 258711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 258811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 258911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 259011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 259111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 259211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[3]; 259311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 259411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 259511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 259611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 259711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 259811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 259911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 260011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 260111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 260211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pViewports) { 260311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkviewport(pStruct->pViewports, extra_indent); 260411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 260511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 260611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %spViewports (addr)\n%s", prefix, tmpStr); 260711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 260811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 260911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = ""; 261011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pScissors) { 261111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkrect2d(pStruct->pScissors, extra_indent); 261211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 261311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[2] = (char*)malloc(len); 261411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[2], len, " %spScissors (addr)\n%s", prefix, tmpStr); 261511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 261611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 261711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[2] = ""; 261811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + sizeof(char)*1024; 261911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 262011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%sviewportCount = %u\n%spViewports = addr\n%sscissorCount = %u\n%spScissors = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, (pStruct->viewportCount), prefix, prefix, (pStruct->scissorCount), prefix); 262111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 2; stp_index >= 0; stp_index--) { 262211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 262311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 262411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 262511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 262611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 262711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 262811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 262911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 263011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkpresentinfokhr(const VkPresentInfoKHR* pStruct, const char* prefix) 263111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 263211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 263311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 263411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 263511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 263611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 263711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 263811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 263911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 264011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 264111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 264211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 264311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 264411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 264511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 264611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 264711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 264811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 264911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 265011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%swaitSemaphoreCount = %u\n%spWaitSemaphores = addr\n%sswapchainCount = %u\n%spSwapchains = addr\n%spImageIndices = addr\n%spResults = 0x%s\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->waitSemaphoreCount), prefix, prefix, (pStruct->swapchainCount), prefix, prefix, prefix, string_VkResult(*pStruct->pResults)); 265111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 265211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 265311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 265411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 265511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 265611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 265711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 265811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 265911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 266011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkpushconstantrange(const VkPushConstantRange* pStruct, const char* prefix) 266111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 266211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 266311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 266411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 266511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 266611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%sstageFlags = %u\n%soffset = %u\n%ssize = %u\n", prefix, (pStruct->stageFlags), prefix, (pStruct->offset), prefix, (pStruct->size)); 266711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 266811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 266911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkquerypoolcreateinfo(const VkQueryPoolCreateInfo* pStruct, const char* prefix) 267011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 267111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 267211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 267311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 267411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 267511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 267611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 267711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 267811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 267911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 268011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 268111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 268211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 268311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 268411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 268511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 268611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 268711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 268811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 268911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%squeryType = %s\n%squeryCount = %u\n%spipelineStatistics = %u\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, string_VkQueryType(pStruct->queryType), prefix, (pStruct->queryCount), prefix, (pStruct->pipelineStatistics)); 269011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 269111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 269211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 269311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 269411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 269511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 269611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 269711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 269811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 269911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkqueuefamilyproperties(const VkQueueFamilyProperties* pStruct, const char* prefix) 270011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 270111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 270211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 270311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 270411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 270511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 270611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 270711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 270811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkextent3d(&pStruct->minImageTransferGranularity, extra_indent); 270911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 271011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 271111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %sminImageTransferGranularity (addr)\n%s", prefix, tmpStr); 271211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 271311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 271411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%squeueFlags = %u\n%squeueCount = %u\n%stimestampValidBits = %u\n%sminImageTransferGranularity = addr\n", prefix, (pStruct->queueFlags), prefix, (pStruct->queueCount), prefix, (pStruct->timestampValidBits), prefix); 271511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 271611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 271711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 271811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 271911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 272011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 272111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 272211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 272311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 272411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkrect2d(const VkRect2D* pStruct, const char* prefix) 272511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 272611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 272711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 272811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 272911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 273011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 273111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 273211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[2]; 273311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkoffset2d(&pStruct->offset, extra_indent); 273411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 273511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 273611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %soffset (addr)\n%s", prefix, tmpStr); 273711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkextent2d(&pStruct->extent, extra_indent); 273811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 273911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 274011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %sextent (addr)\n%s", prefix, tmpStr); 274111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 274211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 274311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%soffset = addr\n%sextent = addr\n", prefix, prefix); 274411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 274511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 274611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 274711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 274811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 274911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 275011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 275111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 275211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 275311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkrenderpassbegininfo(const VkRenderPassBeginInfo* pStruct, const char* prefix) 275411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 275511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 275611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 275711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 275811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 275911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 276011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 276111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[3]; 276211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 276311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 276411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 276511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 276611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 276711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 276811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 276911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 277011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 277111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkrect2d(&pStruct->renderArea, extra_indent); 277211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 277311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 277411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %srenderArea (addr)\n%s", prefix, tmpStr); 277511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pClearValues) { 277611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkclearvalue(pStruct->pClearValues, extra_indent); 277711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 277811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[2] = (char*)malloc(len); 277911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[2], len, " %spClearValues (addr)\n%s", prefix, tmpStr); 278011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 278111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 278211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[2] = ""; 278311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + sizeof(char)*1024; 278411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 278511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%srenderPass = addr\n%sframebuffer = addr\n%srenderArea = addr\n%sclearValueCount = %u\n%spClearValues = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, prefix, prefix, prefix, (pStruct->clearValueCount), prefix); 278611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 2; stp_index >= 0; stp_index--) { 278711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 278811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 278911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 279011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 279111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 279211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 279311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 279411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 279511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkrenderpasscreateinfo(const VkRenderPassCreateInfo* pStruct, const char* prefix) 279611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 279711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 279811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 279911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 280011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 280111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 280211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 280311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[4]; 280411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 280511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 280611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 280711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 280811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 280911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 281011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 281111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 281211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 281311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pAttachments) { 281411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkattachmentdescription(pStruct->pAttachments, extra_indent); 281511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 281611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 281711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %spAttachments (addr)\n%s", prefix, tmpStr); 281811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 281911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 282011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = ""; 282111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pSubpasses) { 282211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vksubpassdescription(pStruct->pSubpasses, extra_indent); 282311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 282411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[2] = (char*)malloc(len); 282511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[2], len, " %spSubpasses (addr)\n%s", prefix, tmpStr); 282611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 282711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 282811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[2] = ""; 282911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pDependencies) { 283011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vksubpassdependency(pStruct->pDependencies, extra_indent); 283111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 283211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[3] = (char*)malloc(len); 283311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[3], len, " %spDependencies (addr)\n%s", prefix, tmpStr); 283411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 283511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 283611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[3] = ""; 283711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + strlen(stp_strs[3]) + sizeof(char)*1024; 283811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 283911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%sattachmentCount = %u\n%spAttachments = addr\n%ssubpassCount = %u\n%spSubpasses = addr\n%sdependencyCount = %u\n%spDependencies = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, (pStruct->attachmentCount), prefix, prefix, (pStruct->subpassCount), prefix, prefix, (pStruct->dependencyCount), prefix); 284011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 3; stp_index >= 0; stp_index--) { 284111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 284211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 284311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 284411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 284511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 284611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 284711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 284811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 284911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vksamplercreateinfo(const VkSamplerCreateInfo* pStruct, const char* prefix) 285011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 285111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 285211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 285311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 285411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 285511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 285611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 285711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 285811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 285911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 286011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 286111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 286211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 286311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 286411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 286511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 286611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 286711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 286811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 286911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%smagFilter = %s\n%sminFilter = %s\n%smipmapMode = %s\n%saddressModeU = %s\n%saddressModeV = %s\n%saddressModeW = %s\n%smipLodBias = %f\n%sanisotropyEnable = %s\n%smaxAnisotropy = %f\n%scompareEnable = %s\n%scompareOp = %s\n%sminLod = %f\n%smaxLod = %f\n%sborderColor = %s\n%sunnormalizedCoordinates = %s\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, string_VkFilter(pStruct->magFilter), prefix, string_VkFilter(pStruct->minFilter), prefix, string_VkSamplerMipmapMode(pStruct->mipmapMode), prefix, string_VkSamplerAddressMode(pStruct->addressModeU), prefix, string_VkSamplerAddressMode(pStruct->addressModeV), prefix, string_VkSamplerAddressMode(pStruct->addressModeW), prefix, (pStruct->mipLodBias), prefix, (pStruct->anisotropyEnable) ? "TRUE" : "FALSE", prefix, (pStruct->maxAnisotropy), prefix, (pStruct->compareEnable) ? "TRUE" : "FALSE", prefix, string_VkCompareOp(pStruct->compareOp), prefix, (pStruct->minLod), prefix, (pStruct->maxLod), prefix, string_VkBorderColor(pStruct->borderColor), prefix, (pStruct->unnormalizedCoordinates) ? "TRUE" : "FALSE"); 287011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 287111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 287211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 287311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 287411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 287511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 287611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 287711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 287811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 287911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vksemaphorecreateinfo(const VkSemaphoreCreateInfo* pStruct, const char* prefix) 288011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 288111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 288211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 288311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 288411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 288511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 288611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 288711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 288811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 288911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 289011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 289111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 289211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 289311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 289411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 289511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 289611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 289711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 289811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 289911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags)); 290011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 290111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 290211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 290311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 290411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 290511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 290611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 290711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 290811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 290911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkshadermodulecreateinfo(const VkShaderModuleCreateInfo* pStruct, const char* prefix) 291011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 291111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 291211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 291311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 291411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 291511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 291611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 291711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 291811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 291911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 292011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 292111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 292211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 292311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 292411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 292511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 292611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 292711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 292811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 292911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%scodeSize = " PRINTF_SIZE_T_SPECIFIER "\n%spCode = %u\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, (pStruct->codeSize), prefix, (pStruct->pCode)); 293011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 293111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 293211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 293311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 293411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 293511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 293611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 293711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 293811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 293911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vksparsebuffermemorybindinfo(const VkSparseBufferMemoryBindInfo* pStruct, const char* prefix) 294011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 294111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 294211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 294311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 294411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 294511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 294611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 294711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 294811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pBinds) { 294911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vksparsememorybind(pStruct->pBinds, extra_indent); 295011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 295111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 295211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spBinds (addr)\n%s", prefix, tmpStr); 295311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 295411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 295511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 295611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 295711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 295811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%sbuffer = addr\n%sbindCount = %u\n%spBinds = addr\n", prefix, prefix, (pStruct->bindCount), prefix); 295911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 296011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 296111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 296211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 296311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 296411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 296511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 296611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 296711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 296811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vksparseimageformatproperties(const VkSparseImageFormatProperties* pStruct, const char* prefix) 296911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 297011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 297111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 297211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 297311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 297411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 297511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 297611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 297711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkextent3d(&pStruct->imageGranularity, extra_indent); 297811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 297911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 298011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %simageGranularity (addr)\n%s", prefix, tmpStr); 298111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 298211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 298311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%saspectMask = %u\n%simageGranularity = addr\n%sflags = %u\n", prefix, (pStruct->aspectMask), prefix, prefix, (pStruct->flags)); 298411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 298511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 298611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 298711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 298811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 298911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 299011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 299111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 299211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 299311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vksparseimagememorybind(const VkSparseImageMemoryBind* pStruct, const char* prefix) 299411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 299511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 299611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 299711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 299811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 299911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 300011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 300111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[3]; 300211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkimagesubresource(&pStruct->subresource, extra_indent); 300311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 300411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 300511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %ssubresource (addr)\n%s", prefix, tmpStr); 300611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkoffset3d(&pStruct->offset, extra_indent); 300711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 300811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 300911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %soffset (addr)\n%s", prefix, tmpStr); 301011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkextent3d(&pStruct->extent, extra_indent); 301111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 301211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[2] = (char*)malloc(len); 301311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[2], len, " %sextent (addr)\n%s", prefix, tmpStr); 301411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + sizeof(char)*1024; 301511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 301611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssubresource = addr\n%soffset = addr\n%sextent = addr\n%smemory = addr\n%smemoryOffset = " PRINTF_SIZE_T_SPECIFIER "\n%sflags = %u\n", prefix, prefix, prefix, prefix, prefix, (pStruct->memoryOffset), prefix, (pStruct->flags)); 301711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 2; stp_index >= 0; stp_index--) { 301811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 301911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 302011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 302111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 302211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 302311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 302411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 302511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 302611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vksparseimagememorybindinfo(const VkSparseImageMemoryBindInfo* pStruct, const char* prefix) 302711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 302811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 302911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 303011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 303111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 303211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 303311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 303411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 303511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pBinds) { 303611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vksparseimagememorybind(pStruct->pBinds, extra_indent); 303711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 303811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 303911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spBinds (addr)\n%s", prefix, tmpStr); 304011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 304111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 304211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 304311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 304411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 304511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%simage = addr\n%sbindCount = %u\n%spBinds = addr\n", prefix, prefix, (pStruct->bindCount), prefix); 304611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 304711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 304811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 304911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 305011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 305111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 305211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 305311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 305411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 305511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vksparseimagememoryrequirements(const VkSparseImageMemoryRequirements* pStruct, const char* prefix) 305611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 305711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 305811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 305911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 306011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 306111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 306211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 306311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 306411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vksparseimageformatproperties(&pStruct->formatProperties, extra_indent); 306511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 306611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 306711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %sformatProperties (addr)\n%s", prefix, tmpStr); 306811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 306911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 307011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%sformatProperties = addr\n%simageMipTailFirstLod = %u\n%simageMipTailSize = " PRINTF_SIZE_T_SPECIFIER "\n%simageMipTailOffset = " PRINTF_SIZE_T_SPECIFIER "\n%simageMipTailStride = " PRINTF_SIZE_T_SPECIFIER "\n", prefix, prefix, (pStruct->imageMipTailFirstLod), prefix, (pStruct->imageMipTailSize), prefix, (pStruct->imageMipTailOffset), prefix, (pStruct->imageMipTailStride)); 307111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 307211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 307311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 307411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 307511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 307611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 307711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 307811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 307911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 308011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vksparseimageopaquememorybindinfo(const VkSparseImageOpaqueMemoryBindInfo* pStruct, const char* prefix) 308111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 308211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 308311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 308411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 308511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 308611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 308711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 308811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 308911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pBinds) { 309011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vksparsememorybind(pStruct->pBinds, extra_indent); 309111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 309211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 309311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spBinds (addr)\n%s", prefix, tmpStr); 309411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 309511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 309611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 309711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 309811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 309911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%simage = addr\n%sbindCount = %u\n%spBinds = addr\n", prefix, prefix, (pStruct->bindCount), prefix); 310011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 310111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 310211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 310311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 310411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 310511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 310611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 310711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 310811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 310911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vksparsememorybind(const VkSparseMemoryBind* pStruct, const char* prefix) 311011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 311111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 311211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 311311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 311411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 311511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%sresourceOffset = " PRINTF_SIZE_T_SPECIFIER "\n%ssize = " PRINTF_SIZE_T_SPECIFIER "\n%smemory = addr\n%smemoryOffset = " PRINTF_SIZE_T_SPECIFIER "\n%sflags = %u\n", prefix, (pStruct->resourceOffset), prefix, (pStruct->size), prefix, prefix, (pStruct->memoryOffset), prefix, (pStruct->flags)); 311611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 311711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 311811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkspecializationinfo(const VkSpecializationInfo* pStruct, const char* prefix) 311911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 312011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 312111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 312211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 312311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 312411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 312511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 312611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 312711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pMapEntries) { 312811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkspecializationmapentry(pStruct->pMapEntries, extra_indent); 312911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 313011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 313111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spMapEntries (addr)\n%s", prefix, tmpStr); 313211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 313311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 313411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 313511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 313611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 313711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%smapEntryCount = %u\n%spMapEntries = addr\n%sdataSize = " PRINTF_SIZE_T_SPECIFIER "\n%spData = addr\n", prefix, (pStruct->mapEntryCount), prefix, prefix, (pStruct->dataSize), prefix); 313811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 313911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 314011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 314111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 314211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 314311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 314411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 314511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 314611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 314711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkspecializationmapentry(const VkSpecializationMapEntry* pStruct, const char* prefix) 314811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 314911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 315011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 315111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 315211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 315311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%sconstantID = %u\n%soffset = %u\n%ssize = " PRINTF_SIZE_T_SPECIFIER "\n", prefix, (pStruct->constantID), prefix, (pStruct->offset), prefix, (pStruct->size)); 315411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 315511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 315611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkstencilopstate(const VkStencilOpState* pStruct, const char* prefix) 315711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 315811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 315911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 316011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 316111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 316211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%sfailOp = %s\n%spassOp = %s\n%sdepthFailOp = %s\n%scompareOp = %s\n%scompareMask = %u\n%swriteMask = %u\n%sreference = %u\n", prefix, string_VkStencilOp(pStruct->failOp), prefix, string_VkStencilOp(pStruct->passOp), prefix, string_VkStencilOp(pStruct->depthFailOp), prefix, string_VkCompareOp(pStruct->compareOp), prefix, (pStruct->compareMask), prefix, (pStruct->writeMask), prefix, (pStruct->reference)); 316311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 316411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 316511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vksubmitinfo(const VkSubmitInfo* pStruct, const char* prefix) 316611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 316711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 316811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 316911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 317011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 317111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 317211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 317311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 317411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 317511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 317611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 317711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 317811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 317911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 318011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 318111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 318211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 318311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 318411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 318511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%swaitSemaphoreCount = %u\n%spWaitSemaphores = addr\n%spWaitDstStageMask = %u\n%scommandBufferCount = %u\n%spCommandBuffers = addr\n%ssignalSemaphoreCount = %u\n%spSignalSemaphores = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->waitSemaphoreCount), prefix, prefix, (pStruct->pWaitDstStageMask), prefix, (pStruct->commandBufferCount), prefix, prefix, (pStruct->signalSemaphoreCount), prefix); 318611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 318711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 318811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 318911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 319011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 319111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 319211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 319311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 319411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 319511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vksubpassdependency(const VkSubpassDependency* pStruct, const char* prefix) 319611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 319711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 319811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 319911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 320011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 320111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssrcSubpass = %u\n%sdstSubpass = %u\n%ssrcStageMask = %u\n%sdstStageMask = %u\n%ssrcAccessMask = %u\n%sdstAccessMask = %u\n%sdependencyFlags = %u\n", prefix, (pStruct->srcSubpass), prefix, (pStruct->dstSubpass), prefix, (pStruct->srcStageMask), prefix, (pStruct->dstStageMask), prefix, (pStruct->srcAccessMask), prefix, (pStruct->dstAccessMask), prefix, (pStruct->dependencyFlags)); 320211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 320311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 320411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vksubpassdescription(const VkSubpassDescription* pStruct, const char* prefix) 320511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 320611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 320711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 320811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 320911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 321011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 321111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 321211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[4]; 321311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pInputAttachments) { 321411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkattachmentreference(pStruct->pInputAttachments, extra_indent); 321511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 321611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 321711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spInputAttachments (addr)\n%s", prefix, tmpStr); 321811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 321911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 322011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 322111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pColorAttachments) { 322211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkattachmentreference(pStruct->pColorAttachments, extra_indent); 322311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 322411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 322511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %spColorAttachments (addr)\n%s", prefix, tmpStr); 322611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 322711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 322811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = ""; 322911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pResolveAttachments) { 323011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkattachmentreference(pStruct->pResolveAttachments, extra_indent); 323111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 323211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[2] = (char*)malloc(len); 323311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[2], len, " %spResolveAttachments (addr)\n%s", prefix, tmpStr); 323411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 323511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 323611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[2] = ""; 323711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pDepthStencilAttachment) { 323811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkattachmentreference(pStruct->pDepthStencilAttachment, extra_indent); 323911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 324011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[3] = (char*)malloc(len); 324111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[3], len, " %spDepthStencilAttachment (addr)\n%s", prefix, tmpStr); 324211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 324311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 324411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[3] = ""; 324511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + strlen(stp_strs[3]) + sizeof(char)*1024; 324611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 324711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%sflags = %u\n%spipelineBindPoint = %s\n%sinputAttachmentCount = %u\n%spInputAttachments = addr\n%scolorAttachmentCount = %u\n%spColorAttachments = addr\n%spResolveAttachments = addr\n%spDepthStencilAttachment = addr\n%spreserveAttachmentCount = %u\n%spPreserveAttachments = addr\n", prefix, (pStruct->flags), prefix, string_VkPipelineBindPoint(pStruct->pipelineBindPoint), prefix, (pStruct->inputAttachmentCount), prefix, prefix, (pStruct->colorAttachmentCount), prefix, prefix, prefix, prefix, (pStruct->preserveAttachmentCount), prefix); 324811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 3; stp_index >= 0; stp_index--) { 324911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 325011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 325111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 325211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 325311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 325411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 325511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 325611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 325711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vksubresourcelayout(const VkSubresourceLayout* pStruct, const char* prefix) 325811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 325911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 326011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 326111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 326211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 326311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%soffset = " PRINTF_SIZE_T_SPECIFIER "\n%ssize = " PRINTF_SIZE_T_SPECIFIER "\n%srowPitch = " PRINTF_SIZE_T_SPECIFIER "\n%sarrayPitch = " PRINTF_SIZE_T_SPECIFIER "\n%sdepthPitch = " PRINTF_SIZE_T_SPECIFIER "\n", prefix, (pStruct->offset), prefix, (pStruct->size), prefix, (pStruct->rowPitch), prefix, (pStruct->arrayPitch), prefix, (pStruct->depthPitch)); 326411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 326511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 326611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vksurfacecapabilitieskhr(const VkSurfaceCapabilitiesKHR* pStruct, const char* prefix) 326711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 326811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 326911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 327011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 327111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 327211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 327311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 327411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[3]; 327511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkextent2d(&pStruct->currentExtent, extra_indent); 327611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 327711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 327811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %scurrentExtent (addr)\n%s", prefix, tmpStr); 327911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkextent2d(&pStruct->minImageExtent, extra_indent); 328011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 328111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 328211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %sminImageExtent (addr)\n%s", prefix, tmpStr); 328311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkextent2d(&pStruct->maxImageExtent, extra_indent); 328411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 328511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[2] = (char*)malloc(len); 328611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[2], len, " %smaxImageExtent (addr)\n%s", prefix, tmpStr); 328711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + sizeof(char)*1024; 328811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 328911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%sminImageCount = %u\n%smaxImageCount = %u\n%scurrentExtent = addr\n%sminImageExtent = addr\n%smaxImageExtent = addr\n%smaxImageArrayLayers = %u\n%ssupportedTransforms = %u\n%scurrentTransform = %s\n%ssupportedCompositeAlpha = %u\n%ssupportedUsageFlags = %u\n", prefix, (pStruct->minImageCount), prefix, (pStruct->maxImageCount), prefix, prefix, prefix, prefix, (pStruct->maxImageArrayLayers), prefix, (pStruct->supportedTransforms), prefix, string_VkSurfaceTransformFlagBitsKHR(pStruct->currentTransform), prefix, (pStruct->supportedCompositeAlpha), prefix, (pStruct->supportedUsageFlags)); 329011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 2; stp_index >= 0; stp_index--) { 329111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 329211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 329311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 329411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 329511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 329611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 329711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 329811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 329911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vksurfaceformatkhr(const VkSurfaceFormatKHR* pStruct, const char* prefix) 330011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 330111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 330211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 330311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 330411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 330511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%sformat = %s\n%scolorSpace = %s\n", prefix, string_VkFormat(pStruct->format), prefix, string_VkColorSpaceKHR(pStruct->colorSpace)); 330611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 330711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 330811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkswapchaincreateinfokhr(const VkSwapchainCreateInfoKHR* pStruct, const char* prefix) 330911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 331011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 331111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 331211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 331311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 331411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 331511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 331611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[2]; 331711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 331811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 331911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 332011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 332111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 332211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 332311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 332411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 332511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 332611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkextent2d(&pStruct->imageExtent, extra_indent); 332711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 332811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 332911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %simageExtent (addr)\n%s", prefix, tmpStr); 333011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 333111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 333211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%ssurface = addr\n%sminImageCount = %u\n%simageFormat = %s\n%simageColorSpace = %s\n%simageExtent = addr\n%simageArrayLayers = %u\n%simageUsage = %u\n%simageSharingMode = %s\n%squeueFamilyIndexCount = %u\n%spQueueFamilyIndices = addr\n%spreTransform = %s\n%scompositeAlpha = %s\n%spresentMode = %s\n%sclipped = %s\n%soldSwapchain = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, prefix, (pStruct->minImageCount), prefix, string_VkFormat(pStruct->imageFormat), prefix, string_VkColorSpaceKHR(pStruct->imageColorSpace), prefix, prefix, (pStruct->imageArrayLayers), prefix, (pStruct->imageUsage), prefix, string_VkSharingMode(pStruct->imageSharingMode), prefix, (pStruct->queueFamilyIndexCount), prefix, prefix, string_VkSurfaceTransformFlagBitsKHR(pStruct->preTransform), prefix, string_VkCompositeAlphaFlagBitsKHR(pStruct->compositeAlpha), prefix, string_VkPresentModeKHR(pStruct->presentMode), prefix, (pStruct->clipped) ? "TRUE" : "FALSE", prefix); 333311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 333411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 333511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 333611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 333711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 333811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 333911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 334011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 334111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 334211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkvertexinputattributedescription(const VkVertexInputAttributeDescription* pStruct, const char* prefix) 334311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 334411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 334511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 334611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 334711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 334811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%slocation = %u\n%sbinding = %u\n%sformat = %s\n%soffset = %u\n", prefix, (pStruct->location), prefix, (pStruct->binding), prefix, string_VkFormat(pStruct->format), prefix, (pStruct->offset)); 334911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 335011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 335111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkvertexinputbindingdescription(const VkVertexInputBindingDescription* pStruct, const char* prefix) 335211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 335311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 335411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 335511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 335611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 335711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%sbinding = %u\n%sstride = %u\n%sinputRate = %s\n", prefix, (pStruct->binding), prefix, (pStruct->stride), prefix, string_VkVertexInputRate(pStruct->inputRate)); 335811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 335911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 336011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkviewport(const VkViewport* pStruct, const char* prefix) 336111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 336211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 336311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 336411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = sizeof(char)*1024; 336511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 336611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%sx = %f\n%sy = %f\n%swidth = %f\n%sheight = %f\n%sminDepth = %f\n%smaxDepth = %f\n", prefix, (pStruct->x), prefix, (pStruct->y), prefix, (pStruct->width), prefix, (pStruct->height), prefix, (pStruct->minDepth), prefix, (pStruct->maxDepth)); 336711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 336811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 336911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkwaylandsurfacecreateinfokhr(const VkWaylandSurfaceCreateInfoKHR* pStruct, const char* prefix) 337011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 337111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 337211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 337311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 337411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 337511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 337611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 337711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 337811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 337911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 338011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 338111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 338211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 338311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 338411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 338511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 338611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 338711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 338811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 338911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%sdisplay = addr\n%ssurface = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, prefix); 339011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 339111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 339211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 339311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 339411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 339511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 339611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 339711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 339811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 339911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkwin32surfacecreateinfokhr(const VkWin32SurfaceCreateInfoKHR* pStruct, const char* prefix) 340011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 340111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 340211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 340311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 340411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 340511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 340611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 340711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 340811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 340911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 341011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 341111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 341211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 341311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 341411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 341511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 341611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 341711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 341811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 341911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%shinstance = addr\n%shwnd = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, prefix); 342011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 342111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 342211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 342311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 342411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 342511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 342611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 342711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 342811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 342911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkwritedescriptorset(const VkWriteDescriptorSet* pStruct, const char* prefix) 343011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 343111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 343211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 343311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 343411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 343511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 343611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 343711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[3]; 343811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 343911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 344011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 344111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 344211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 344311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 344411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 344511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 344611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 344711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pImageInfo) { 344811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkdescriptorimageinfo(pStruct->pImageInfo, extra_indent); 344911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 345011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = (char*)malloc(len); 345111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[1], len, " %spImageInfo (addr)\n%s", prefix, tmpStr); 345211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 345311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 345411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[1] = ""; 345511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pBufferInfo) { 345611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = vk_print_vkdescriptorbufferinfo(pStruct->pBufferInfo, extra_indent); 345711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr)+strlen(prefix); 345811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[2] = (char*)malloc(len); 345911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[2], len, " %spBufferInfo (addr)\n%s", prefix, tmpStr); 346011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 346111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 346211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[2] = ""; 346311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + sizeof(char)*1024; 346411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 346511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sdstSet = addr\n%sdstBinding = %u\n%sdstArrayElement = %u\n%sdescriptorCount = %u\n%sdescriptorType = %s\n%spImageInfo = addr\n%spBufferInfo = addr\n%spTexelBufferView = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, prefix, (pStruct->dstBinding), prefix, (pStruct->dstArrayElement), prefix, (pStruct->descriptorCount), prefix, string_VkDescriptorType(pStruct->descriptorType), prefix, prefix, prefix); 346611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 2; stp_index >= 0; stp_index--) { 346711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 346811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 346911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 347011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 347111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 347211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 347311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 347411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 347511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkxcbsurfacecreateinfokhr(const VkXcbSurfaceCreateInfoKHR* pStruct, const char* prefix) 347611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 347711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 347811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 347911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 348011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 348111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 348211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 348311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 348411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 348511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 348611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 348711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 348811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 348911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 349011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 349111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 349211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 349311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 349411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 349511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%sconnection = addr\n%swindow = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, prefix); 349611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 349711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 349811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 349911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 350011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 350111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 350211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 350311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 350411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 350511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* vk_print_vkxlibsurfacecreateinfokhr(const VkXlibSurfaceCreateInfoKHR* pStruct, const char* prefix) 350611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 350711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* str; 350811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_t len; 350911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* tmpStr; 351011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* extra_indent = (char*)malloc(strlen(prefix) + 3); 351111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(extra_indent, " "); 351211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(extra_indent, prefix, strlen(prefix)); 351311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char* stp_strs[1]; 351411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct->pNext) { 351511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 351611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = 256+strlen(tmpStr); 351711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = (char*)malloc(len); 351811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(stp_strs[0], len, " %spNext (addr)\n%s", prefix, tmpStr); 351911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(tmpStr); 352011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 352111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else 352211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stp_strs[0] = ""; 352311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert len = strlen(stp_strs[0]) + sizeof(char)*1024; 352411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert str = (char*)malloc(len); 352511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert snprintf(str, len, "%ssType = %s\n%spNext = addr\n%sflags = %u\n%sdpy = addr\n%swindow = addr\n", prefix, string_VkStructureType(pStruct->sType), prefix, prefix, (pStruct->flags), prefix, prefix); 352611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 352711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (0 < strlen(stp_strs[stp_index])) { 352811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 352911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(stp_strs[stp_index]); 353011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 353111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 353211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert free(extra_indent); 353311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return str; 353411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 353511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertchar* dynamic_display(const void* pStruct, const char* prefix) 353611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 353711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert // Cast to APP_INFO ptr initially just to pull sType off struct 353811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (pStruct == NULL) { 353911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return NULL; 354011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 354111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert VkStructureType sType = ((VkApplicationInfo*)pStruct)->sType; 354211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char indent[100]; 354311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcpy(indent, " "); 354411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert strcat(indent, prefix); 354511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert switch (sType) 354611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 354711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_APPLICATION_INFO: 354811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 354911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkapplicationinfo((VkApplicationInfo*)pStruct, indent); 355011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 355111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 355211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_BIND_SPARSE_INFO: 355311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 355411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkbindsparseinfo((VkBindSparseInfo*)pStruct, indent); 355511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 355611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 355711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO: 355811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 355911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkbuffercreateinfo((VkBufferCreateInfo*)pStruct, indent); 356011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 356111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 356211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER: 356311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 356411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkbuffermemorybarrier((VkBufferMemoryBarrier*)pStruct, indent); 356511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 356611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 356711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO: 356811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 356911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkbufferviewcreateinfo((VkBufferViewCreateInfo*)pStruct, indent); 357011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 357111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 357211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO: 357311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 357411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkcommandbufferallocateinfo((VkCommandBufferAllocateInfo*)pStruct, indent); 357511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 357611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 357711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO: 357811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 357911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkcommandbufferbegininfo((VkCommandBufferBeginInfo*)pStruct, indent); 358011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 358111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 358211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO: 358311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 358411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkcommandbufferinheritanceinfo((VkCommandBufferInheritanceInfo*)pStruct, indent); 358511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 358611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 358711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO: 358811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 358911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkcommandpoolcreateinfo((VkCommandPoolCreateInfo*)pStruct, indent); 359011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 359111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 359211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO: 359311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 359411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkcomputepipelinecreateinfo((VkComputePipelineCreateInfo*)pStruct, indent); 359511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 359611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 359711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET: 359811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 359911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkcopydescriptorset((VkCopyDescriptorSet*)pStruct, indent); 360011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 360111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 360211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO: 360311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 360411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkdescriptorpoolcreateinfo((VkDescriptorPoolCreateInfo*)pStruct, indent); 360511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 360611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 360711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO: 360811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 360911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkdescriptorsetallocateinfo((VkDescriptorSetAllocateInfo*)pStruct, indent); 361011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 361111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 361211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO: 361311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 361411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkdescriptorsetlayoutcreateinfo((VkDescriptorSetLayoutCreateInfo*)pStruct, indent); 361511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 361611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 361711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO: 361811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 361911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkdevicecreateinfo((VkDeviceCreateInfo*)pStruct, indent); 362011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 362111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 362211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO: 362311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 362411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkdevicequeuecreateinfo((VkDeviceQueueCreateInfo*)pStruct, indent); 362511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 362611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 362711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_EVENT_CREATE_INFO: 362811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 362911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkeventcreateinfo((VkEventCreateInfo*)pStruct, indent); 363011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 363111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 363211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_FENCE_CREATE_INFO: 363311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 363411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkfencecreateinfo((VkFenceCreateInfo*)pStruct, indent); 363511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 363611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 363711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO: 363811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 363911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkframebuffercreateinfo((VkFramebufferCreateInfo*)pStruct, indent); 364011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 364111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 364211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO: 364311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 364411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkgraphicspipelinecreateinfo((VkGraphicsPipelineCreateInfo*)pStruct, indent); 364511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 364611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 364711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO: 364811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 364911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkimagecreateinfo((VkImageCreateInfo*)pStruct, indent); 365011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 365111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 365211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER: 365311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 365411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkimagememorybarrier((VkImageMemoryBarrier*)pStruct, indent); 365511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 365611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 365711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO: 365811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 365911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkimageviewcreateinfo((VkImageViewCreateInfo*)pStruct, indent); 366011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 366111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 366211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO: 366311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 366411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkinstancecreateinfo((VkInstanceCreateInfo*)pStruct, indent); 366511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 366611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 366711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE: 366811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 366911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkmappedmemoryrange((VkMappedMemoryRange*)pStruct, indent); 367011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 367111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 367211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: 367311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 367411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkmemoryallocateinfo((VkMemoryAllocateInfo*)pStruct, indent); 367511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 367611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 367711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_MEMORY_BARRIER: 367811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 367911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkmemorybarrier((VkMemoryBarrier*)pStruct, indent); 368011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 368111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 368211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO: 368311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 368411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkpipelinecachecreateinfo((VkPipelineCacheCreateInfo*)pStruct, indent); 368511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 368611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 368711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO: 368811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 368911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkpipelinecolorblendstatecreateinfo((VkPipelineColorBlendStateCreateInfo*)pStruct, indent); 369011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 369111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 369211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO: 369311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 369411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkpipelinedepthstencilstatecreateinfo((VkPipelineDepthStencilStateCreateInfo*)pStruct, indent); 369511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 369611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 369711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO: 369811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 369911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkpipelinedynamicstatecreateinfo((VkPipelineDynamicStateCreateInfo*)pStruct, indent); 370011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 370111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 370211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO: 370311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 370411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkpipelineinputassemblystatecreateinfo((VkPipelineInputAssemblyStateCreateInfo*)pStruct, indent); 370511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 370611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 370711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO: 370811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 370911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkpipelinelayoutcreateinfo((VkPipelineLayoutCreateInfo*)pStruct, indent); 371011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 371111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 371211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO: 371311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 371411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkpipelinemultisamplestatecreateinfo((VkPipelineMultisampleStateCreateInfo*)pStruct, indent); 371511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 371611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 371711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO: 371811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 371911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkpipelinerasterizationstatecreateinfo((VkPipelineRasterizationStateCreateInfo*)pStruct, indent); 372011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 372111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 372211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO: 372311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 372411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkpipelineshaderstagecreateinfo((VkPipelineShaderStageCreateInfo*)pStruct, indent); 372511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 372611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 372711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO: 372811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 372911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkpipelinetessellationstatecreateinfo((VkPipelineTessellationStateCreateInfo*)pStruct, indent); 373011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 373111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 373211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO: 373311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 373411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkpipelinevertexinputstatecreateinfo((VkPipelineVertexInputStateCreateInfo*)pStruct, indent); 373511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 373611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 373711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO: 373811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 373911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkpipelineviewportstatecreateinfo((VkPipelineViewportStateCreateInfo*)pStruct, indent); 374011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 374111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 374211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO: 374311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 374411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkquerypoolcreateinfo((VkQueryPoolCreateInfo*)pStruct, indent); 374511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 374611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 374711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO: 374811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 374911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkrenderpassbegininfo((VkRenderPassBeginInfo*)pStruct, indent); 375011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 375111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 375211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO: 375311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 375411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkrenderpasscreateinfo((VkRenderPassCreateInfo*)pStruct, indent); 375511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 375611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 375711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO: 375811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 375911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vksamplercreateinfo((VkSamplerCreateInfo*)pStruct, indent); 376011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 376111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 376211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO: 376311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 376411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vksemaphorecreateinfo((VkSemaphoreCreateInfo*)pStruct, indent); 376511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 376611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 376711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO: 376811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 376911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkshadermodulecreateinfo((VkShaderModuleCreateInfo*)pStruct, indent); 377011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 377111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 377211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_SUBMIT_INFO: 377311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 377411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vksubmitinfo((VkSubmitInfo*)pStruct, indent); 377511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 377611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 377711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET: 377811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 377911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return vk_print_vkwritedescriptorset((VkWriteDescriptorSet*)pStruct, indent); 378011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 378111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert break; 378211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert default: 378311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return NULL; 378411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 378511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}