1 /* THIS FILE IS GENERATED. DO NOT EDIT. */ 2 3 /* 4 * Vulkan 5 * 6 * Copyright (c) 2015-2016 The Khronos Group Inc. 7 * Copyright (c) 2015-2016 Valve Corporation. 8 * Copyright (c) 2015-2016 LunarG, Inc. 9 * Copyright (c) 2015-2016 Google Inc. 10 * 11 * Licensed under the Apache License, Version 2.0 (the "License"); 12 * you may not use this file except in compliance with the License. 13 * You may obtain a copy of the License at 14 * 15 * http://www.apache.org/licenses/LICENSE-2.0 16 * 17 * Unless required by applicable law or agreed to in writing, software 18 * distributed under the License is distributed on an "AS IS" BASIS, 19 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 20 * See the License for the specific language governing permissions and 21 * limitations under the License. 22 * 23 * Author: Courtney Goeltzenleuchter <courtney (at) LunarG.com> 24 * Author: Tobin Ehlis <tobin (at) lunarg.com> 25 */ 26 //#includes, #defines, globals and such... 27 #include <vulkan/vulkan.h> 28 #include <stdint.h> 29 #include <cinttypes> 30 #include <stdio.h> 31 #include <stdlib.h> 32 #include "vk_enum_string_helper.h" 33 34 // Function Prototypes 35 char* dynamic_display(const void* pStruct, const char* prefix); 36 char* vk_print_vkallocationcallbacks(const VkAllocationCallbacks* pStruct, const char* prefix); 37 char* vk_print_vkandroidsurfacecreateinfokhr(const VkAndroidSurfaceCreateInfoKHR* pStruct, const char* prefix); 38 char* vk_print_vkapplicationinfo(const VkApplicationInfo* pStruct, const char* prefix); 39 char* vk_print_vkattachmentdescription(const VkAttachmentDescription* pStruct, const char* prefix); 40 char* vk_print_vkattachmentreference(const VkAttachmentReference* pStruct, const char* prefix); 41 char* vk_print_vkbindsparseinfo(const VkBindSparseInfo* pStruct, const char* prefix); 42 char* vk_print_vkbuffercopy(const VkBufferCopy* pStruct, const char* prefix); 43 char* vk_print_vkbuffercreateinfo(const VkBufferCreateInfo* pStruct, const char* prefix); 44 char* vk_print_vkbufferimagecopy(const VkBufferImageCopy* pStruct, const char* prefix); 45 char* vk_print_vkbuffermemorybarrier(const VkBufferMemoryBarrier* pStruct, const char* prefix); 46 char* vk_print_vkbufferviewcreateinfo(const VkBufferViewCreateInfo* pStruct, const char* prefix); 47 char* vk_print_vkclearattachment(const VkClearAttachment* pStruct, const char* prefix); 48 char* vk_print_vkclearcolorvalue(const VkClearColorValue* pStruct, const char* prefix); 49 char* vk_print_vkcleardepthstencilvalue(const VkClearDepthStencilValue* pStruct, const char* prefix); 50 char* vk_print_vkclearrect(const VkClearRect* pStruct, const char* prefix); 51 char* vk_print_vkclearvalue(const VkClearValue* pStruct, const char* prefix); 52 char* vk_print_vkcommandbufferallocateinfo(const VkCommandBufferAllocateInfo* pStruct, const char* prefix); 53 char* vk_print_vkcommandbufferbegininfo(const VkCommandBufferBeginInfo* pStruct, const char* prefix); 54 char* vk_print_vkcommandbufferinheritanceinfo(const VkCommandBufferInheritanceInfo* pStruct, const char* prefix); 55 char* vk_print_vkcommandpoolcreateinfo(const VkCommandPoolCreateInfo* pStruct, const char* prefix); 56 char* vk_print_vkcomponentmapping(const VkComponentMapping* pStruct, const char* prefix); 57 char* vk_print_vkcomputepipelinecreateinfo(const VkComputePipelineCreateInfo* pStruct, const char* prefix); 58 char* vk_print_vkcopydescriptorset(const VkCopyDescriptorSet* pStruct, const char* prefix); 59 char* vk_print_vkdebugmarkermarkerinfoext(const VkDebugMarkerMarkerInfoEXT* pStruct, const char* prefix); 60 char* vk_print_vkdebugmarkerobjectnameinfoext(const VkDebugMarkerObjectNameInfoEXT* pStruct, const char* prefix); 61 char* vk_print_vkdebugmarkerobjecttaginfoext(const VkDebugMarkerObjectTagInfoEXT* pStruct, const char* prefix); 62 char* vk_print_vkdebugreportcallbackcreateinfoext(const VkDebugReportCallbackCreateInfoEXT* pStruct, const char* prefix); 63 char* vk_print_vkdescriptorbufferinfo(const VkDescriptorBufferInfo* pStruct, const char* prefix); 64 char* vk_print_vkdescriptorimageinfo(const VkDescriptorImageInfo* pStruct, const char* prefix); 65 char* vk_print_vkdescriptorpoolcreateinfo(const VkDescriptorPoolCreateInfo* pStruct, const char* prefix); 66 char* vk_print_vkdescriptorpoolsize(const VkDescriptorPoolSize* pStruct, const char* prefix); 67 char* vk_print_vkdescriptorsetallocateinfo(const VkDescriptorSetAllocateInfo* pStruct, const char* prefix); 68 char* vk_print_vkdescriptorsetlayoutbinding(const VkDescriptorSetLayoutBinding* pStruct, const char* prefix); 69 char* vk_print_vkdescriptorsetlayoutcreateinfo(const VkDescriptorSetLayoutCreateInfo* pStruct, const char* prefix); 70 char* vk_print_vkdevicecreateinfo(const VkDeviceCreateInfo* pStruct, const char* prefix); 71 char* vk_print_vkdevicequeuecreateinfo(const VkDeviceQueueCreateInfo* pStruct, const char* prefix); 72 char* vk_print_vkdispatchindirectcommand(const VkDispatchIndirectCommand* pStruct, const char* prefix); 73 char* vk_print_vkdisplaymodecreateinfokhr(const VkDisplayModeCreateInfoKHR* pStruct, const char* prefix); 74 char* vk_print_vkdisplaymodeparameterskhr(const VkDisplayModeParametersKHR* pStruct, const char* prefix); 75 char* vk_print_vkdisplaymodepropertieskhr(const VkDisplayModePropertiesKHR* pStruct, const char* prefix); 76 char* vk_print_vkdisplayplanecapabilitieskhr(const VkDisplayPlaneCapabilitiesKHR* pStruct, const char* prefix); 77 char* vk_print_vkdisplayplanepropertieskhr(const VkDisplayPlanePropertiesKHR* pStruct, const char* prefix); 78 char* vk_print_vkdisplaypresentinfokhr(const VkDisplayPresentInfoKHR* pStruct, const char* prefix); 79 char* vk_print_vkdisplaypropertieskhr(const VkDisplayPropertiesKHR* pStruct, const char* prefix); 80 char* vk_print_vkdisplaysurfacecreateinfokhr(const VkDisplaySurfaceCreateInfoKHR* pStruct, const char* prefix); 81 char* vk_print_vkdrawindexedindirectcommand(const VkDrawIndexedIndirectCommand* pStruct, const char* prefix); 82 char* vk_print_vkdrawindirectcommand(const VkDrawIndirectCommand* pStruct, const char* prefix); 83 char* vk_print_vkeventcreateinfo(const VkEventCreateInfo* pStruct, const char* prefix); 84 char* vk_print_vkextensionproperties(const VkExtensionProperties* pStruct, const char* prefix); 85 char* vk_print_vkextent2d(const VkExtent2D* pStruct, const char* prefix); 86 char* vk_print_vkextent3d(const VkExtent3D* pStruct, const char* prefix); 87 char* vk_print_vkfencecreateinfo(const VkFenceCreateInfo* pStruct, const char* prefix); 88 char* vk_print_vkformatproperties(const VkFormatProperties* pStruct, const char* prefix); 89 char* vk_print_vkframebuffercreateinfo(const VkFramebufferCreateInfo* pStruct, const char* prefix); 90 char* vk_print_vkgraphicspipelinecreateinfo(const VkGraphicsPipelineCreateInfo* pStruct, const char* prefix); 91 char* vk_print_vkimageblit(const VkImageBlit* pStruct, const char* prefix); 92 char* vk_print_vkimagecopy(const VkImageCopy* pStruct, const char* prefix); 93 char* vk_print_vkimagecreateinfo(const VkImageCreateInfo* pStruct, const char* prefix); 94 char* vk_print_vkimageformatproperties(const VkImageFormatProperties* pStruct, const char* prefix); 95 char* vk_print_vkimagememorybarrier(const VkImageMemoryBarrier* pStruct, const char* prefix); 96 char* vk_print_vkimageresolve(const VkImageResolve* pStruct, const char* prefix); 97 char* vk_print_vkimagesubresource(const VkImageSubresource* pStruct, const char* prefix); 98 char* vk_print_vkimagesubresourcelayers(const VkImageSubresourceLayers* pStruct, const char* prefix); 99 char* vk_print_vkimagesubresourcerange(const VkImageSubresourceRange* pStruct, const char* prefix); 100 char* vk_print_vkimageviewcreateinfo(const VkImageViewCreateInfo* pStruct, const char* prefix); 101 char* vk_print_vkinstancecreateinfo(const VkInstanceCreateInfo* pStruct, const char* prefix); 102 char* vk_print_vklayerproperties(const VkLayerProperties* pStruct, const char* prefix); 103 char* vk_print_vkmappedmemoryrange(const VkMappedMemoryRange* pStruct, const char* prefix); 104 char* vk_print_vkmemoryallocateinfo(const VkMemoryAllocateInfo* pStruct, const char* prefix); 105 char* vk_print_vkmemorybarrier(const VkMemoryBarrier* pStruct, const char* prefix); 106 char* vk_print_vkmemoryheap(const VkMemoryHeap* pStruct, const char* prefix); 107 char* vk_print_vkmemoryrequirements(const VkMemoryRequirements* pStruct, const char* prefix); 108 char* vk_print_vkmemorytype(const VkMemoryType* pStruct, const char* prefix); 109 char* vk_print_vkmirsurfacecreateinfokhr(const VkMirSurfaceCreateInfoKHR* pStruct, const char* prefix); 110 char* vk_print_vkoffset2d(const VkOffset2D* pStruct, const char* prefix); 111 char* vk_print_vkoffset3d(const VkOffset3D* pStruct, const char* prefix); 112 char* vk_print_vkphysicaldevicefeatures(const VkPhysicalDeviceFeatures* pStruct, const char* prefix); 113 char* vk_print_vkphysicaldevicelimits(const VkPhysicalDeviceLimits* pStruct, const char* prefix); 114 char* vk_print_vkphysicaldevicememoryproperties(const VkPhysicalDeviceMemoryProperties* pStruct, const char* prefix); 115 char* vk_print_vkphysicaldeviceproperties(const VkPhysicalDeviceProperties* pStruct, const char* prefix); 116 char* vk_print_vkphysicaldevicesparseproperties(const VkPhysicalDeviceSparseProperties* pStruct, const char* prefix); 117 char* vk_print_vkpipelinecachecreateinfo(const VkPipelineCacheCreateInfo* pStruct, const char* prefix); 118 char* vk_print_vkpipelinecolorblendattachmentstate(const VkPipelineColorBlendAttachmentState* pStruct, const char* prefix); 119 char* vk_print_vkpipelinecolorblendstatecreateinfo(const VkPipelineColorBlendStateCreateInfo* pStruct, const char* prefix); 120 char* vk_print_vkpipelinedepthstencilstatecreateinfo(const VkPipelineDepthStencilStateCreateInfo* pStruct, const char* prefix); 121 char* vk_print_vkpipelinedynamicstatecreateinfo(const VkPipelineDynamicStateCreateInfo* pStruct, const char* prefix); 122 char* vk_print_vkpipelineinputassemblystatecreateinfo(const VkPipelineInputAssemblyStateCreateInfo* pStruct, const char* prefix); 123 char* vk_print_vkpipelinelayoutcreateinfo(const VkPipelineLayoutCreateInfo* pStruct, const char* prefix); 124 char* vk_print_vkpipelinemultisamplestatecreateinfo(const VkPipelineMultisampleStateCreateInfo* pStruct, const char* prefix); 125 char* vk_print_vkpipelinerasterizationstatecreateinfo(const VkPipelineRasterizationStateCreateInfo* pStruct, const char* prefix); 126 char* vk_print_vkpipelinerasterizationstaterasterizationorderamd(const VkPipelineRasterizationStateRasterizationOrderAMD* pStruct, const char* prefix); 127 char* vk_print_vkpipelineshaderstagecreateinfo(const VkPipelineShaderStageCreateInfo* pStruct, const char* prefix); 128 char* vk_print_vkpipelinetessellationstatecreateinfo(const VkPipelineTessellationStateCreateInfo* pStruct, const char* prefix); 129 char* vk_print_vkpipelinevertexinputstatecreateinfo(const VkPipelineVertexInputStateCreateInfo* pStruct, const char* prefix); 130 char* vk_print_vkpipelineviewportstatecreateinfo(const VkPipelineViewportStateCreateInfo* pStruct, const char* prefix); 131 char* vk_print_vkpresentinfokhr(const VkPresentInfoKHR* pStruct, const char* prefix); 132 char* vk_print_vkpushconstantrange(const VkPushConstantRange* pStruct, const char* prefix); 133 char* vk_print_vkquerypoolcreateinfo(const VkQueryPoolCreateInfo* pStruct, const char* prefix); 134 char* vk_print_vkqueuefamilyproperties(const VkQueueFamilyProperties* pStruct, const char* prefix); 135 char* vk_print_vkrect2d(const VkRect2D* pStruct, const char* prefix); 136 char* vk_print_vkrenderpassbegininfo(const VkRenderPassBeginInfo* pStruct, const char* prefix); 137 char* vk_print_vkrenderpasscreateinfo(const VkRenderPassCreateInfo* pStruct, const char* prefix); 138 char* vk_print_vksamplercreateinfo(const VkSamplerCreateInfo* pStruct, const char* prefix); 139 char* vk_print_vksemaphorecreateinfo(const VkSemaphoreCreateInfo* pStruct, const char* prefix); 140 char* vk_print_vkshadermodulecreateinfo(const VkShaderModuleCreateInfo* pStruct, const char* prefix); 141 char* vk_print_vksparsebuffermemorybindinfo(const VkSparseBufferMemoryBindInfo* pStruct, const char* prefix); 142 char* vk_print_vksparseimageformatproperties(const VkSparseImageFormatProperties* pStruct, const char* prefix); 143 char* vk_print_vksparseimagememorybind(const VkSparseImageMemoryBind* pStruct, const char* prefix); 144 char* vk_print_vksparseimagememorybindinfo(const VkSparseImageMemoryBindInfo* pStruct, const char* prefix); 145 char* vk_print_vksparseimagememoryrequirements(const VkSparseImageMemoryRequirements* pStruct, const char* prefix); 146 char* vk_print_vksparseimageopaquememorybindinfo(const VkSparseImageOpaqueMemoryBindInfo* pStruct, const char* prefix); 147 char* vk_print_vksparsememorybind(const VkSparseMemoryBind* pStruct, const char* prefix); 148 char* vk_print_vkspecializationinfo(const VkSpecializationInfo* pStruct, const char* prefix); 149 char* vk_print_vkspecializationmapentry(const VkSpecializationMapEntry* pStruct, const char* prefix); 150 char* vk_print_vkstencilopstate(const VkStencilOpState* pStruct, const char* prefix); 151 char* vk_print_vksubmitinfo(const VkSubmitInfo* pStruct, const char* prefix); 152 char* vk_print_vksubpassdependency(const VkSubpassDependency* pStruct, const char* prefix); 153 char* vk_print_vksubpassdescription(const VkSubpassDescription* pStruct, const char* prefix); 154 char* vk_print_vksubresourcelayout(const VkSubresourceLayout* pStruct, const char* prefix); 155 char* vk_print_vksurfacecapabilitieskhr(const VkSurfaceCapabilitiesKHR* pStruct, const char* prefix); 156 char* vk_print_vksurfaceformatkhr(const VkSurfaceFormatKHR* pStruct, const char* prefix); 157 char* vk_print_vkswapchaincreateinfokhr(const VkSwapchainCreateInfoKHR* pStruct, const char* prefix); 158 char* vk_print_vkvertexinputattributedescription(const VkVertexInputAttributeDescription* pStruct, const char* prefix); 159 char* vk_print_vkvertexinputbindingdescription(const VkVertexInputBindingDescription* pStruct, const char* prefix); 160 char* vk_print_vkviewport(const VkViewport* pStruct, const char* prefix); 161 char* vk_print_vkwaylandsurfacecreateinfokhr(const VkWaylandSurfaceCreateInfoKHR* pStruct, const char* prefix); 162 char* vk_print_vkwin32surfacecreateinfokhr(const VkWin32SurfaceCreateInfoKHR* pStruct, const char* prefix); 163 char* vk_print_vkwritedescriptorset(const VkWriteDescriptorSet* pStruct, const char* prefix); 164 char* vk_print_vkxcbsurfacecreateinfokhr(const VkXcbSurfaceCreateInfoKHR* pStruct, const char* prefix); 165 char* vk_print_vkxlibsurfacecreateinfokhr(const VkXlibSurfaceCreateInfoKHR* pStruct, const char* prefix); 166 167 #if defined(_WIN32) 168 // Microsoft did not implement C99 in Visual Studio; but started adding it with 169 // VS2013. However, VS2013 still did not have snprintf(). The following is a 170 // work-around. 171 #define snprintf _snprintf 172 #endif // _WIN32 173 174 char* vk_print_vkallocationcallbacks(const VkAllocationCallbacks* pStruct, const char* prefix) 175 { 176 char* str; 177 size_t len; 178 len = sizeof(char)*1024; 179 str = (char*)malloc(len); 180 snprintf(str, len, "%spUserData = 0x%p\n%spfnAllocation = 0x%p\n%spfnReallocation = 0x%p\n%spfnFree = 0x%p\n%spfnInternalAllocation = 0x%p\n%spfnInternalFree = 0x%p\n", prefix, (pStruct->pUserData), prefix, (void*)(pStruct->pfnAllocation), prefix, (void*)(pStruct->pfnReallocation), prefix, (void*)(pStruct->pfnFree), prefix, (void*)(pStruct->pfnInternalAllocation), prefix, (void*)(pStruct->pfnInternalFree)); 181 return str; 182 } 183 char* vk_print_vkandroidsurfacecreateinfokhr(const VkAndroidSurfaceCreateInfoKHR* pStruct, const char* prefix) 184 { 185 char* str; 186 size_t len; 187 char* tmpStr; 188 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 189 strcpy(extra_indent, " "); 190 strncat(extra_indent, prefix, strlen(prefix)); 191 char* stp_strs[1]; 192 if (pStruct->pNext) { 193 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 194 len = 256+strlen(tmpStr); 195 stp_strs[0] = (char*)malloc(len); 196 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 197 free(tmpStr); 198 } 199 else 200 stp_strs[0] = ""; 201 len = strlen(stp_strs[0]) + sizeof(char)*1024; 202 str = (char*)malloc(len); 203 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%swindow = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, (pStruct->window)); 204 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 205 if (0 < strlen(stp_strs[stp_index])) { 206 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 207 free(stp_strs[stp_index]); 208 } 209 } 210 free(extra_indent); 211 return str; 212 } 213 char* vk_print_vkapplicationinfo(const VkApplicationInfo* pStruct, const char* prefix) 214 { 215 char* str; 216 size_t len; 217 char* tmpStr; 218 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 219 strcpy(extra_indent, " "); 220 strncat(extra_indent, prefix, strlen(prefix)); 221 char* stp_strs[1]; 222 if (pStruct->pNext) { 223 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 224 len = 256+strlen(tmpStr); 225 stp_strs[0] = (char*)malloc(len); 226 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 227 free(tmpStr); 228 } 229 else 230 stp_strs[0] = ""; 231 len = strlen(stp_strs[0]) + sizeof(char)*1024; 232 str = (char*)malloc(len); 233 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%spApplicationName = 0x%p\n%sapplicationVersion = %u\n%spEngineName = 0x%p\n%sengineVersion = %u\n%sapiVersion = %u\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->pApplicationName), prefix, (pStruct->applicationVersion), prefix, (pStruct->pEngineName), prefix, (pStruct->engineVersion), prefix, (pStruct->apiVersion)); 234 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 235 if (0 < strlen(stp_strs[stp_index])) { 236 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 237 free(stp_strs[stp_index]); 238 } 239 } 240 free(extra_indent); 241 return str; 242 } 243 char* vk_print_vkattachmentdescription(const VkAttachmentDescription* pStruct, const char* prefix) 244 { 245 char* str; 246 size_t len; 247 len = sizeof(char)*1024; 248 str = (char*)malloc(len); 249 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)); 250 return str; 251 } 252 char* vk_print_vkattachmentreference(const VkAttachmentReference* pStruct, const char* prefix) 253 { 254 char* str; 255 size_t len; 256 len = sizeof(char)*1024; 257 str = (char*)malloc(len); 258 snprintf(str, len, "%sattachment = %u\n%slayout = %s\n", prefix, (pStruct->attachment), prefix, string_VkImageLayout(pStruct->layout)); 259 return str; 260 } 261 char* vk_print_vkbindsparseinfo(const VkBindSparseInfo* pStruct, const char* prefix) 262 { 263 char* str; 264 size_t len; 265 char* tmpStr; 266 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 267 strcpy(extra_indent, " "); 268 strncat(extra_indent, prefix, strlen(prefix)); 269 char* stp_strs[4]; 270 if (pStruct->pNext) { 271 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 272 len = 256+strlen(tmpStr); 273 stp_strs[0] = (char*)malloc(len); 274 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 275 free(tmpStr); 276 } 277 else 278 stp_strs[0] = ""; 279 if (pStruct->pBufferBinds) { 280 tmpStr = vk_print_vksparsebuffermemorybindinfo(pStruct->pBufferBinds, extra_indent); 281 len = 256+strlen(tmpStr)+strlen(prefix); 282 stp_strs[1] = (char*)malloc(len); 283 snprintf(stp_strs[1], len, " %spBufferBinds (0x%p)\n%s", prefix, (void*)pStruct->pBufferBinds, tmpStr); 284 } 285 else 286 stp_strs[1] = ""; 287 if (pStruct->pImageOpaqueBinds) { 288 tmpStr = vk_print_vksparseimageopaquememorybindinfo(pStruct->pImageOpaqueBinds, extra_indent); 289 len = 256+strlen(tmpStr)+strlen(prefix); 290 stp_strs[2] = (char*)malloc(len); 291 snprintf(stp_strs[2], len, " %spImageOpaqueBinds (0x%p)\n%s", prefix, (void*)pStruct->pImageOpaqueBinds, tmpStr); 292 } 293 else 294 stp_strs[2] = ""; 295 if (pStruct->pImageBinds) { 296 tmpStr = vk_print_vksparseimagememorybindinfo(pStruct->pImageBinds, extra_indent); 297 len = 256+strlen(tmpStr)+strlen(prefix); 298 stp_strs[3] = (char*)malloc(len); 299 snprintf(stp_strs[3], len, " %spImageBinds (0x%p)\n%s", prefix, (void*)pStruct->pImageBinds, tmpStr); 300 } 301 else 302 stp_strs[3] = ""; 303 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + strlen(stp_strs[3]) + sizeof(char)*1024; 304 str = (char*)malloc(len); 305 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%swaitSemaphoreCount = %u\n%spWaitSemaphores = 0x%p\n%sbufferBindCount = %u\n%spBufferBinds = 0x%p\n%simageOpaqueBindCount = %u\n%spImageOpaqueBinds = 0x%p\n%simageBindCount = %u\n%spImageBinds = 0x%p\n%ssignalSemaphoreCount = %u\n%spSignalSemaphores = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->waitSemaphoreCount), prefix, (void*)(pStruct->pWaitSemaphores), prefix, (pStruct->bufferBindCount), prefix, (void*)(pStruct->pBufferBinds), prefix, (pStruct->imageOpaqueBindCount), prefix, (void*)(pStruct->pImageOpaqueBinds), prefix, (pStruct->imageBindCount), prefix, (void*)(pStruct->pImageBinds), prefix, (pStruct->signalSemaphoreCount), prefix, (void*)(pStruct->pSignalSemaphores)); 306 for (int32_t stp_index = 3; stp_index >= 0; stp_index--) { 307 if (0 < strlen(stp_strs[stp_index])) { 308 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 309 free(stp_strs[stp_index]); 310 } 311 } 312 free(extra_indent); 313 return str; 314 } 315 char* vk_print_vkbuffercopy(const VkBufferCopy* pStruct, const char* prefix) 316 { 317 char* str; 318 size_t len; 319 len = sizeof(char)*1024; 320 str = (char*)malloc(len); 321 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)); 322 return str; 323 } 324 char* vk_print_vkbuffercreateinfo(const VkBufferCreateInfo* pStruct, const char* prefix) 325 { 326 char* str; 327 size_t len; 328 char* tmpStr; 329 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 330 strcpy(extra_indent, " "); 331 strncat(extra_indent, prefix, strlen(prefix)); 332 char* stp_strs[1]; 333 if (pStruct->pNext) { 334 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 335 len = 256+strlen(tmpStr); 336 stp_strs[0] = (char*)malloc(len); 337 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 338 free(tmpStr); 339 } 340 else 341 stp_strs[0] = ""; 342 len = strlen(stp_strs[0]) + sizeof(char)*1024; 343 str = (char*)malloc(len); 344 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%ssize = " PRINTF_SIZE_T_SPECIFIER "\n%susage = %u\n%ssharingMode = %s\n%squeueFamilyIndexCount = %u\n%spQueueFamilyIndices = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, (pStruct->size), prefix, (pStruct->usage), prefix, string_VkSharingMode(pStruct->sharingMode), prefix, (pStruct->queueFamilyIndexCount), prefix, (void*)(pStruct->pQueueFamilyIndices)); 345 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 346 if (0 < strlen(stp_strs[stp_index])) { 347 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 348 free(stp_strs[stp_index]); 349 } 350 } 351 free(extra_indent); 352 return str; 353 } 354 char* vk_print_vkbufferimagecopy(const VkBufferImageCopy* pStruct, const char* prefix) 355 { 356 char* str; 357 size_t len; 358 char* tmpStr; 359 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 360 strcpy(extra_indent, " "); 361 strncat(extra_indent, prefix, strlen(prefix)); 362 char* stp_strs[3]; 363 tmpStr = vk_print_vkimagesubresourcelayers(&pStruct->imageSubresource, extra_indent); 364 len = 256+strlen(tmpStr); 365 stp_strs[0] = (char*)malloc(len); 366 snprintf(stp_strs[0], len, " %simageSubresource (0x%p)\n%s", prefix, (void*)&pStruct->imageSubresource, tmpStr); 367 tmpStr = vk_print_vkoffset3d(&pStruct->imageOffset, extra_indent); 368 len = 256+strlen(tmpStr); 369 stp_strs[1] = (char*)malloc(len); 370 snprintf(stp_strs[1], len, " %simageOffset (0x%p)\n%s", prefix, (void*)&pStruct->imageOffset, tmpStr); 371 tmpStr = vk_print_vkextent3d(&pStruct->imageExtent, extra_indent); 372 len = 256+strlen(tmpStr); 373 stp_strs[2] = (char*)malloc(len); 374 snprintf(stp_strs[2], len, " %simageExtent (0x%p)\n%s", prefix, (void*)&pStruct->imageExtent, tmpStr); 375 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + sizeof(char)*1024; 376 str = (char*)malloc(len); 377 snprintf(str, len, "%sbufferOffset = " PRINTF_SIZE_T_SPECIFIER "\n%sbufferRowLength = %u\n%sbufferImageHeight = %u\n%simageSubresource = 0x%p\n%simageOffset = 0x%p\n%simageExtent = 0x%p\n", prefix, (pStruct->bufferOffset), prefix, (pStruct->bufferRowLength), prefix, (pStruct->bufferImageHeight), prefix, (void*)&(pStruct->imageSubresource), prefix, (void*)&(pStruct->imageOffset), prefix, (void*)&(pStruct->imageExtent)); 378 for (int32_t stp_index = 2; stp_index >= 0; stp_index--) { 379 if (0 < strlen(stp_strs[stp_index])) { 380 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 381 free(stp_strs[stp_index]); 382 } 383 } 384 free(extra_indent); 385 return str; 386 } 387 char* vk_print_vkbuffermemorybarrier(const VkBufferMemoryBarrier* pStruct, const char* prefix) 388 { 389 char* str; 390 size_t len; 391 char* tmpStr; 392 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 393 strcpy(extra_indent, " "); 394 strncat(extra_indent, prefix, strlen(prefix)); 395 char* stp_strs[1]; 396 if (pStruct->pNext) { 397 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 398 len = 256+strlen(tmpStr); 399 stp_strs[0] = (char*)malloc(len); 400 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 401 free(tmpStr); 402 } 403 else 404 stp_strs[0] = ""; 405 len = strlen(stp_strs[0]) + sizeof(char)*1024; 406 str = (char*)malloc(len); 407 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%ssrcAccessMask = %u\n%sdstAccessMask = %u\n%ssrcQueueFamilyIndex = %u\n%sdstQueueFamilyIndex = %u\n%sbuffer = 0x%p\n%soffset = " PRINTF_SIZE_T_SPECIFIER "\n%ssize = " PRINTF_SIZE_T_SPECIFIER "\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->srcAccessMask), prefix, (pStruct->dstAccessMask), prefix, (pStruct->srcQueueFamilyIndex), prefix, (pStruct->dstQueueFamilyIndex), prefix, (void*)(pStruct->buffer), prefix, (pStruct->offset), prefix, (pStruct->size)); 408 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 409 if (0 < strlen(stp_strs[stp_index])) { 410 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 411 free(stp_strs[stp_index]); 412 } 413 } 414 free(extra_indent); 415 return str; 416 } 417 char* vk_print_vkbufferviewcreateinfo(const VkBufferViewCreateInfo* pStruct, const char* prefix) 418 { 419 char* str; 420 size_t len; 421 char* tmpStr; 422 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 423 strcpy(extra_indent, " "); 424 strncat(extra_indent, prefix, strlen(prefix)); 425 char* stp_strs[1]; 426 if (pStruct->pNext) { 427 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 428 len = 256+strlen(tmpStr); 429 stp_strs[0] = (char*)malloc(len); 430 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 431 free(tmpStr); 432 } 433 else 434 stp_strs[0] = ""; 435 len = strlen(stp_strs[0]) + sizeof(char)*1024; 436 str = (char*)malloc(len); 437 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%sbuffer = 0x%p\n%sformat = %s\n%soffset = " PRINTF_SIZE_T_SPECIFIER "\n%srange = " PRINTF_SIZE_T_SPECIFIER "\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, (void*)(pStruct->buffer), prefix, string_VkFormat(pStruct->format), prefix, (pStruct->offset), prefix, (pStruct->range)); 438 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 439 if (0 < strlen(stp_strs[stp_index])) { 440 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 441 free(stp_strs[stp_index]); 442 } 443 } 444 free(extra_indent); 445 return str; 446 } 447 char* vk_print_vkclearattachment(const VkClearAttachment* pStruct, const char* prefix) 448 { 449 char* str; 450 size_t len; 451 char* tmpStr; 452 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 453 strcpy(extra_indent, " "); 454 strncat(extra_indent, prefix, strlen(prefix)); 455 char* stp_strs[1]; 456 tmpStr = vk_print_vkclearvalue(&pStruct->clearValue, extra_indent); 457 len = 256+strlen(tmpStr); 458 stp_strs[0] = (char*)malloc(len); 459 snprintf(stp_strs[0], len, " %sclearValue (0x%p)\n%s", prefix, (void*)&pStruct->clearValue, tmpStr); 460 len = strlen(stp_strs[0]) + sizeof(char)*1024; 461 str = (char*)malloc(len); 462 snprintf(str, len, "%saspectMask = %u\n%scolorAttachment = %u\n%sclearValue = 0x%p\n", prefix, (pStruct->aspectMask), prefix, (pStruct->colorAttachment), prefix, (void*)&(pStruct->clearValue)); 463 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 464 if (0 < strlen(stp_strs[stp_index])) { 465 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 466 free(stp_strs[stp_index]); 467 } 468 } 469 free(extra_indent); 470 return str; 471 } 472 char* vk_print_vkclearcolorvalue(const VkClearColorValue* pStruct, const char* prefix) 473 { 474 char* str; 475 size_t len; 476 len = sizeof(char)*1024; 477 str = (char*)malloc(len); 478 snprintf(str, len, "%sfloat32 = 0x%p\n%sint32 = 0x%p\n%suint32 = 0x%p\n", prefix, (void*)(pStruct->float32), prefix, (void*)(pStruct->int32), prefix, (void*)(pStruct->uint32)); 479 return str; 480 } 481 char* vk_print_vkcleardepthstencilvalue(const VkClearDepthStencilValue* pStruct, const char* prefix) 482 { 483 char* str; 484 size_t len; 485 len = sizeof(char)*1024; 486 str = (char*)malloc(len); 487 snprintf(str, len, "%sdepth = %f\n%sstencil = %u\n", prefix, (pStruct->depth), prefix, (pStruct->stencil)); 488 return str; 489 } 490 char* vk_print_vkclearrect(const VkClearRect* pStruct, const char* prefix) 491 { 492 char* str; 493 size_t len; 494 char* tmpStr; 495 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 496 strcpy(extra_indent, " "); 497 strncat(extra_indent, prefix, strlen(prefix)); 498 char* stp_strs[1]; 499 tmpStr = vk_print_vkrect2d(&pStruct->rect, extra_indent); 500 len = 256+strlen(tmpStr); 501 stp_strs[0] = (char*)malloc(len); 502 snprintf(stp_strs[0], len, " %srect (0x%p)\n%s", prefix, (void*)&pStruct->rect, tmpStr); 503 len = strlen(stp_strs[0]) + sizeof(char)*1024; 504 str = (char*)malloc(len); 505 snprintf(str, len, "%srect = 0x%p\n%sbaseArrayLayer = %u\n%slayerCount = %u\n", prefix, (void*)&(pStruct->rect), prefix, (pStruct->baseArrayLayer), prefix, (pStruct->layerCount)); 506 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 507 if (0 < strlen(stp_strs[stp_index])) { 508 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 509 free(stp_strs[stp_index]); 510 } 511 } 512 free(extra_indent); 513 return str; 514 } 515 char* vk_print_vkclearvalue(const VkClearValue* pStruct, const char* prefix) 516 { 517 char* str; 518 size_t len; 519 char* tmpStr; 520 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 521 strcpy(extra_indent, " "); 522 strncat(extra_indent, prefix, strlen(prefix)); 523 char* stp_strs[2]; 524 tmpStr = vk_print_vkclearcolorvalue(&pStruct->color, extra_indent); 525 len = 256+strlen(tmpStr); 526 stp_strs[0] = (char*)malloc(len); 527 snprintf(stp_strs[0], len, " %scolor (0x%p)\n%s", prefix, (void*)&pStruct->color, tmpStr); 528 tmpStr = vk_print_vkcleardepthstencilvalue(&pStruct->depthStencil, extra_indent); 529 len = 256+strlen(tmpStr); 530 stp_strs[1] = (char*)malloc(len); 531 snprintf(stp_strs[1], len, " %sdepthStencil (0x%p)\n%s", prefix, (void*)&pStruct->depthStencil, tmpStr); 532 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 533 str = (char*)malloc(len); 534 snprintf(str, len, "%scolor = 0x%p\n%sdepthStencil = 0x%p\n", prefix, (void*)&(pStruct->color), prefix, (void*)&(pStruct->depthStencil)); 535 for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 536 if (0 < strlen(stp_strs[stp_index])) { 537 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 538 free(stp_strs[stp_index]); 539 } 540 } 541 free(extra_indent); 542 return str; 543 } 544 char* vk_print_vkcommandbufferallocateinfo(const VkCommandBufferAllocateInfo* pStruct, const char* prefix) 545 { 546 char* str; 547 size_t len; 548 char* tmpStr; 549 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 550 strcpy(extra_indent, " "); 551 strncat(extra_indent, prefix, strlen(prefix)); 552 char* stp_strs[1]; 553 if (pStruct->pNext) { 554 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 555 len = 256+strlen(tmpStr); 556 stp_strs[0] = (char*)malloc(len); 557 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 558 free(tmpStr); 559 } 560 else 561 stp_strs[0] = ""; 562 len = strlen(stp_strs[0]) + sizeof(char)*1024; 563 str = (char*)malloc(len); 564 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%scommandPool = 0x%p\n%slevel = %s\n%scommandBufferCount = %u\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (void*)(pStruct->commandPool), prefix, string_VkCommandBufferLevel(pStruct->level), prefix, (pStruct->commandBufferCount)); 565 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 566 if (0 < strlen(stp_strs[stp_index])) { 567 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 568 free(stp_strs[stp_index]); 569 } 570 } 571 free(extra_indent); 572 return str; 573 } 574 char* vk_print_vkcommandbufferbegininfo(const VkCommandBufferBeginInfo* pStruct, const char* prefix) 575 { 576 char* str; 577 size_t len; 578 char* tmpStr; 579 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 580 strcpy(extra_indent, " "); 581 strncat(extra_indent, prefix, strlen(prefix)); 582 char* stp_strs[2]; 583 if (pStruct->pNext) { 584 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 585 len = 256+strlen(tmpStr); 586 stp_strs[0] = (char*)malloc(len); 587 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 588 free(tmpStr); 589 } 590 else 591 stp_strs[0] = ""; 592 if (pStruct->pInheritanceInfo) { 593 tmpStr = vk_print_vkcommandbufferinheritanceinfo(pStruct->pInheritanceInfo, extra_indent); 594 len = 256+strlen(tmpStr)+strlen(prefix); 595 stp_strs[1] = (char*)malloc(len); 596 snprintf(stp_strs[1], len, " %spInheritanceInfo (0x%p)\n%s", prefix, (void*)pStruct->pInheritanceInfo, tmpStr); 597 } 598 else 599 stp_strs[1] = ""; 600 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 601 str = (char*)malloc(len); 602 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%spInheritanceInfo = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, (void*)(pStruct->pInheritanceInfo)); 603 for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 604 if (0 < strlen(stp_strs[stp_index])) { 605 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 606 free(stp_strs[stp_index]); 607 } 608 } 609 free(extra_indent); 610 return str; 611 } 612 char* vk_print_vkcommandbufferinheritanceinfo(const VkCommandBufferInheritanceInfo* pStruct, const char* prefix) 613 { 614 char* str; 615 size_t len; 616 char* tmpStr; 617 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 618 strcpy(extra_indent, " "); 619 strncat(extra_indent, prefix, strlen(prefix)); 620 char* stp_strs[1]; 621 if (pStruct->pNext) { 622 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 623 len = 256+strlen(tmpStr); 624 stp_strs[0] = (char*)malloc(len); 625 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 626 free(tmpStr); 627 } 628 else 629 stp_strs[0] = ""; 630 len = strlen(stp_strs[0]) + sizeof(char)*1024; 631 str = (char*)malloc(len); 632 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%srenderPass = 0x%p\n%ssubpass = %u\n%sframebuffer = 0x%p\n%socclusionQueryEnable = %s\n%squeryFlags = %u\n%spipelineStatistics = %u\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (void*)(pStruct->renderPass), prefix, (pStruct->subpass), prefix, (void*)(pStruct->framebuffer), prefix, (pStruct->occlusionQueryEnable) ? "TRUE" : "FALSE", prefix, (pStruct->queryFlags), prefix, (pStruct->pipelineStatistics)); 633 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 634 if (0 < strlen(stp_strs[stp_index])) { 635 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 636 free(stp_strs[stp_index]); 637 } 638 } 639 free(extra_indent); 640 return str; 641 } 642 char* vk_print_vkcommandpoolcreateinfo(const VkCommandPoolCreateInfo* pStruct, const char* prefix) 643 { 644 char* str; 645 size_t len; 646 char* tmpStr; 647 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 648 strcpy(extra_indent, " "); 649 strncat(extra_indent, prefix, strlen(prefix)); 650 char* stp_strs[1]; 651 if (pStruct->pNext) { 652 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 653 len = 256+strlen(tmpStr); 654 stp_strs[0] = (char*)malloc(len); 655 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 656 free(tmpStr); 657 } 658 else 659 stp_strs[0] = ""; 660 len = strlen(stp_strs[0]) + sizeof(char)*1024; 661 str = (char*)malloc(len); 662 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%squeueFamilyIndex = %u\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, (pStruct->queueFamilyIndex)); 663 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 664 if (0 < strlen(stp_strs[stp_index])) { 665 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 666 free(stp_strs[stp_index]); 667 } 668 } 669 free(extra_indent); 670 return str; 671 } 672 char* vk_print_vkcomponentmapping(const VkComponentMapping* pStruct, const char* prefix) 673 { 674 char* str; 675 size_t len; 676 len = sizeof(char)*1024; 677 str = (char*)malloc(len); 678 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)); 679 return str; 680 } 681 char* vk_print_vkcomputepipelinecreateinfo(const VkComputePipelineCreateInfo* pStruct, const char* prefix) 682 { 683 char* str; 684 size_t len; 685 char* tmpStr; 686 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 687 strcpy(extra_indent, " "); 688 strncat(extra_indent, prefix, strlen(prefix)); 689 char* stp_strs[2]; 690 if (pStruct->pNext) { 691 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 692 len = 256+strlen(tmpStr); 693 stp_strs[0] = (char*)malloc(len); 694 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 695 free(tmpStr); 696 } 697 else 698 stp_strs[0] = ""; 699 tmpStr = vk_print_vkpipelineshaderstagecreateinfo(&pStruct->stage, extra_indent); 700 len = 256+strlen(tmpStr); 701 stp_strs[1] = (char*)malloc(len); 702 snprintf(stp_strs[1], len, " %sstage (0x%p)\n%s", prefix, (void*)&pStruct->stage, tmpStr); 703 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 704 str = (char*)malloc(len); 705 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%sstage = 0x%p\n%slayout = 0x%p\n%sbasePipelineHandle = 0x%p\n%sbasePipelineIndex = %i\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, (void*)&(pStruct->stage), prefix, (void*)(pStruct->layout), prefix, (void*)(pStruct->basePipelineHandle), prefix, (pStruct->basePipelineIndex)); 706 for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 707 if (0 < strlen(stp_strs[stp_index])) { 708 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 709 free(stp_strs[stp_index]); 710 } 711 } 712 free(extra_indent); 713 return str; 714 } 715 char* vk_print_vkcopydescriptorset(const VkCopyDescriptorSet* pStruct, const char* prefix) 716 { 717 char* str; 718 size_t len; 719 char* tmpStr; 720 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 721 strcpy(extra_indent, " "); 722 strncat(extra_indent, prefix, strlen(prefix)); 723 char* stp_strs[1]; 724 if (pStruct->pNext) { 725 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 726 len = 256+strlen(tmpStr); 727 stp_strs[0] = (char*)malloc(len); 728 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 729 free(tmpStr); 730 } 731 else 732 stp_strs[0] = ""; 733 len = strlen(stp_strs[0]) + sizeof(char)*1024; 734 str = (char*)malloc(len); 735 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%ssrcSet = 0x%p\n%ssrcBinding = %u\n%ssrcArrayElement = %u\n%sdstSet = 0x%p\n%sdstBinding = %u\n%sdstArrayElement = %u\n%sdescriptorCount = %u\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (void*)(pStruct->srcSet), prefix, (pStruct->srcBinding), prefix, (pStruct->srcArrayElement), prefix, (void*)(pStruct->dstSet), prefix, (pStruct->dstBinding), prefix, (pStruct->dstArrayElement), prefix, (pStruct->descriptorCount)); 736 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 737 if (0 < strlen(stp_strs[stp_index])) { 738 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 739 free(stp_strs[stp_index]); 740 } 741 } 742 free(extra_indent); 743 return str; 744 } 745 char* vk_print_vkdebugmarkermarkerinfoext(const VkDebugMarkerMarkerInfoEXT* pStruct, const char* prefix) 746 { 747 char* str; 748 size_t len; 749 char* tmpStr; 750 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 751 strcpy(extra_indent, " "); 752 strncat(extra_indent, prefix, strlen(prefix)); 753 char* stp_strs[1]; 754 if (pStruct->pNext) { 755 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 756 len = 256+strlen(tmpStr); 757 stp_strs[0] = (char*)malloc(len); 758 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 759 free(tmpStr); 760 } 761 else 762 stp_strs[0] = ""; 763 len = strlen(stp_strs[0]) + sizeof(char)*1024; 764 str = (char*)malloc(len); 765 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%spMarkerName = 0x%p\n%scolor = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->pMarkerName), prefix, (void*)(pStruct->color)); 766 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 767 if (0 < strlen(stp_strs[stp_index])) { 768 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 769 free(stp_strs[stp_index]); 770 } 771 } 772 free(extra_indent); 773 return str; 774 } 775 char* vk_print_vkdebugmarkerobjectnameinfoext(const VkDebugMarkerObjectNameInfoEXT* pStruct, const char* prefix) 776 { 777 char* str; 778 size_t len; 779 char* tmpStr; 780 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 781 strcpy(extra_indent, " "); 782 strncat(extra_indent, prefix, strlen(prefix)); 783 char* stp_strs[1]; 784 if (pStruct->pNext) { 785 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 786 len = 256+strlen(tmpStr); 787 stp_strs[0] = (char*)malloc(len); 788 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 789 free(tmpStr); 790 } 791 else 792 stp_strs[0] = ""; 793 len = strlen(stp_strs[0]) + sizeof(char)*1024; 794 str = (char*)malloc(len); 795 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sobjectType = %s\n%sobject = %" PRId64 "\n%spObjectName = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, string_VkDebugReportObjectTypeEXT(pStruct->objectType), prefix, (pStruct->object), prefix, (pStruct->pObjectName)); 796 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 797 if (0 < strlen(stp_strs[stp_index])) { 798 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 799 free(stp_strs[stp_index]); 800 } 801 } 802 free(extra_indent); 803 return str; 804 } 805 char* vk_print_vkdebugmarkerobjecttaginfoext(const VkDebugMarkerObjectTagInfoEXT* pStruct, const char* prefix) 806 { 807 char* str; 808 size_t len; 809 char* tmpStr; 810 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 811 strcpy(extra_indent, " "); 812 strncat(extra_indent, prefix, strlen(prefix)); 813 char* stp_strs[1]; 814 if (pStruct->pNext) { 815 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 816 len = 256+strlen(tmpStr); 817 stp_strs[0] = (char*)malloc(len); 818 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 819 free(tmpStr); 820 } 821 else 822 stp_strs[0] = ""; 823 len = strlen(stp_strs[0]) + sizeof(char)*1024; 824 str = (char*)malloc(len); 825 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sobjectType = %s\n%sobject = %" PRId64 "\n%stagName = %" PRId64 "\n%stagSize = " PRINTF_SIZE_T_SPECIFIER "\n%spTag = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, string_VkDebugReportObjectTypeEXT(pStruct->objectType), prefix, (pStruct->object), prefix, (pStruct->tagName), prefix, (pStruct->tagSize), prefix, (pStruct->pTag)); 826 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 827 if (0 < strlen(stp_strs[stp_index])) { 828 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 829 free(stp_strs[stp_index]); 830 } 831 } 832 free(extra_indent); 833 return str; 834 } 835 char* vk_print_vkdebugreportcallbackcreateinfoext(const VkDebugReportCallbackCreateInfoEXT* pStruct, const char* prefix) 836 { 837 char* str; 838 size_t len; 839 char* tmpStr; 840 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 841 strcpy(extra_indent, " "); 842 strncat(extra_indent, prefix, strlen(prefix)); 843 char* stp_strs[1]; 844 if (pStruct->pNext) { 845 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 846 len = 256+strlen(tmpStr); 847 stp_strs[0] = (char*)malloc(len); 848 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 849 free(tmpStr); 850 } 851 else 852 stp_strs[0] = ""; 853 len = strlen(stp_strs[0]) + sizeof(char)*1024; 854 str = (char*)malloc(len); 855 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%spfnCallback = 0x%p\n%spUserData = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, (void*)(pStruct->pfnCallback), prefix, (pStruct->pUserData)); 856 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 857 if (0 < strlen(stp_strs[stp_index])) { 858 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 859 free(stp_strs[stp_index]); 860 } 861 } 862 free(extra_indent); 863 return str; 864 } 865 char* vk_print_vkdescriptorbufferinfo(const VkDescriptorBufferInfo* pStruct, const char* prefix) 866 { 867 char* str; 868 size_t len; 869 len = sizeof(char)*1024; 870 str = (char*)malloc(len); 871 snprintf(str, len, "%sbuffer = 0x%p\n%soffset = " PRINTF_SIZE_T_SPECIFIER "\n%srange = " PRINTF_SIZE_T_SPECIFIER "\n", prefix, (void*)(pStruct->buffer), prefix, (pStruct->offset), prefix, (pStruct->range)); 872 return str; 873 } 874 char* vk_print_vkdescriptorimageinfo(const VkDescriptorImageInfo* pStruct, const char* prefix) 875 { 876 char* str; 877 size_t len; 878 len = sizeof(char)*1024; 879 str = (char*)malloc(len); 880 snprintf(str, len, "%ssampler = 0x%p\n%simageView = 0x%p\n%simageLayout = %s\n", prefix, (void*)(pStruct->sampler), prefix, (void*)(pStruct->imageView), prefix, string_VkImageLayout(pStruct->imageLayout)); 881 return str; 882 } 883 char* vk_print_vkdescriptorpoolcreateinfo(const VkDescriptorPoolCreateInfo* pStruct, const char* prefix) 884 { 885 char* str; 886 size_t len; 887 char* tmpStr; 888 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 889 strcpy(extra_indent, " "); 890 strncat(extra_indent, prefix, strlen(prefix)); 891 char* stp_strs[2]; 892 if (pStruct->pNext) { 893 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 894 len = 256+strlen(tmpStr); 895 stp_strs[0] = (char*)malloc(len); 896 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 897 free(tmpStr); 898 } 899 else 900 stp_strs[0] = ""; 901 if (pStruct->pPoolSizes) { 902 tmpStr = vk_print_vkdescriptorpoolsize(pStruct->pPoolSizes, extra_indent); 903 len = 256+strlen(tmpStr)+strlen(prefix); 904 stp_strs[1] = (char*)malloc(len); 905 snprintf(stp_strs[1], len, " %spPoolSizes (0x%p)\n%s", prefix, (void*)pStruct->pPoolSizes, tmpStr); 906 } 907 else 908 stp_strs[1] = ""; 909 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 910 str = (char*)malloc(len); 911 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%smaxSets = %u\n%spoolSizeCount = %u\n%spPoolSizes = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, (pStruct->maxSets), prefix, (pStruct->poolSizeCount), prefix, (void*)(pStruct->pPoolSizes)); 912 for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 913 if (0 < strlen(stp_strs[stp_index])) { 914 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 915 free(stp_strs[stp_index]); 916 } 917 } 918 free(extra_indent); 919 return str; 920 } 921 char* vk_print_vkdescriptorpoolsize(const VkDescriptorPoolSize* pStruct, const char* prefix) 922 { 923 char* str; 924 size_t len; 925 len = sizeof(char)*1024; 926 str = (char*)malloc(len); 927 snprintf(str, len, "%stype = %s\n%sdescriptorCount = %u\n", prefix, string_VkDescriptorType(pStruct->type), prefix, (pStruct->descriptorCount)); 928 return str; 929 } 930 char* vk_print_vkdescriptorsetallocateinfo(const VkDescriptorSetAllocateInfo* pStruct, const char* prefix) 931 { 932 char* str; 933 size_t len; 934 char* tmpStr; 935 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 936 strcpy(extra_indent, " "); 937 strncat(extra_indent, prefix, strlen(prefix)); 938 char* stp_strs[1]; 939 if (pStruct->pNext) { 940 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 941 len = 256+strlen(tmpStr); 942 stp_strs[0] = (char*)malloc(len); 943 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 944 free(tmpStr); 945 } 946 else 947 stp_strs[0] = ""; 948 len = strlen(stp_strs[0]) + sizeof(char)*1024; 949 str = (char*)malloc(len); 950 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sdescriptorPool = 0x%p\n%sdescriptorSetCount = %u\n%spSetLayouts = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (void*)(pStruct->descriptorPool), prefix, (pStruct->descriptorSetCount), prefix, (void*)(pStruct->pSetLayouts)); 951 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 952 if (0 < strlen(stp_strs[stp_index])) { 953 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 954 free(stp_strs[stp_index]); 955 } 956 } 957 free(extra_indent); 958 return str; 959 } 960 char* vk_print_vkdescriptorsetlayoutbinding(const VkDescriptorSetLayoutBinding* pStruct, const char* prefix) 961 { 962 char* str; 963 size_t len; 964 len = sizeof(char)*1024; 965 str = (char*)malloc(len); 966 snprintf(str, len, "%sbinding = %u\n%sdescriptorType = %s\n%sdescriptorCount = %u\n%sstageFlags = %u\n%spImmutableSamplers = 0x%p\n", prefix, (pStruct->binding), prefix, string_VkDescriptorType(pStruct->descriptorType), prefix, (pStruct->descriptorCount), prefix, (pStruct->stageFlags), prefix, (void*)(pStruct->pImmutableSamplers)); 967 return str; 968 } 969 char* vk_print_vkdescriptorsetlayoutcreateinfo(const VkDescriptorSetLayoutCreateInfo* pStruct, const char* prefix) 970 { 971 char* str; 972 size_t len; 973 char* tmpStr; 974 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 975 strcpy(extra_indent, " "); 976 strncat(extra_indent, prefix, strlen(prefix)); 977 char* stp_strs[2]; 978 if (pStruct->pNext) { 979 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 980 len = 256+strlen(tmpStr); 981 stp_strs[0] = (char*)malloc(len); 982 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 983 free(tmpStr); 984 } 985 else 986 stp_strs[0] = ""; 987 if (pStruct->pBindings) { 988 tmpStr = vk_print_vkdescriptorsetlayoutbinding(pStruct->pBindings, extra_indent); 989 len = 256+strlen(tmpStr)+strlen(prefix); 990 stp_strs[1] = (char*)malloc(len); 991 snprintf(stp_strs[1], len, " %spBindings (0x%p)\n%s", prefix, (void*)pStruct->pBindings, tmpStr); 992 } 993 else 994 stp_strs[1] = ""; 995 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 996 str = (char*)malloc(len); 997 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%sbindingCount = %u\n%spBindings = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, (pStruct->bindingCount), prefix, (void*)(pStruct->pBindings)); 998 for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 999 if (0 < strlen(stp_strs[stp_index])) { 1000 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 1001 free(stp_strs[stp_index]); 1002 } 1003 } 1004 free(extra_indent); 1005 return str; 1006 } 1007 char* vk_print_vkdevicecreateinfo(const VkDeviceCreateInfo* pStruct, const char* prefix) 1008 { 1009 char* str; 1010 size_t len; 1011 char* tmpStr; 1012 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 1013 strcpy(extra_indent, " "); 1014 strncat(extra_indent, prefix, strlen(prefix)); 1015 char* stp_strs[3]; 1016 if (pStruct->pNext) { 1017 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 1018 len = 256+strlen(tmpStr); 1019 stp_strs[0] = (char*)malloc(len); 1020 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 1021 free(tmpStr); 1022 } 1023 else 1024 stp_strs[0] = ""; 1025 if (pStruct->pQueueCreateInfos) { 1026 tmpStr = vk_print_vkdevicequeuecreateinfo(pStruct->pQueueCreateInfos, extra_indent); 1027 len = 256+strlen(tmpStr)+strlen(prefix); 1028 stp_strs[1] = (char*)malloc(len); 1029 snprintf(stp_strs[1], len, " %spQueueCreateInfos (0x%p)\n%s", prefix, (void*)pStruct->pQueueCreateInfos, tmpStr); 1030 } 1031 else 1032 stp_strs[1] = ""; 1033 if (pStruct->pEnabledFeatures) { 1034 tmpStr = vk_print_vkphysicaldevicefeatures(pStruct->pEnabledFeatures, extra_indent); 1035 len = 256+strlen(tmpStr)+strlen(prefix); 1036 stp_strs[2] = (char*)malloc(len); 1037 snprintf(stp_strs[2], len, " %spEnabledFeatures (0x%p)\n%s", prefix, (void*)pStruct->pEnabledFeatures, tmpStr); 1038 } 1039 else 1040 stp_strs[2] = ""; 1041 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + sizeof(char)*1024; 1042 str = (char*)malloc(len); 1043 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%squeueCreateInfoCount = %u\n%spQueueCreateInfos = 0x%p\n%senabledLayerCount = %u\n%sppEnabledLayerNames = %s\n%senabledExtensionCount = %u\n%sppEnabledExtensionNames = %s\n%spEnabledFeatures = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, (pStruct->queueCreateInfoCount), prefix, (void*)(pStruct->pQueueCreateInfos), prefix, (pStruct->enabledLayerCount), prefix, (pStruct->ppEnabledLayerNames)[0], prefix, (pStruct->enabledExtensionCount), prefix, (pStruct->ppEnabledExtensionNames)[0], prefix, (void*)(pStruct->pEnabledFeatures)); 1044 for (int32_t stp_index = 2; stp_index >= 0; stp_index--) { 1045 if (0 < strlen(stp_strs[stp_index])) { 1046 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 1047 free(stp_strs[stp_index]); 1048 } 1049 } 1050 free(extra_indent); 1051 return str; 1052 } 1053 char* vk_print_vkdevicequeuecreateinfo(const VkDeviceQueueCreateInfo* pStruct, const char* prefix) 1054 { 1055 char* str; 1056 size_t len; 1057 char* tmpStr; 1058 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 1059 strcpy(extra_indent, " "); 1060 strncat(extra_indent, prefix, strlen(prefix)); 1061 char* stp_strs[1]; 1062 if (pStruct->pNext) { 1063 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 1064 len = 256+strlen(tmpStr); 1065 stp_strs[0] = (char*)malloc(len); 1066 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 1067 free(tmpStr); 1068 } 1069 else 1070 stp_strs[0] = ""; 1071 len = strlen(stp_strs[0]) + sizeof(char)*1024; 1072 str = (char*)malloc(len); 1073 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%squeueFamilyIndex = %u\n%squeueCount = %u\n%spQueuePriorities = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, (pStruct->queueFamilyIndex), prefix, (pStruct->queueCount), prefix, (void*)(pStruct->pQueuePriorities)); 1074 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 1075 if (0 < strlen(stp_strs[stp_index])) { 1076 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 1077 free(stp_strs[stp_index]); 1078 } 1079 } 1080 free(extra_indent); 1081 return str; 1082 } 1083 char* vk_print_vkdispatchindirectcommand(const VkDispatchIndirectCommand* pStruct, const char* prefix) 1084 { 1085 char* str; 1086 size_t len; 1087 len = sizeof(char)*1024; 1088 str = (char*)malloc(len); 1089 snprintf(str, len, "%sx = %u\n%sy = %u\n%sz = %u\n", prefix, (pStruct->x), prefix, (pStruct->y), prefix, (pStruct->z)); 1090 return str; 1091 } 1092 char* vk_print_vkdisplaymodecreateinfokhr(const VkDisplayModeCreateInfoKHR* pStruct, const char* prefix) 1093 { 1094 char* str; 1095 size_t len; 1096 char* tmpStr; 1097 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 1098 strcpy(extra_indent, " "); 1099 strncat(extra_indent, prefix, strlen(prefix)); 1100 char* stp_strs[2]; 1101 if (pStruct->pNext) { 1102 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 1103 len = 256+strlen(tmpStr); 1104 stp_strs[0] = (char*)malloc(len); 1105 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 1106 free(tmpStr); 1107 } 1108 else 1109 stp_strs[0] = ""; 1110 tmpStr = vk_print_vkdisplaymodeparameterskhr(&pStruct->parameters, extra_indent); 1111 len = 256+strlen(tmpStr); 1112 stp_strs[1] = (char*)malloc(len); 1113 snprintf(stp_strs[1], len, " %sparameters (0x%p)\n%s", prefix, (void*)&pStruct->parameters, tmpStr); 1114 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 1115 str = (char*)malloc(len); 1116 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%sparameters = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, (void*)&(pStruct->parameters)); 1117 for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 1118 if (0 < strlen(stp_strs[stp_index])) { 1119 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 1120 free(stp_strs[stp_index]); 1121 } 1122 } 1123 free(extra_indent); 1124 return str; 1125 } 1126 char* vk_print_vkdisplaymodeparameterskhr(const VkDisplayModeParametersKHR* pStruct, const char* prefix) 1127 { 1128 char* str; 1129 size_t len; 1130 char* tmpStr; 1131 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 1132 strcpy(extra_indent, " "); 1133 strncat(extra_indent, prefix, strlen(prefix)); 1134 char* stp_strs[1]; 1135 tmpStr = vk_print_vkextent2d(&pStruct->visibleRegion, extra_indent); 1136 len = 256+strlen(tmpStr); 1137 stp_strs[0] = (char*)malloc(len); 1138 snprintf(stp_strs[0], len, " %svisibleRegion (0x%p)\n%s", prefix, (void*)&pStruct->visibleRegion, tmpStr); 1139 len = strlen(stp_strs[0]) + sizeof(char)*1024; 1140 str = (char*)malloc(len); 1141 snprintf(str, len, "%svisibleRegion = 0x%p\n%srefreshRate = %u\n", prefix, (void*)&(pStruct->visibleRegion), prefix, (pStruct->refreshRate)); 1142 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 1143 if (0 < strlen(stp_strs[stp_index])) { 1144 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 1145 free(stp_strs[stp_index]); 1146 } 1147 } 1148 free(extra_indent); 1149 return str; 1150 } 1151 char* vk_print_vkdisplaymodepropertieskhr(const VkDisplayModePropertiesKHR* pStruct, const char* prefix) 1152 { 1153 char* str; 1154 size_t len; 1155 char* tmpStr; 1156 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 1157 strcpy(extra_indent, " "); 1158 strncat(extra_indent, prefix, strlen(prefix)); 1159 char* stp_strs[1]; 1160 tmpStr = vk_print_vkdisplaymodeparameterskhr(&pStruct->parameters, extra_indent); 1161 len = 256+strlen(tmpStr); 1162 stp_strs[0] = (char*)malloc(len); 1163 snprintf(stp_strs[0], len, " %sparameters (0x%p)\n%s", prefix, (void*)&pStruct->parameters, tmpStr); 1164 len = strlen(stp_strs[0]) + sizeof(char)*1024; 1165 str = (char*)malloc(len); 1166 snprintf(str, len, "%sdisplayMode = 0x%p\n%sparameters = 0x%p\n", prefix, (void*)(pStruct->displayMode), prefix, (void*)&(pStruct->parameters)); 1167 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 1168 if (0 < strlen(stp_strs[stp_index])) { 1169 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 1170 free(stp_strs[stp_index]); 1171 } 1172 } 1173 free(extra_indent); 1174 return str; 1175 } 1176 char* vk_print_vkdisplayplanecapabilitieskhr(const VkDisplayPlaneCapabilitiesKHR* pStruct, const char* prefix) 1177 { 1178 char* str; 1179 size_t len; 1180 char* tmpStr; 1181 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 1182 strcpy(extra_indent, " "); 1183 strncat(extra_indent, prefix, strlen(prefix)); 1184 char* stp_strs[8]; 1185 tmpStr = vk_print_vkoffset2d(&pStruct->minSrcPosition, extra_indent); 1186 len = 256+strlen(tmpStr); 1187 stp_strs[0] = (char*)malloc(len); 1188 snprintf(stp_strs[0], len, " %sminSrcPosition (0x%p)\n%s", prefix, (void*)&pStruct->minSrcPosition, tmpStr); 1189 tmpStr = vk_print_vkoffset2d(&pStruct->maxSrcPosition, extra_indent); 1190 len = 256+strlen(tmpStr); 1191 stp_strs[1] = (char*)malloc(len); 1192 snprintf(stp_strs[1], len, " %smaxSrcPosition (0x%p)\n%s", prefix, (void*)&pStruct->maxSrcPosition, tmpStr); 1193 tmpStr = vk_print_vkextent2d(&pStruct->minSrcExtent, extra_indent); 1194 len = 256+strlen(tmpStr); 1195 stp_strs[2] = (char*)malloc(len); 1196 snprintf(stp_strs[2], len, " %sminSrcExtent (0x%p)\n%s", prefix, (void*)&pStruct->minSrcExtent, tmpStr); 1197 tmpStr = vk_print_vkextent2d(&pStruct->maxSrcExtent, extra_indent); 1198 len = 256+strlen(tmpStr); 1199 stp_strs[3] = (char*)malloc(len); 1200 snprintf(stp_strs[3], len, " %smaxSrcExtent (0x%p)\n%s", prefix, (void*)&pStruct->maxSrcExtent, tmpStr); 1201 tmpStr = vk_print_vkoffset2d(&pStruct->minDstPosition, extra_indent); 1202 len = 256+strlen(tmpStr); 1203 stp_strs[4] = (char*)malloc(len); 1204 snprintf(stp_strs[4], len, " %sminDstPosition (0x%p)\n%s", prefix, (void*)&pStruct->minDstPosition, tmpStr); 1205 tmpStr = vk_print_vkoffset2d(&pStruct->maxDstPosition, extra_indent); 1206 len = 256+strlen(tmpStr); 1207 stp_strs[5] = (char*)malloc(len); 1208 snprintf(stp_strs[5], len, " %smaxDstPosition (0x%p)\n%s", prefix, (void*)&pStruct->maxDstPosition, tmpStr); 1209 tmpStr = vk_print_vkextent2d(&pStruct->minDstExtent, extra_indent); 1210 len = 256+strlen(tmpStr); 1211 stp_strs[6] = (char*)malloc(len); 1212 snprintf(stp_strs[6], len, " %sminDstExtent (0x%p)\n%s", prefix, (void*)&pStruct->minDstExtent, tmpStr); 1213 tmpStr = vk_print_vkextent2d(&pStruct->maxDstExtent, extra_indent); 1214 len = 256+strlen(tmpStr); 1215 stp_strs[7] = (char*)malloc(len); 1216 snprintf(stp_strs[7], len, " %smaxDstExtent (0x%p)\n%s", prefix, (void*)&pStruct->maxDstExtent, tmpStr); 1217 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; 1218 str = (char*)malloc(len); 1219 snprintf(str, len, "%ssupportedAlpha = %u\n%sminSrcPosition = 0x%p\n%smaxSrcPosition = 0x%p\n%sminSrcExtent = 0x%p\n%smaxSrcExtent = 0x%p\n%sminDstPosition = 0x%p\n%smaxDstPosition = 0x%p\n%sminDstExtent = 0x%p\n%smaxDstExtent = 0x%p\n", prefix, (pStruct->supportedAlpha), prefix, (void*)&(pStruct->minSrcPosition), prefix, (void*)&(pStruct->maxSrcPosition), prefix, (void*)&(pStruct->minSrcExtent), prefix, (void*)&(pStruct->maxSrcExtent), prefix, (void*)&(pStruct->minDstPosition), prefix, (void*)&(pStruct->maxDstPosition), prefix, (void*)&(pStruct->minDstExtent), prefix, (void*)&(pStruct->maxDstExtent)); 1220 for (int32_t stp_index = 7; stp_index >= 0; stp_index--) { 1221 if (0 < strlen(stp_strs[stp_index])) { 1222 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 1223 free(stp_strs[stp_index]); 1224 } 1225 } 1226 free(extra_indent); 1227 return str; 1228 } 1229 char* vk_print_vkdisplayplanepropertieskhr(const VkDisplayPlanePropertiesKHR* pStruct, const char* prefix) 1230 { 1231 char* str; 1232 size_t len; 1233 len = sizeof(char)*1024; 1234 str = (char*)malloc(len); 1235 snprintf(str, len, "%scurrentDisplay = 0x%p\n%scurrentStackIndex = %u\n", prefix, (void*)(pStruct->currentDisplay), prefix, (pStruct->currentStackIndex)); 1236 return str; 1237 } 1238 char* vk_print_vkdisplaypresentinfokhr(const VkDisplayPresentInfoKHR* pStruct, const char* prefix) 1239 { 1240 char* str; 1241 size_t len; 1242 char* tmpStr; 1243 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 1244 strcpy(extra_indent, " "); 1245 strncat(extra_indent, prefix, strlen(prefix)); 1246 char* stp_strs[3]; 1247 if (pStruct->pNext) { 1248 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 1249 len = 256+strlen(tmpStr); 1250 stp_strs[0] = (char*)malloc(len); 1251 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 1252 free(tmpStr); 1253 } 1254 else 1255 stp_strs[0] = ""; 1256 tmpStr = vk_print_vkrect2d(&pStruct->srcRect, extra_indent); 1257 len = 256+strlen(tmpStr); 1258 stp_strs[1] = (char*)malloc(len); 1259 snprintf(stp_strs[1], len, " %ssrcRect (0x%p)\n%s", prefix, (void*)&pStruct->srcRect, tmpStr); 1260 tmpStr = vk_print_vkrect2d(&pStruct->dstRect, extra_indent); 1261 len = 256+strlen(tmpStr); 1262 stp_strs[2] = (char*)malloc(len); 1263 snprintf(stp_strs[2], len, " %sdstRect (0x%p)\n%s", prefix, (void*)&pStruct->dstRect, tmpStr); 1264 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + sizeof(char)*1024; 1265 str = (char*)malloc(len); 1266 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%ssrcRect = 0x%p\n%sdstRect = 0x%p\n%spersistent = %s\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (void*)&(pStruct->srcRect), prefix, (void*)&(pStruct->dstRect), prefix, (pStruct->persistent) ? "TRUE" : "FALSE"); 1267 for (int32_t stp_index = 2; stp_index >= 0; stp_index--) { 1268 if (0 < strlen(stp_strs[stp_index])) { 1269 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 1270 free(stp_strs[stp_index]); 1271 } 1272 } 1273 free(extra_indent); 1274 return str; 1275 } 1276 char* vk_print_vkdisplaypropertieskhr(const VkDisplayPropertiesKHR* pStruct, const char* prefix) 1277 { 1278 char* str; 1279 size_t len; 1280 char* tmpStr; 1281 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 1282 strcpy(extra_indent, " "); 1283 strncat(extra_indent, prefix, strlen(prefix)); 1284 char* stp_strs[2]; 1285 tmpStr = vk_print_vkextent2d(&pStruct->physicalDimensions, extra_indent); 1286 len = 256+strlen(tmpStr); 1287 stp_strs[0] = (char*)malloc(len); 1288 snprintf(stp_strs[0], len, " %sphysicalDimensions (0x%p)\n%s", prefix, (void*)&pStruct->physicalDimensions, tmpStr); 1289 tmpStr = vk_print_vkextent2d(&pStruct->physicalResolution, extra_indent); 1290 len = 256+strlen(tmpStr); 1291 stp_strs[1] = (char*)malloc(len); 1292 snprintf(stp_strs[1], len, " %sphysicalResolution (0x%p)\n%s", prefix, (void*)&pStruct->physicalResolution, tmpStr); 1293 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 1294 str = (char*)malloc(len); 1295 snprintf(str, len, "%sdisplay = 0x%p\n%sdisplayName = 0x%p\n%sphysicalDimensions = 0x%p\n%sphysicalResolution = 0x%p\n%ssupportedTransforms = %u\n%splaneReorderPossible = %s\n%spersistentContent = %s\n", prefix, (void*)(pStruct->display), prefix, (pStruct->displayName), prefix, (void*)&(pStruct->physicalDimensions), prefix, (void*)&(pStruct->physicalResolution), prefix, (pStruct->supportedTransforms), prefix, (pStruct->planeReorderPossible) ? "TRUE" : "FALSE", prefix, (pStruct->persistentContent) ? "TRUE" : "FALSE"); 1296 for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 1297 if (0 < strlen(stp_strs[stp_index])) { 1298 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 1299 free(stp_strs[stp_index]); 1300 } 1301 } 1302 free(extra_indent); 1303 return str; 1304 } 1305 char* vk_print_vkdisplaysurfacecreateinfokhr(const VkDisplaySurfaceCreateInfoKHR* pStruct, const char* prefix) 1306 { 1307 char* str; 1308 size_t len; 1309 char* tmpStr; 1310 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 1311 strcpy(extra_indent, " "); 1312 strncat(extra_indent, prefix, strlen(prefix)); 1313 char* stp_strs[2]; 1314 if (pStruct->pNext) { 1315 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 1316 len = 256+strlen(tmpStr); 1317 stp_strs[0] = (char*)malloc(len); 1318 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 1319 free(tmpStr); 1320 } 1321 else 1322 stp_strs[0] = ""; 1323 tmpStr = vk_print_vkextent2d(&pStruct->imageExtent, extra_indent); 1324 len = 256+strlen(tmpStr); 1325 stp_strs[1] = (char*)malloc(len); 1326 snprintf(stp_strs[1], len, " %simageExtent (0x%p)\n%s", prefix, (void*)&pStruct->imageExtent, tmpStr); 1327 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 1328 str = (char*)malloc(len); 1329 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%sdisplayMode = 0x%p\n%splaneIndex = %u\n%splaneStackIndex = %u\n%stransform = %s\n%sglobalAlpha = %f\n%salphaMode = %s\n%simageExtent = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, (void*)(pStruct->displayMode), prefix, (pStruct->planeIndex), prefix, (pStruct->planeStackIndex), prefix, string_VkSurfaceTransformFlagBitsKHR(pStruct->transform), prefix, (pStruct->globalAlpha), prefix, string_VkDisplayPlaneAlphaFlagBitsKHR(pStruct->alphaMode), prefix, (void*)&(pStruct->imageExtent)); 1330 for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 1331 if (0 < strlen(stp_strs[stp_index])) { 1332 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 1333 free(stp_strs[stp_index]); 1334 } 1335 } 1336 free(extra_indent); 1337 return str; 1338 } 1339 char* vk_print_vkdrawindexedindirectcommand(const VkDrawIndexedIndirectCommand* pStruct, const char* prefix) 1340 { 1341 char* str; 1342 size_t len; 1343 len = sizeof(char)*1024; 1344 str = (char*)malloc(len); 1345 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)); 1346 return str; 1347 } 1348 char* vk_print_vkdrawindirectcommand(const VkDrawIndirectCommand* pStruct, const char* prefix) 1349 { 1350 char* str; 1351 size_t len; 1352 len = sizeof(char)*1024; 1353 str = (char*)malloc(len); 1354 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)); 1355 return str; 1356 } 1357 char* vk_print_vkeventcreateinfo(const VkEventCreateInfo* pStruct, const char* prefix) 1358 { 1359 char* str; 1360 size_t len; 1361 char* tmpStr; 1362 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 1363 strcpy(extra_indent, " "); 1364 strncat(extra_indent, prefix, strlen(prefix)); 1365 char* stp_strs[1]; 1366 if (pStruct->pNext) { 1367 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 1368 len = 256+strlen(tmpStr); 1369 stp_strs[0] = (char*)malloc(len); 1370 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 1371 free(tmpStr); 1372 } 1373 else 1374 stp_strs[0] = ""; 1375 len = strlen(stp_strs[0]) + sizeof(char)*1024; 1376 str = (char*)malloc(len); 1377 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags)); 1378 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 1379 if (0 < strlen(stp_strs[stp_index])) { 1380 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 1381 free(stp_strs[stp_index]); 1382 } 1383 } 1384 free(extra_indent); 1385 return str; 1386 } 1387 char* vk_print_vkextensionproperties(const VkExtensionProperties* pStruct, const char* prefix) 1388 { 1389 char* str; 1390 size_t len; 1391 len = sizeof(char)*1024; 1392 str = (char*)malloc(len); 1393 snprintf(str, len, "%sextensionName = %s\n%sspecVersion = %u\n", prefix, (pStruct->extensionName), prefix, (pStruct->specVersion)); 1394 return str; 1395 } 1396 char* vk_print_vkextent2d(const VkExtent2D* pStruct, const char* prefix) 1397 { 1398 char* str; 1399 size_t len; 1400 len = sizeof(char)*1024; 1401 str = (char*)malloc(len); 1402 snprintf(str, len, "%swidth = %u\n%sheight = %u\n", prefix, (pStruct->width), prefix, (pStruct->height)); 1403 return str; 1404 } 1405 char* vk_print_vkextent3d(const VkExtent3D* pStruct, const char* prefix) 1406 { 1407 char* str; 1408 size_t len; 1409 len = sizeof(char)*1024; 1410 str = (char*)malloc(len); 1411 snprintf(str, len, "%swidth = %u\n%sheight = %u\n%sdepth = %u\n", prefix, (pStruct->width), prefix, (pStruct->height), prefix, (pStruct->depth)); 1412 return str; 1413 } 1414 char* vk_print_vkfencecreateinfo(const VkFenceCreateInfo* pStruct, const char* prefix) 1415 { 1416 char* str; 1417 size_t len; 1418 char* tmpStr; 1419 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 1420 strcpy(extra_indent, " "); 1421 strncat(extra_indent, prefix, strlen(prefix)); 1422 char* stp_strs[1]; 1423 if (pStruct->pNext) { 1424 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 1425 len = 256+strlen(tmpStr); 1426 stp_strs[0] = (char*)malloc(len); 1427 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 1428 free(tmpStr); 1429 } 1430 else 1431 stp_strs[0] = ""; 1432 len = strlen(stp_strs[0]) + sizeof(char)*1024; 1433 str = (char*)malloc(len); 1434 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags)); 1435 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 1436 if (0 < strlen(stp_strs[stp_index])) { 1437 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 1438 free(stp_strs[stp_index]); 1439 } 1440 } 1441 free(extra_indent); 1442 return str; 1443 } 1444 char* vk_print_vkformatproperties(const VkFormatProperties* pStruct, const char* prefix) 1445 { 1446 char* str; 1447 size_t len; 1448 len = sizeof(char)*1024; 1449 str = (char*)malloc(len); 1450 snprintf(str, len, "%slinearTilingFeatures = %u\n%soptimalTilingFeatures = %u\n%sbufferFeatures = %u\n", prefix, (pStruct->linearTilingFeatures), prefix, (pStruct->optimalTilingFeatures), prefix, (pStruct->bufferFeatures)); 1451 return str; 1452 } 1453 char* vk_print_vkframebuffercreateinfo(const VkFramebufferCreateInfo* pStruct, const char* prefix) 1454 { 1455 char* str; 1456 size_t len; 1457 char* tmpStr; 1458 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 1459 strcpy(extra_indent, " "); 1460 strncat(extra_indent, prefix, strlen(prefix)); 1461 char* stp_strs[1]; 1462 if (pStruct->pNext) { 1463 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 1464 len = 256+strlen(tmpStr); 1465 stp_strs[0] = (char*)malloc(len); 1466 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 1467 free(tmpStr); 1468 } 1469 else 1470 stp_strs[0] = ""; 1471 len = strlen(stp_strs[0]) + sizeof(char)*1024; 1472 str = (char*)malloc(len); 1473 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%srenderPass = 0x%p\n%sattachmentCount = %u\n%spAttachments = 0x%p\n%swidth = %u\n%sheight = %u\n%slayers = %u\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, (void*)(pStruct->renderPass), prefix, (pStruct->attachmentCount), prefix, (void*)(pStruct->pAttachments), prefix, (pStruct->width), prefix, (pStruct->height), prefix, (pStruct->layers)); 1474 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 1475 if (0 < strlen(stp_strs[stp_index])) { 1476 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 1477 free(stp_strs[stp_index]); 1478 } 1479 } 1480 free(extra_indent); 1481 return str; 1482 } 1483 char* vk_print_vkgraphicspipelinecreateinfo(const VkGraphicsPipelineCreateInfo* pStruct, const char* prefix) 1484 { 1485 char* str; 1486 size_t len; 1487 char* tmpStr; 1488 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 1489 strcpy(extra_indent, " "); 1490 strncat(extra_indent, prefix, strlen(prefix)); 1491 char* stp_strs[11]; 1492 if (pStruct->pNext) { 1493 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 1494 len = 256+strlen(tmpStr); 1495 stp_strs[0] = (char*)malloc(len); 1496 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 1497 free(tmpStr); 1498 } 1499 else 1500 stp_strs[0] = ""; 1501 if (pStruct->pStages) { 1502 tmpStr = vk_print_vkpipelineshaderstagecreateinfo(pStruct->pStages, extra_indent); 1503 len = 256+strlen(tmpStr)+strlen(prefix); 1504 stp_strs[1] = (char*)malloc(len); 1505 snprintf(stp_strs[1], len, " %spStages (0x%p)\n%s", prefix, (void*)pStruct->pStages, tmpStr); 1506 } 1507 else 1508 stp_strs[1] = ""; 1509 if (pStruct->pVertexInputState) { 1510 tmpStr = vk_print_vkpipelinevertexinputstatecreateinfo(pStruct->pVertexInputState, extra_indent); 1511 len = 256+strlen(tmpStr)+strlen(prefix); 1512 stp_strs[2] = (char*)malloc(len); 1513 snprintf(stp_strs[2], len, " %spVertexInputState (0x%p)\n%s", prefix, (void*)pStruct->pVertexInputState, tmpStr); 1514 } 1515 else 1516 stp_strs[2] = ""; 1517 if (pStruct->pInputAssemblyState) { 1518 tmpStr = vk_print_vkpipelineinputassemblystatecreateinfo(pStruct->pInputAssemblyState, extra_indent); 1519 len = 256+strlen(tmpStr)+strlen(prefix); 1520 stp_strs[3] = (char*)malloc(len); 1521 snprintf(stp_strs[3], len, " %spInputAssemblyState (0x%p)\n%s", prefix, (void*)pStruct->pInputAssemblyState, tmpStr); 1522 } 1523 else 1524 stp_strs[3] = ""; 1525 if (pStruct->pTessellationState) { 1526 tmpStr = vk_print_vkpipelinetessellationstatecreateinfo(pStruct->pTessellationState, extra_indent); 1527 len = 256+strlen(tmpStr)+strlen(prefix); 1528 stp_strs[4] = (char*)malloc(len); 1529 snprintf(stp_strs[4], len, " %spTessellationState (0x%p)\n%s", prefix, (void*)pStruct->pTessellationState, tmpStr); 1530 } 1531 else 1532 stp_strs[4] = ""; 1533 if (pStruct->pViewportState) { 1534 tmpStr = vk_print_vkpipelineviewportstatecreateinfo(pStruct->pViewportState, extra_indent); 1535 len = 256+strlen(tmpStr)+strlen(prefix); 1536 stp_strs[5] = (char*)malloc(len); 1537 snprintf(stp_strs[5], len, " %spViewportState (0x%p)\n%s", prefix, (void*)pStruct->pViewportState, tmpStr); 1538 } 1539 else 1540 stp_strs[5] = ""; 1541 if (pStruct->pRasterizationState) { 1542 tmpStr = vk_print_vkpipelinerasterizationstatecreateinfo(pStruct->pRasterizationState, extra_indent); 1543 len = 256+strlen(tmpStr)+strlen(prefix); 1544 stp_strs[6] = (char*)malloc(len); 1545 snprintf(stp_strs[6], len, " %spRasterizationState (0x%p)\n%s", prefix, (void*)pStruct->pRasterizationState, tmpStr); 1546 } 1547 else 1548 stp_strs[6] = ""; 1549 if (pStruct->pMultisampleState) { 1550 tmpStr = vk_print_vkpipelinemultisamplestatecreateinfo(pStruct->pMultisampleState, extra_indent); 1551 len = 256+strlen(tmpStr)+strlen(prefix); 1552 stp_strs[7] = (char*)malloc(len); 1553 snprintf(stp_strs[7], len, " %spMultisampleState (0x%p)\n%s", prefix, (void*)pStruct->pMultisampleState, tmpStr); 1554 } 1555 else 1556 stp_strs[7] = ""; 1557 if (pStruct->pDepthStencilState) { 1558 tmpStr = vk_print_vkpipelinedepthstencilstatecreateinfo(pStruct->pDepthStencilState, extra_indent); 1559 len = 256+strlen(tmpStr)+strlen(prefix); 1560 stp_strs[8] = (char*)malloc(len); 1561 snprintf(stp_strs[8], len, " %spDepthStencilState (0x%p)\n%s", prefix, (void*)pStruct->pDepthStencilState, tmpStr); 1562 } 1563 else 1564 stp_strs[8] = ""; 1565 if (pStruct->pColorBlendState) { 1566 tmpStr = vk_print_vkpipelinecolorblendstatecreateinfo(pStruct->pColorBlendState, extra_indent); 1567 len = 256+strlen(tmpStr)+strlen(prefix); 1568 stp_strs[9] = (char*)malloc(len); 1569 snprintf(stp_strs[9], len, " %spColorBlendState (0x%p)\n%s", prefix, (void*)pStruct->pColorBlendState, tmpStr); 1570 } 1571 else 1572 stp_strs[9] = ""; 1573 if (pStruct->pDynamicState) { 1574 tmpStr = vk_print_vkpipelinedynamicstatecreateinfo(pStruct->pDynamicState, extra_indent); 1575 len = 256+strlen(tmpStr)+strlen(prefix); 1576 stp_strs[10] = (char*)malloc(len); 1577 snprintf(stp_strs[10], len, " %spDynamicState (0x%p)\n%s", prefix, (void*)pStruct->pDynamicState, tmpStr); 1578 } 1579 else 1580 stp_strs[10] = ""; 1581 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; 1582 str = (char*)malloc(len); 1583 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%sstageCount = %u\n%spStages = 0x%p\n%spVertexInputState = 0x%p\n%spInputAssemblyState = 0x%p\n%spTessellationState = 0x%p\n%spViewportState = 0x%p\n%spRasterizationState = 0x%p\n%spMultisampleState = 0x%p\n%spDepthStencilState = 0x%p\n%spColorBlendState = 0x%p\n%spDynamicState = 0x%p\n%slayout = 0x%p\n%srenderPass = 0x%p\n%ssubpass = %u\n%sbasePipelineHandle = 0x%p\n%sbasePipelineIndex = %i\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, (pStruct->stageCount), prefix, (void*)(pStruct->pStages), prefix, (void*)(pStruct->pVertexInputState), prefix, (void*)(pStruct->pInputAssemblyState), prefix, (void*)(pStruct->pTessellationState), prefix, (void*)(pStruct->pViewportState), prefix, (void*)(pStruct->pRasterizationState), prefix, (void*)(pStruct->pMultisampleState), prefix, (void*)(pStruct->pDepthStencilState), prefix, (void*)(pStruct->pColorBlendState), prefix, (void*)(pStruct->pDynamicState), prefix, (void*)(pStruct->layout), prefix, (void*)(pStruct->renderPass), prefix, (pStruct->subpass), prefix, (void*)(pStruct->basePipelineHandle), prefix, (pStruct->basePipelineIndex)); 1584 for (int32_t stp_index = 10; stp_index >= 0; stp_index--) { 1585 if (0 < strlen(stp_strs[stp_index])) { 1586 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 1587 free(stp_strs[stp_index]); 1588 } 1589 } 1590 free(extra_indent); 1591 return str; 1592 } 1593 char* vk_print_vkimageblit(const VkImageBlit* pStruct, const char* prefix) 1594 { 1595 char* str; 1596 size_t len; 1597 char* tmpStr; 1598 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 1599 strcpy(extra_indent, " "); 1600 strncat(extra_indent, prefix, strlen(prefix)); 1601 char* stp_strs[4]; 1602 tmpStr = vk_print_vkimagesubresourcelayers(&pStruct->srcSubresource, extra_indent); 1603 len = 256+strlen(tmpStr); 1604 stp_strs[0] = (char*)malloc(len); 1605 snprintf(stp_strs[0], len, " %ssrcSubresource (0x%p)\n%s", prefix, (void*)&pStruct->srcSubresource, tmpStr); 1606 tmpStr = vk_print_vkoffset3d(&pStruct->srcOffsets[0], extra_indent); 1607 len = 256+strlen(tmpStr); 1608 stp_strs[1] = (char*)malloc(len); 1609 snprintf(stp_strs[1], len, " %ssrcOffsets[0] (0x%p)\n%s", prefix, (void*)&pStruct->srcOffsets[0], tmpStr); 1610 tmpStr = vk_print_vkimagesubresourcelayers(&pStruct->dstSubresource, extra_indent); 1611 len = 256+strlen(tmpStr); 1612 stp_strs[2] = (char*)malloc(len); 1613 snprintf(stp_strs[2], len, " %sdstSubresource (0x%p)\n%s", prefix, (void*)&pStruct->dstSubresource, tmpStr); 1614 tmpStr = vk_print_vkoffset3d(&pStruct->dstOffsets[0], extra_indent); 1615 len = 256+strlen(tmpStr); 1616 stp_strs[3] = (char*)malloc(len); 1617 snprintf(stp_strs[3], len, " %sdstOffsets[0] (0x%p)\n%s", prefix, (void*)&pStruct->dstOffsets[0], tmpStr); 1618 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + strlen(stp_strs[3]) + sizeof(char)*1024; 1619 str = (char*)malloc(len); 1620 snprintf(str, len, "%ssrcSubresource = 0x%p\n%ssrcOffsets = 0x%p\n%sdstSubresource = 0x%p\n%sdstOffsets = 0x%p\n", prefix, (void*)&(pStruct->srcSubresource), prefix, (void*)(pStruct->srcOffsets), prefix, (void*)&(pStruct->dstSubresource), prefix, (void*)(pStruct->dstOffsets)); 1621 for (int32_t stp_index = 3; stp_index >= 0; stp_index--) { 1622 if (0 < strlen(stp_strs[stp_index])) { 1623 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 1624 free(stp_strs[stp_index]); 1625 } 1626 } 1627 free(extra_indent); 1628 return str; 1629 } 1630 char* vk_print_vkimagecopy(const VkImageCopy* pStruct, const char* prefix) 1631 { 1632 char* str; 1633 size_t len; 1634 char* tmpStr; 1635 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 1636 strcpy(extra_indent, " "); 1637 strncat(extra_indent, prefix, strlen(prefix)); 1638 char* stp_strs[5]; 1639 tmpStr = vk_print_vkimagesubresourcelayers(&pStruct->srcSubresource, extra_indent); 1640 len = 256+strlen(tmpStr); 1641 stp_strs[0] = (char*)malloc(len); 1642 snprintf(stp_strs[0], len, " %ssrcSubresource (0x%p)\n%s", prefix, (void*)&pStruct->srcSubresource, tmpStr); 1643 tmpStr = vk_print_vkoffset3d(&pStruct->srcOffset, extra_indent); 1644 len = 256+strlen(tmpStr); 1645 stp_strs[1] = (char*)malloc(len); 1646 snprintf(stp_strs[1], len, " %ssrcOffset (0x%p)\n%s", prefix, (void*)&pStruct->srcOffset, tmpStr); 1647 tmpStr = vk_print_vkimagesubresourcelayers(&pStruct->dstSubresource, extra_indent); 1648 len = 256+strlen(tmpStr); 1649 stp_strs[2] = (char*)malloc(len); 1650 snprintf(stp_strs[2], len, " %sdstSubresource (0x%p)\n%s", prefix, (void*)&pStruct->dstSubresource, tmpStr); 1651 tmpStr = vk_print_vkoffset3d(&pStruct->dstOffset, extra_indent); 1652 len = 256+strlen(tmpStr); 1653 stp_strs[3] = (char*)malloc(len); 1654 snprintf(stp_strs[3], len, " %sdstOffset (0x%p)\n%s", prefix, (void*)&pStruct->dstOffset, tmpStr); 1655 tmpStr = vk_print_vkextent3d(&pStruct->extent, extra_indent); 1656 len = 256+strlen(tmpStr); 1657 stp_strs[4] = (char*)malloc(len); 1658 snprintf(stp_strs[4], len, " %sextent (0x%p)\n%s", prefix, (void*)&pStruct->extent, tmpStr); 1659 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + strlen(stp_strs[3]) + strlen(stp_strs[4]) + sizeof(char)*1024; 1660 str = (char*)malloc(len); 1661 snprintf(str, len, "%ssrcSubresource = 0x%p\n%ssrcOffset = 0x%p\n%sdstSubresource = 0x%p\n%sdstOffset = 0x%p\n%sextent = 0x%p\n", prefix, (void*)&(pStruct->srcSubresource), prefix, (void*)&(pStruct->srcOffset), prefix, (void*)&(pStruct->dstSubresource), prefix, (void*)&(pStruct->dstOffset), prefix, (void*)&(pStruct->extent)); 1662 for (int32_t stp_index = 4; stp_index >= 0; stp_index--) { 1663 if (0 < strlen(stp_strs[stp_index])) { 1664 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 1665 free(stp_strs[stp_index]); 1666 } 1667 } 1668 free(extra_indent); 1669 return str; 1670 } 1671 char* vk_print_vkimagecreateinfo(const VkImageCreateInfo* pStruct, const char* prefix) 1672 { 1673 char* str; 1674 size_t len; 1675 char* tmpStr; 1676 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 1677 strcpy(extra_indent, " "); 1678 strncat(extra_indent, prefix, strlen(prefix)); 1679 char* stp_strs[2]; 1680 if (pStruct->pNext) { 1681 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 1682 len = 256+strlen(tmpStr); 1683 stp_strs[0] = (char*)malloc(len); 1684 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 1685 free(tmpStr); 1686 } 1687 else 1688 stp_strs[0] = ""; 1689 tmpStr = vk_print_vkextent3d(&pStruct->extent, extra_indent); 1690 len = 256+strlen(tmpStr); 1691 stp_strs[1] = (char*)malloc(len); 1692 snprintf(stp_strs[1], len, " %sextent (0x%p)\n%s", prefix, (void*)&pStruct->extent, tmpStr); 1693 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 1694 str = (char*)malloc(len); 1695 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%simageType = %s\n%sformat = %s\n%sextent = 0x%p\n%smipLevels = %u\n%sarrayLayers = %u\n%ssamples = %s\n%stiling = %s\n%susage = %u\n%ssharingMode = %s\n%squeueFamilyIndexCount = %u\n%spQueueFamilyIndices = 0x%p\n%sinitialLayout = %s\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, string_VkImageType(pStruct->imageType), prefix, string_VkFormat(pStruct->format), prefix, (void*)&(pStruct->extent), 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, (void*)(pStruct->pQueueFamilyIndices), prefix, string_VkImageLayout(pStruct->initialLayout)); 1696 for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 1697 if (0 < strlen(stp_strs[stp_index])) { 1698 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 1699 free(stp_strs[stp_index]); 1700 } 1701 } 1702 free(extra_indent); 1703 return str; 1704 } 1705 char* vk_print_vkimageformatproperties(const VkImageFormatProperties* pStruct, const char* prefix) 1706 { 1707 char* str; 1708 size_t len; 1709 char* tmpStr; 1710 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 1711 strcpy(extra_indent, " "); 1712 strncat(extra_indent, prefix, strlen(prefix)); 1713 char* stp_strs[1]; 1714 tmpStr = vk_print_vkextent3d(&pStruct->maxExtent, extra_indent); 1715 len = 256+strlen(tmpStr); 1716 stp_strs[0] = (char*)malloc(len); 1717 snprintf(stp_strs[0], len, " %smaxExtent (0x%p)\n%s", prefix, (void*)&pStruct->maxExtent, tmpStr); 1718 len = strlen(stp_strs[0]) + sizeof(char)*1024; 1719 str = (char*)malloc(len); 1720 snprintf(str, len, "%smaxExtent = 0x%p\n%smaxMipLevels = %u\n%smaxArrayLayers = %u\n%ssampleCounts = %u\n%smaxResourceSize = " PRINTF_SIZE_T_SPECIFIER "\n", prefix, (void*)&(pStruct->maxExtent), prefix, (pStruct->maxMipLevels), prefix, (pStruct->maxArrayLayers), prefix, (pStruct->sampleCounts), prefix, (pStruct->maxResourceSize)); 1721 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 1722 if (0 < strlen(stp_strs[stp_index])) { 1723 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 1724 free(stp_strs[stp_index]); 1725 } 1726 } 1727 free(extra_indent); 1728 return str; 1729 } 1730 char* vk_print_vkimagememorybarrier(const VkImageMemoryBarrier* pStruct, const char* prefix) 1731 { 1732 char* str; 1733 size_t len; 1734 char* tmpStr; 1735 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 1736 strcpy(extra_indent, " "); 1737 strncat(extra_indent, prefix, strlen(prefix)); 1738 char* stp_strs[2]; 1739 if (pStruct->pNext) { 1740 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 1741 len = 256+strlen(tmpStr); 1742 stp_strs[0] = (char*)malloc(len); 1743 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 1744 free(tmpStr); 1745 } 1746 else 1747 stp_strs[0] = ""; 1748 tmpStr = vk_print_vkimagesubresourcerange(&pStruct->subresourceRange, extra_indent); 1749 len = 256+strlen(tmpStr); 1750 stp_strs[1] = (char*)malloc(len); 1751 snprintf(stp_strs[1], len, " %ssubresourceRange (0x%p)\n%s", prefix, (void*)&pStruct->subresourceRange, tmpStr); 1752 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 1753 str = (char*)malloc(len); 1754 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%ssrcAccessMask = %u\n%sdstAccessMask = %u\n%soldLayout = %s\n%snewLayout = %s\n%ssrcQueueFamilyIndex = %u\n%sdstQueueFamilyIndex = %u\n%simage = 0x%p\n%ssubresourceRange = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->srcAccessMask), prefix, (pStruct->dstAccessMask), prefix, string_VkImageLayout(pStruct->oldLayout), prefix, string_VkImageLayout(pStruct->newLayout), prefix, (pStruct->srcQueueFamilyIndex), prefix, (pStruct->dstQueueFamilyIndex), prefix, (void*)(pStruct->image), prefix, (void*)&(pStruct->subresourceRange)); 1755 for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 1756 if (0 < strlen(stp_strs[stp_index])) { 1757 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 1758 free(stp_strs[stp_index]); 1759 } 1760 } 1761 free(extra_indent); 1762 return str; 1763 } 1764 char* vk_print_vkimageresolve(const VkImageResolve* pStruct, const char* prefix) 1765 { 1766 char* str; 1767 size_t len; 1768 char* tmpStr; 1769 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 1770 strcpy(extra_indent, " "); 1771 strncat(extra_indent, prefix, strlen(prefix)); 1772 char* stp_strs[5]; 1773 tmpStr = vk_print_vkimagesubresourcelayers(&pStruct->srcSubresource, extra_indent); 1774 len = 256+strlen(tmpStr); 1775 stp_strs[0] = (char*)malloc(len); 1776 snprintf(stp_strs[0], len, " %ssrcSubresource (0x%p)\n%s", prefix, (void*)&pStruct->srcSubresource, tmpStr); 1777 tmpStr = vk_print_vkoffset3d(&pStruct->srcOffset, extra_indent); 1778 len = 256+strlen(tmpStr); 1779 stp_strs[1] = (char*)malloc(len); 1780 snprintf(stp_strs[1], len, " %ssrcOffset (0x%p)\n%s", prefix, (void*)&pStruct->srcOffset, tmpStr); 1781 tmpStr = vk_print_vkimagesubresourcelayers(&pStruct->dstSubresource, extra_indent); 1782 len = 256+strlen(tmpStr); 1783 stp_strs[2] = (char*)malloc(len); 1784 snprintf(stp_strs[2], len, " %sdstSubresource (0x%p)\n%s", prefix, (void*)&pStruct->dstSubresource, tmpStr); 1785 tmpStr = vk_print_vkoffset3d(&pStruct->dstOffset, extra_indent); 1786 len = 256+strlen(tmpStr); 1787 stp_strs[3] = (char*)malloc(len); 1788 snprintf(stp_strs[3], len, " %sdstOffset (0x%p)\n%s", prefix, (void*)&pStruct->dstOffset, tmpStr); 1789 tmpStr = vk_print_vkextent3d(&pStruct->extent, extra_indent); 1790 len = 256+strlen(tmpStr); 1791 stp_strs[4] = (char*)malloc(len); 1792 snprintf(stp_strs[4], len, " %sextent (0x%p)\n%s", prefix, (void*)&pStruct->extent, tmpStr); 1793 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + strlen(stp_strs[3]) + strlen(stp_strs[4]) + sizeof(char)*1024; 1794 str = (char*)malloc(len); 1795 snprintf(str, len, "%ssrcSubresource = 0x%p\n%ssrcOffset = 0x%p\n%sdstSubresource = 0x%p\n%sdstOffset = 0x%p\n%sextent = 0x%p\n", prefix, (void*)&(pStruct->srcSubresource), prefix, (void*)&(pStruct->srcOffset), prefix, (void*)&(pStruct->dstSubresource), prefix, (void*)&(pStruct->dstOffset), prefix, (void*)&(pStruct->extent)); 1796 for (int32_t stp_index = 4; stp_index >= 0; stp_index--) { 1797 if (0 < strlen(stp_strs[stp_index])) { 1798 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 1799 free(stp_strs[stp_index]); 1800 } 1801 } 1802 free(extra_indent); 1803 return str; 1804 } 1805 char* vk_print_vkimagesubresource(const VkImageSubresource* pStruct, const char* prefix) 1806 { 1807 char* str; 1808 size_t len; 1809 len = sizeof(char)*1024; 1810 str = (char*)malloc(len); 1811 snprintf(str, len, "%saspectMask = %u\n%smipLevel = %u\n%sarrayLayer = %u\n", prefix, (pStruct->aspectMask), prefix, (pStruct->mipLevel), prefix, (pStruct->arrayLayer)); 1812 return str; 1813 } 1814 char* vk_print_vkimagesubresourcelayers(const VkImageSubresourceLayers* pStruct, const char* prefix) 1815 { 1816 char* str; 1817 size_t len; 1818 len = sizeof(char)*1024; 1819 str = (char*)malloc(len); 1820 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)); 1821 return str; 1822 } 1823 char* vk_print_vkimagesubresourcerange(const VkImageSubresourceRange* pStruct, const char* prefix) 1824 { 1825 char* str; 1826 size_t len; 1827 len = sizeof(char)*1024; 1828 str = (char*)malloc(len); 1829 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)); 1830 return str; 1831 } 1832 char* vk_print_vkimageviewcreateinfo(const VkImageViewCreateInfo* pStruct, const char* prefix) 1833 { 1834 char* str; 1835 size_t len; 1836 char* tmpStr; 1837 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 1838 strcpy(extra_indent, " "); 1839 strncat(extra_indent, prefix, strlen(prefix)); 1840 char* stp_strs[3]; 1841 if (pStruct->pNext) { 1842 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 1843 len = 256+strlen(tmpStr); 1844 stp_strs[0] = (char*)malloc(len); 1845 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 1846 free(tmpStr); 1847 } 1848 else 1849 stp_strs[0] = ""; 1850 tmpStr = vk_print_vkcomponentmapping(&pStruct->components, extra_indent); 1851 len = 256+strlen(tmpStr); 1852 stp_strs[1] = (char*)malloc(len); 1853 snprintf(stp_strs[1], len, " %scomponents (0x%p)\n%s", prefix, (void*)&pStruct->components, tmpStr); 1854 tmpStr = vk_print_vkimagesubresourcerange(&pStruct->subresourceRange, extra_indent); 1855 len = 256+strlen(tmpStr); 1856 stp_strs[2] = (char*)malloc(len); 1857 snprintf(stp_strs[2], len, " %ssubresourceRange (0x%p)\n%s", prefix, (void*)&pStruct->subresourceRange, tmpStr); 1858 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + sizeof(char)*1024; 1859 str = (char*)malloc(len); 1860 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%simage = 0x%p\n%sviewType = %s\n%sformat = %s\n%scomponents = 0x%p\n%ssubresourceRange = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, (void*)(pStruct->image), prefix, string_VkImageViewType(pStruct->viewType), prefix, string_VkFormat(pStruct->format), prefix, (void*)&(pStruct->components), prefix, (void*)&(pStruct->subresourceRange)); 1861 for (int32_t stp_index = 2; stp_index >= 0; stp_index--) { 1862 if (0 < strlen(stp_strs[stp_index])) { 1863 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 1864 free(stp_strs[stp_index]); 1865 } 1866 } 1867 free(extra_indent); 1868 return str; 1869 } 1870 char* vk_print_vkinstancecreateinfo(const VkInstanceCreateInfo* pStruct, const char* prefix) 1871 { 1872 char* str; 1873 size_t len; 1874 char* tmpStr; 1875 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 1876 strcpy(extra_indent, " "); 1877 strncat(extra_indent, prefix, strlen(prefix)); 1878 char* stp_strs[2]; 1879 if (pStruct->pNext) { 1880 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 1881 len = 256+strlen(tmpStr); 1882 stp_strs[0] = (char*)malloc(len); 1883 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 1884 free(tmpStr); 1885 } 1886 else 1887 stp_strs[0] = ""; 1888 if (pStruct->pApplicationInfo) { 1889 tmpStr = vk_print_vkapplicationinfo(pStruct->pApplicationInfo, extra_indent); 1890 len = 256+strlen(tmpStr)+strlen(prefix); 1891 stp_strs[1] = (char*)malloc(len); 1892 snprintf(stp_strs[1], len, " %spApplicationInfo (0x%p)\n%s", prefix, (void*)pStruct->pApplicationInfo, tmpStr); 1893 } 1894 else 1895 stp_strs[1] = ""; 1896 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 1897 str = (char*)malloc(len); 1898 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%spApplicationInfo = 0x%p\n%senabledLayerCount = %u\n%sppEnabledLayerNames = %s\n%senabledExtensionCount = %u\n%sppEnabledExtensionNames = %s\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, (void*)(pStruct->pApplicationInfo), prefix, (pStruct->enabledLayerCount), prefix, (pStruct->ppEnabledLayerNames)[0], prefix, (pStruct->enabledExtensionCount), prefix, (pStruct->ppEnabledExtensionNames)[0]); 1899 for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 1900 if (0 < strlen(stp_strs[stp_index])) { 1901 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 1902 free(stp_strs[stp_index]); 1903 } 1904 } 1905 free(extra_indent); 1906 return str; 1907 } 1908 char* vk_print_vklayerproperties(const VkLayerProperties* pStruct, const char* prefix) 1909 { 1910 char* str; 1911 size_t len; 1912 len = sizeof(char)*1024; 1913 str = (char*)malloc(len); 1914 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)); 1915 return str; 1916 } 1917 char* vk_print_vkmappedmemoryrange(const VkMappedMemoryRange* pStruct, const char* prefix) 1918 { 1919 char* str; 1920 size_t len; 1921 char* tmpStr; 1922 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 1923 strcpy(extra_indent, " "); 1924 strncat(extra_indent, prefix, strlen(prefix)); 1925 char* stp_strs[1]; 1926 if (pStruct->pNext) { 1927 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 1928 len = 256+strlen(tmpStr); 1929 stp_strs[0] = (char*)malloc(len); 1930 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 1931 free(tmpStr); 1932 } 1933 else 1934 stp_strs[0] = ""; 1935 len = strlen(stp_strs[0]) + sizeof(char)*1024; 1936 str = (char*)malloc(len); 1937 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%smemory = 0x%p\n%soffset = " PRINTF_SIZE_T_SPECIFIER "\n%ssize = " PRINTF_SIZE_T_SPECIFIER "\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (void*)(pStruct->memory), prefix, (pStruct->offset), prefix, (pStruct->size)); 1938 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 1939 if (0 < strlen(stp_strs[stp_index])) { 1940 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 1941 free(stp_strs[stp_index]); 1942 } 1943 } 1944 free(extra_indent); 1945 return str; 1946 } 1947 char* vk_print_vkmemoryallocateinfo(const VkMemoryAllocateInfo* pStruct, const char* prefix) 1948 { 1949 char* str; 1950 size_t len; 1951 char* tmpStr; 1952 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 1953 strcpy(extra_indent, " "); 1954 strncat(extra_indent, prefix, strlen(prefix)); 1955 char* stp_strs[1]; 1956 if (pStruct->pNext) { 1957 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 1958 len = 256+strlen(tmpStr); 1959 stp_strs[0] = (char*)malloc(len); 1960 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 1961 free(tmpStr); 1962 } 1963 else 1964 stp_strs[0] = ""; 1965 len = strlen(stp_strs[0]) + sizeof(char)*1024; 1966 str = (char*)malloc(len); 1967 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sallocationSize = " PRINTF_SIZE_T_SPECIFIER "\n%smemoryTypeIndex = %u\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->allocationSize), prefix, (pStruct->memoryTypeIndex)); 1968 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 1969 if (0 < strlen(stp_strs[stp_index])) { 1970 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 1971 free(stp_strs[stp_index]); 1972 } 1973 } 1974 free(extra_indent); 1975 return str; 1976 } 1977 char* vk_print_vkmemorybarrier(const VkMemoryBarrier* pStruct, const char* prefix) 1978 { 1979 char* str; 1980 size_t len; 1981 char* tmpStr; 1982 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 1983 strcpy(extra_indent, " "); 1984 strncat(extra_indent, prefix, strlen(prefix)); 1985 char* stp_strs[1]; 1986 if (pStruct->pNext) { 1987 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 1988 len = 256+strlen(tmpStr); 1989 stp_strs[0] = (char*)malloc(len); 1990 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 1991 free(tmpStr); 1992 } 1993 else 1994 stp_strs[0] = ""; 1995 len = strlen(stp_strs[0]) + sizeof(char)*1024; 1996 str = (char*)malloc(len); 1997 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%ssrcAccessMask = %u\n%sdstAccessMask = %u\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->srcAccessMask), prefix, (pStruct->dstAccessMask)); 1998 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 1999 if (0 < strlen(stp_strs[stp_index])) { 2000 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 2001 free(stp_strs[stp_index]); 2002 } 2003 } 2004 free(extra_indent); 2005 return str; 2006 } 2007 char* vk_print_vkmemoryheap(const VkMemoryHeap* pStruct, const char* prefix) 2008 { 2009 char* str; 2010 size_t len; 2011 len = sizeof(char)*1024; 2012 str = (char*)malloc(len); 2013 snprintf(str, len, "%ssize = " PRINTF_SIZE_T_SPECIFIER "\n%sflags = %u\n", prefix, (pStruct->size), prefix, (pStruct->flags)); 2014 return str; 2015 } 2016 char* vk_print_vkmemoryrequirements(const VkMemoryRequirements* pStruct, const char* prefix) 2017 { 2018 char* str; 2019 size_t len; 2020 len = sizeof(char)*1024; 2021 str = (char*)malloc(len); 2022 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)); 2023 return str; 2024 } 2025 char* vk_print_vkmemorytype(const VkMemoryType* pStruct, const char* prefix) 2026 { 2027 char* str; 2028 size_t len; 2029 len = sizeof(char)*1024; 2030 str = (char*)malloc(len); 2031 snprintf(str, len, "%spropertyFlags = %u\n%sheapIndex = %u\n", prefix, (pStruct->propertyFlags), prefix, (pStruct->heapIndex)); 2032 return str; 2033 } 2034 char* vk_print_vkmirsurfacecreateinfokhr(const VkMirSurfaceCreateInfoKHR* pStruct, const char* prefix) 2035 { 2036 char* str; 2037 size_t len; 2038 char* tmpStr; 2039 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 2040 strcpy(extra_indent, " "); 2041 strncat(extra_indent, prefix, strlen(prefix)); 2042 char* stp_strs[1]; 2043 if (pStruct->pNext) { 2044 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 2045 len = 256+strlen(tmpStr); 2046 stp_strs[0] = (char*)malloc(len); 2047 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 2048 free(tmpStr); 2049 } 2050 else 2051 stp_strs[0] = ""; 2052 len = strlen(stp_strs[0]) + sizeof(char)*1024; 2053 str = (char*)malloc(len); 2054 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%sconnection = 0x%p\n%smirSurface = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, (pStruct->connection), prefix, (pStruct->mirSurface)); 2055 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 2056 if (0 < strlen(stp_strs[stp_index])) { 2057 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 2058 free(stp_strs[stp_index]); 2059 } 2060 } 2061 free(extra_indent); 2062 return str; 2063 } 2064 char* vk_print_vkoffset2d(const VkOffset2D* pStruct, const char* prefix) 2065 { 2066 char* str; 2067 size_t len; 2068 len = sizeof(char)*1024; 2069 str = (char*)malloc(len); 2070 snprintf(str, len, "%sx = %i\n%sy = %i\n", prefix, (pStruct->x), prefix, (pStruct->y)); 2071 return str; 2072 } 2073 char* vk_print_vkoffset3d(const VkOffset3D* pStruct, const char* prefix) 2074 { 2075 char* str; 2076 size_t len; 2077 len = sizeof(char)*1024; 2078 str = (char*)malloc(len); 2079 snprintf(str, len, "%sx = %i\n%sy = %i\n%sz = %i\n", prefix, (pStruct->x), prefix, (pStruct->y), prefix, (pStruct->z)); 2080 return str; 2081 } 2082 char* vk_print_vkphysicaldevicefeatures(const VkPhysicalDeviceFeatures* pStruct, const char* prefix) 2083 { 2084 char* str; 2085 size_t len; 2086 len = sizeof(char)*1024; 2087 str = (char*)malloc(len); 2088 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"); 2089 return str; 2090 } 2091 char* vk_print_vkphysicaldevicelimits(const VkPhysicalDeviceLimits* pStruct, const char* prefix) 2092 { 2093 char* str; 2094 size_t len; 2095 len = sizeof(char)*1024; 2096 str = (char*)malloc(len); 2097 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 = 0x%p\n%smaxComputeWorkGroupInvocations = %u\n%smaxComputeWorkGroupSize = 0x%p\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 = 0x%p\n%sviewportBoundsRange = 0x%p\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 = 0x%p\n%slineWidthRange = 0x%p\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, (void*)(pStruct->maxComputeWorkGroupCount), prefix, (pStruct->maxComputeWorkGroupInvocations), prefix, (void*)(pStruct->maxComputeWorkGroupSize), 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, (void*)(pStruct->maxViewportDimensions), prefix, (void*)(pStruct->viewportBoundsRange), 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, (void*)(pStruct->pointSizeRange), prefix, (void*)(pStruct->lineWidthRange), 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)); 2098 return str; 2099 } 2100 char* vk_print_vkphysicaldevicememoryproperties(const VkPhysicalDeviceMemoryProperties* pStruct, const char* prefix) 2101 { 2102 char* str; 2103 size_t len; 2104 char* tmpStr; 2105 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 2106 strcpy(extra_indent, " "); 2107 strncat(extra_indent, prefix, strlen(prefix)); 2108 char* stp_strs[2]; 2109 tmpStr = vk_print_vkmemorytype(&pStruct->memoryTypes[0], extra_indent); 2110 len = 256+strlen(tmpStr); 2111 stp_strs[0] = (char*)malloc(len); 2112 snprintf(stp_strs[0], len, " %smemoryTypes[0] (0x%p)\n%s", prefix, (void*)&pStruct->memoryTypes[0], tmpStr); 2113 tmpStr = vk_print_vkmemoryheap(&pStruct->memoryHeaps[0], extra_indent); 2114 len = 256+strlen(tmpStr); 2115 stp_strs[1] = (char*)malloc(len); 2116 snprintf(stp_strs[1], len, " %smemoryHeaps[0] (0x%p)\n%s", prefix, (void*)&pStruct->memoryHeaps[0], tmpStr); 2117 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 2118 str = (char*)malloc(len); 2119 snprintf(str, len, "%smemoryTypeCount = %u\n%smemoryTypes = 0x%p\n%smemoryHeapCount = %u\n%smemoryHeaps = 0x%p\n", prefix, (pStruct->memoryTypeCount), prefix, (void*)(pStruct->memoryTypes), prefix, (pStruct->memoryHeapCount), prefix, (void*)(pStruct->memoryHeaps)); 2120 for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 2121 if (0 < strlen(stp_strs[stp_index])) { 2122 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 2123 free(stp_strs[stp_index]); 2124 } 2125 } 2126 free(extra_indent); 2127 return str; 2128 } 2129 char* vk_print_vkphysicaldeviceproperties(const VkPhysicalDeviceProperties* pStruct, const char* prefix) 2130 { 2131 char* str; 2132 size_t len; 2133 char* tmpStr; 2134 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 2135 strcpy(extra_indent, " "); 2136 strncat(extra_indent, prefix, strlen(prefix)); 2137 char* stp_strs[2]; 2138 tmpStr = vk_print_vkphysicaldevicelimits(&pStruct->limits, extra_indent); 2139 len = 256+strlen(tmpStr); 2140 stp_strs[0] = (char*)malloc(len); 2141 snprintf(stp_strs[0], len, " %slimits (0x%p)\n%s", prefix, (void*)&pStruct->limits, tmpStr); 2142 tmpStr = vk_print_vkphysicaldevicesparseproperties(&pStruct->sparseProperties, extra_indent); 2143 len = 256+strlen(tmpStr); 2144 stp_strs[1] = (char*)malloc(len); 2145 snprintf(stp_strs[1], len, " %ssparseProperties (0x%p)\n%s", prefix, (void*)&pStruct->sparseProperties, tmpStr); 2146 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 2147 str = (char*)malloc(len); 2148 snprintf(str, len, "%sapiVersion = %u\n%sdriverVersion = %u\n%svendorID = %u\n%sdeviceID = %u\n%sdeviceType = %s\n%sdeviceName = %s\n%spipelineCacheUUID = 0x%p\n%slimits = 0x%p\n%ssparseProperties = 0x%p\n", prefix, (pStruct->apiVersion), prefix, (pStruct->driverVersion), prefix, (pStruct->vendorID), prefix, (pStruct->deviceID), prefix, string_VkPhysicalDeviceType(pStruct->deviceType), prefix, (pStruct->deviceName), prefix, (void*)(pStruct->pipelineCacheUUID), prefix, (void*)&(pStruct->limits), prefix, (void*)&(pStruct->sparseProperties)); 2149 for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 2150 if (0 < strlen(stp_strs[stp_index])) { 2151 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 2152 free(stp_strs[stp_index]); 2153 } 2154 } 2155 free(extra_indent); 2156 return str; 2157 } 2158 char* vk_print_vkphysicaldevicesparseproperties(const VkPhysicalDeviceSparseProperties* pStruct, const char* prefix) 2159 { 2160 char* str; 2161 size_t len; 2162 len = sizeof(char)*1024; 2163 str = (char*)malloc(len); 2164 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"); 2165 return str; 2166 } 2167 char* vk_print_vkpipelinecachecreateinfo(const VkPipelineCacheCreateInfo* pStruct, const char* prefix) 2168 { 2169 char* str; 2170 size_t len; 2171 char* tmpStr; 2172 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 2173 strcpy(extra_indent, " "); 2174 strncat(extra_indent, prefix, strlen(prefix)); 2175 char* stp_strs[1]; 2176 if (pStruct->pNext) { 2177 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 2178 len = 256+strlen(tmpStr); 2179 stp_strs[0] = (char*)malloc(len); 2180 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 2181 free(tmpStr); 2182 } 2183 else 2184 stp_strs[0] = ""; 2185 len = strlen(stp_strs[0]) + sizeof(char)*1024; 2186 str = (char*)malloc(len); 2187 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%sinitialDataSize = " PRINTF_SIZE_T_SPECIFIER "\n%spInitialData = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, (pStruct->initialDataSize), prefix, (pStruct->pInitialData)); 2188 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 2189 if (0 < strlen(stp_strs[stp_index])) { 2190 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 2191 free(stp_strs[stp_index]); 2192 } 2193 } 2194 free(extra_indent); 2195 return str; 2196 } 2197 char* vk_print_vkpipelinecolorblendattachmentstate(const VkPipelineColorBlendAttachmentState* pStruct, const char* prefix) 2198 { 2199 char* str; 2200 size_t len; 2201 len = sizeof(char)*1024; 2202 str = (char*)malloc(len); 2203 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)); 2204 return str; 2205 } 2206 char* vk_print_vkpipelinecolorblendstatecreateinfo(const VkPipelineColorBlendStateCreateInfo* pStruct, const char* prefix) 2207 { 2208 char* str; 2209 size_t len; 2210 char* tmpStr; 2211 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 2212 strcpy(extra_indent, " "); 2213 strncat(extra_indent, prefix, strlen(prefix)); 2214 char* stp_strs[2]; 2215 if (pStruct->pNext) { 2216 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 2217 len = 256+strlen(tmpStr); 2218 stp_strs[0] = (char*)malloc(len); 2219 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 2220 free(tmpStr); 2221 } 2222 else 2223 stp_strs[0] = ""; 2224 if (pStruct->pAttachments) { 2225 tmpStr = vk_print_vkpipelinecolorblendattachmentstate(pStruct->pAttachments, extra_indent); 2226 len = 256+strlen(tmpStr)+strlen(prefix); 2227 stp_strs[1] = (char*)malloc(len); 2228 snprintf(stp_strs[1], len, " %spAttachments (0x%p)\n%s", prefix, (void*)pStruct->pAttachments, tmpStr); 2229 } 2230 else 2231 stp_strs[1] = ""; 2232 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 2233 str = (char*)malloc(len); 2234 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%slogicOpEnable = %s\n%slogicOp = %s\n%sattachmentCount = %u\n%spAttachments = 0x%p\n%sblendConstants = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, (pStruct->logicOpEnable) ? "TRUE" : "FALSE", prefix, string_VkLogicOp(pStruct->logicOp), prefix, (pStruct->attachmentCount), prefix, (void*)(pStruct->pAttachments), prefix, (void*)(pStruct->blendConstants)); 2235 for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 2236 if (0 < strlen(stp_strs[stp_index])) { 2237 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 2238 free(stp_strs[stp_index]); 2239 } 2240 } 2241 free(extra_indent); 2242 return str; 2243 } 2244 char* vk_print_vkpipelinedepthstencilstatecreateinfo(const VkPipelineDepthStencilStateCreateInfo* pStruct, const char* prefix) 2245 { 2246 char* str; 2247 size_t len; 2248 char* tmpStr; 2249 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 2250 strcpy(extra_indent, " "); 2251 strncat(extra_indent, prefix, strlen(prefix)); 2252 char* stp_strs[3]; 2253 if (pStruct->pNext) { 2254 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 2255 len = 256+strlen(tmpStr); 2256 stp_strs[0] = (char*)malloc(len); 2257 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 2258 free(tmpStr); 2259 } 2260 else 2261 stp_strs[0] = ""; 2262 tmpStr = vk_print_vkstencilopstate(&pStruct->front, extra_indent); 2263 len = 256+strlen(tmpStr); 2264 stp_strs[1] = (char*)malloc(len); 2265 snprintf(stp_strs[1], len, " %sfront (0x%p)\n%s", prefix, (void*)&pStruct->front, tmpStr); 2266 tmpStr = vk_print_vkstencilopstate(&pStruct->back, extra_indent); 2267 len = 256+strlen(tmpStr); 2268 stp_strs[2] = (char*)malloc(len); 2269 snprintf(stp_strs[2], len, " %sback (0x%p)\n%s", prefix, (void*)&pStruct->back, tmpStr); 2270 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + sizeof(char)*1024; 2271 str = (char*)malloc(len); 2272 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%sdepthTestEnable = %s\n%sdepthWriteEnable = %s\n%sdepthCompareOp = %s\n%sdepthBoundsTestEnable = %s\n%sstencilTestEnable = %s\n%sfront = 0x%p\n%sback = 0x%p\n%sminDepthBounds = %f\n%smaxDepthBounds = %f\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), 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, (void*)&(pStruct->front), prefix, (void*)&(pStruct->back), prefix, (pStruct->minDepthBounds), prefix, (pStruct->maxDepthBounds)); 2273 for (int32_t stp_index = 2; stp_index >= 0; stp_index--) { 2274 if (0 < strlen(stp_strs[stp_index])) { 2275 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 2276 free(stp_strs[stp_index]); 2277 } 2278 } 2279 free(extra_indent); 2280 return str; 2281 } 2282 char* vk_print_vkpipelinedynamicstatecreateinfo(const VkPipelineDynamicStateCreateInfo* pStruct, const char* prefix) 2283 { 2284 char* str; 2285 size_t len; 2286 char* tmpStr; 2287 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 2288 strcpy(extra_indent, " "); 2289 strncat(extra_indent, prefix, strlen(prefix)); 2290 char* stp_strs[1]; 2291 if (pStruct->pNext) { 2292 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 2293 len = 256+strlen(tmpStr); 2294 stp_strs[0] = (char*)malloc(len); 2295 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 2296 free(tmpStr); 2297 } 2298 else 2299 stp_strs[0] = ""; 2300 len = strlen(stp_strs[0]) + sizeof(char)*1024; 2301 str = (char*)malloc(len); 2302 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%sdynamicStateCount = %u\n%spDynamicStates = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, (pStruct->dynamicStateCount), prefix, (void*)(pStruct->pDynamicStates)); 2303 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 2304 if (0 < strlen(stp_strs[stp_index])) { 2305 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 2306 free(stp_strs[stp_index]); 2307 } 2308 } 2309 free(extra_indent); 2310 return str; 2311 } 2312 char* vk_print_vkpipelineinputassemblystatecreateinfo(const VkPipelineInputAssemblyStateCreateInfo* pStruct, const char* prefix) 2313 { 2314 char* str; 2315 size_t len; 2316 char* tmpStr; 2317 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 2318 strcpy(extra_indent, " "); 2319 strncat(extra_indent, prefix, strlen(prefix)); 2320 char* stp_strs[1]; 2321 if (pStruct->pNext) { 2322 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 2323 len = 256+strlen(tmpStr); 2324 stp_strs[0] = (char*)malloc(len); 2325 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 2326 free(tmpStr); 2327 } 2328 else 2329 stp_strs[0] = ""; 2330 len = strlen(stp_strs[0]) + sizeof(char)*1024; 2331 str = (char*)malloc(len); 2332 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%stopology = %s\n%sprimitiveRestartEnable = %s\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, string_VkPrimitiveTopology(pStruct->topology), prefix, (pStruct->primitiveRestartEnable) ? "TRUE" : "FALSE"); 2333 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 2334 if (0 < strlen(stp_strs[stp_index])) { 2335 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 2336 free(stp_strs[stp_index]); 2337 } 2338 } 2339 free(extra_indent); 2340 return str; 2341 } 2342 char* vk_print_vkpipelinelayoutcreateinfo(const VkPipelineLayoutCreateInfo* pStruct, const char* prefix) 2343 { 2344 char* str; 2345 size_t len; 2346 char* tmpStr; 2347 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 2348 strcpy(extra_indent, " "); 2349 strncat(extra_indent, prefix, strlen(prefix)); 2350 char* stp_strs[2]; 2351 if (pStruct->pNext) { 2352 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 2353 len = 256+strlen(tmpStr); 2354 stp_strs[0] = (char*)malloc(len); 2355 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 2356 free(tmpStr); 2357 } 2358 else 2359 stp_strs[0] = ""; 2360 if (pStruct->pPushConstantRanges) { 2361 tmpStr = vk_print_vkpushconstantrange(pStruct->pPushConstantRanges, extra_indent); 2362 len = 256+strlen(tmpStr)+strlen(prefix); 2363 stp_strs[1] = (char*)malloc(len); 2364 snprintf(stp_strs[1], len, " %spPushConstantRanges (0x%p)\n%s", prefix, (void*)pStruct->pPushConstantRanges, tmpStr); 2365 } 2366 else 2367 stp_strs[1] = ""; 2368 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 2369 str = (char*)malloc(len); 2370 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%ssetLayoutCount = %u\n%spSetLayouts = 0x%p\n%spushConstantRangeCount = %u\n%spPushConstantRanges = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, (pStruct->setLayoutCount), prefix, (void*)(pStruct->pSetLayouts), prefix, (pStruct->pushConstantRangeCount), prefix, (void*)(pStruct->pPushConstantRanges)); 2371 for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 2372 if (0 < strlen(stp_strs[stp_index])) { 2373 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 2374 free(stp_strs[stp_index]); 2375 } 2376 } 2377 free(extra_indent); 2378 return str; 2379 } 2380 char* vk_print_vkpipelinemultisamplestatecreateinfo(const VkPipelineMultisampleStateCreateInfo* pStruct, const char* prefix) 2381 { 2382 char* str; 2383 size_t len; 2384 char* tmpStr; 2385 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 2386 strcpy(extra_indent, " "); 2387 strncat(extra_indent, prefix, strlen(prefix)); 2388 char* stp_strs[1]; 2389 if (pStruct->pNext) { 2390 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 2391 len = 256+strlen(tmpStr); 2392 stp_strs[0] = (char*)malloc(len); 2393 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 2394 free(tmpStr); 2395 } 2396 else 2397 stp_strs[0] = ""; 2398 len = strlen(stp_strs[0]) + sizeof(char)*1024; 2399 str = (char*)malloc(len); 2400 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\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, (pStruct->pNext), 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"); 2401 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 2402 if (0 < strlen(stp_strs[stp_index])) { 2403 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 2404 free(stp_strs[stp_index]); 2405 } 2406 } 2407 free(extra_indent); 2408 return str; 2409 } 2410 char* vk_print_vkpipelinerasterizationstatecreateinfo(const VkPipelineRasterizationStateCreateInfo* pStruct, const char* prefix) 2411 { 2412 char* str; 2413 size_t len; 2414 char* tmpStr; 2415 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 2416 strcpy(extra_indent, " "); 2417 strncat(extra_indent, prefix, strlen(prefix)); 2418 char* stp_strs[1]; 2419 if (pStruct->pNext) { 2420 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 2421 len = 256+strlen(tmpStr); 2422 stp_strs[0] = (char*)malloc(len); 2423 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 2424 free(tmpStr); 2425 } 2426 else 2427 stp_strs[0] = ""; 2428 len = strlen(stp_strs[0]) + sizeof(char)*1024; 2429 str = (char*)malloc(len); 2430 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\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, (pStruct->pNext), 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)); 2431 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 2432 if (0 < strlen(stp_strs[stp_index])) { 2433 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 2434 free(stp_strs[stp_index]); 2435 } 2436 } 2437 free(extra_indent); 2438 return str; 2439 } 2440 char* vk_print_vkpipelinerasterizationstaterasterizationorderamd(const VkPipelineRasterizationStateRasterizationOrderAMD* pStruct, const char* prefix) 2441 { 2442 char* str; 2443 size_t len; 2444 char* tmpStr; 2445 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 2446 strcpy(extra_indent, " "); 2447 strncat(extra_indent, prefix, strlen(prefix)); 2448 char* stp_strs[1]; 2449 if (pStruct->pNext) { 2450 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 2451 len = 256+strlen(tmpStr); 2452 stp_strs[0] = (char*)malloc(len); 2453 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 2454 free(tmpStr); 2455 } 2456 else 2457 stp_strs[0] = ""; 2458 len = strlen(stp_strs[0]) + sizeof(char)*1024; 2459 str = (char*)malloc(len); 2460 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%srasterizationOrder = %s\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, string_VkRasterizationOrderAMD(pStruct->rasterizationOrder)); 2461 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 2462 if (0 < strlen(stp_strs[stp_index])) { 2463 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 2464 free(stp_strs[stp_index]); 2465 } 2466 } 2467 free(extra_indent); 2468 return str; 2469 } 2470 char* vk_print_vkpipelineshaderstagecreateinfo(const VkPipelineShaderStageCreateInfo* pStruct, const char* prefix) 2471 { 2472 char* str; 2473 size_t len; 2474 char* tmpStr; 2475 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 2476 strcpy(extra_indent, " "); 2477 strncat(extra_indent, prefix, strlen(prefix)); 2478 char* stp_strs[2]; 2479 if (pStruct->pNext) { 2480 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 2481 len = 256+strlen(tmpStr); 2482 stp_strs[0] = (char*)malloc(len); 2483 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 2484 free(tmpStr); 2485 } 2486 else 2487 stp_strs[0] = ""; 2488 if (pStruct->pSpecializationInfo) { 2489 tmpStr = vk_print_vkspecializationinfo(pStruct->pSpecializationInfo, extra_indent); 2490 len = 256+strlen(tmpStr)+strlen(prefix); 2491 stp_strs[1] = (char*)malloc(len); 2492 snprintf(stp_strs[1], len, " %spSpecializationInfo (0x%p)\n%s", prefix, (void*)pStruct->pSpecializationInfo, tmpStr); 2493 } 2494 else 2495 stp_strs[1] = ""; 2496 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 2497 str = (char*)malloc(len); 2498 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%sstage = %s\n%smodule = 0x%p\n%spName = 0x%p\n%spSpecializationInfo = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, string_VkShaderStageFlagBits(pStruct->stage), prefix, (void*)(pStruct->module), prefix, (pStruct->pName), prefix, (void*)(pStruct->pSpecializationInfo)); 2499 for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 2500 if (0 < strlen(stp_strs[stp_index])) { 2501 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 2502 free(stp_strs[stp_index]); 2503 } 2504 } 2505 free(extra_indent); 2506 return str; 2507 } 2508 char* vk_print_vkpipelinetessellationstatecreateinfo(const VkPipelineTessellationStateCreateInfo* pStruct, const char* prefix) 2509 { 2510 char* str; 2511 size_t len; 2512 char* tmpStr; 2513 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 2514 strcpy(extra_indent, " "); 2515 strncat(extra_indent, prefix, strlen(prefix)); 2516 char* stp_strs[1]; 2517 if (pStruct->pNext) { 2518 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 2519 len = 256+strlen(tmpStr); 2520 stp_strs[0] = (char*)malloc(len); 2521 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 2522 free(tmpStr); 2523 } 2524 else 2525 stp_strs[0] = ""; 2526 len = strlen(stp_strs[0]) + sizeof(char)*1024; 2527 str = (char*)malloc(len); 2528 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%spatchControlPoints = %u\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, (pStruct->patchControlPoints)); 2529 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 2530 if (0 < strlen(stp_strs[stp_index])) { 2531 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 2532 free(stp_strs[stp_index]); 2533 } 2534 } 2535 free(extra_indent); 2536 return str; 2537 } 2538 char* vk_print_vkpipelinevertexinputstatecreateinfo(const VkPipelineVertexInputStateCreateInfo* pStruct, const char* prefix) 2539 { 2540 char* str; 2541 size_t len; 2542 char* tmpStr; 2543 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 2544 strcpy(extra_indent, " "); 2545 strncat(extra_indent, prefix, strlen(prefix)); 2546 char* stp_strs[3]; 2547 if (pStruct->pNext) { 2548 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 2549 len = 256+strlen(tmpStr); 2550 stp_strs[0] = (char*)malloc(len); 2551 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 2552 free(tmpStr); 2553 } 2554 else 2555 stp_strs[0] = ""; 2556 if (pStruct->pVertexBindingDescriptions) { 2557 tmpStr = vk_print_vkvertexinputbindingdescription(pStruct->pVertexBindingDescriptions, extra_indent); 2558 len = 256+strlen(tmpStr)+strlen(prefix); 2559 stp_strs[1] = (char*)malloc(len); 2560 snprintf(stp_strs[1], len, " %spVertexBindingDescriptions (0x%p)\n%s", prefix, (void*)pStruct->pVertexBindingDescriptions, tmpStr); 2561 } 2562 else 2563 stp_strs[1] = ""; 2564 if (pStruct->pVertexAttributeDescriptions) { 2565 tmpStr = vk_print_vkvertexinputattributedescription(pStruct->pVertexAttributeDescriptions, extra_indent); 2566 len = 256+strlen(tmpStr)+strlen(prefix); 2567 stp_strs[2] = (char*)malloc(len); 2568 snprintf(stp_strs[2], len, " %spVertexAttributeDescriptions (0x%p)\n%s", prefix, (void*)pStruct->pVertexAttributeDescriptions, tmpStr); 2569 } 2570 else 2571 stp_strs[2] = ""; 2572 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + sizeof(char)*1024; 2573 str = (char*)malloc(len); 2574 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%svertexBindingDescriptionCount = %u\n%spVertexBindingDescriptions = 0x%p\n%svertexAttributeDescriptionCount = %u\n%spVertexAttributeDescriptions = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, (pStruct->vertexBindingDescriptionCount), prefix, (void*)(pStruct->pVertexBindingDescriptions), prefix, (pStruct->vertexAttributeDescriptionCount), prefix, (void*)(pStruct->pVertexAttributeDescriptions)); 2575 for (int32_t stp_index = 2; stp_index >= 0; stp_index--) { 2576 if (0 < strlen(stp_strs[stp_index])) { 2577 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 2578 free(stp_strs[stp_index]); 2579 } 2580 } 2581 free(extra_indent); 2582 return str; 2583 } 2584 char* vk_print_vkpipelineviewportstatecreateinfo(const VkPipelineViewportStateCreateInfo* pStruct, const char* prefix) 2585 { 2586 char* str; 2587 size_t len; 2588 char* tmpStr; 2589 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 2590 strcpy(extra_indent, " "); 2591 strncat(extra_indent, prefix, strlen(prefix)); 2592 char* stp_strs[3]; 2593 if (pStruct->pNext) { 2594 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 2595 len = 256+strlen(tmpStr); 2596 stp_strs[0] = (char*)malloc(len); 2597 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 2598 free(tmpStr); 2599 } 2600 else 2601 stp_strs[0] = ""; 2602 if (pStruct->pViewports) { 2603 tmpStr = vk_print_vkviewport(pStruct->pViewports, extra_indent); 2604 len = 256+strlen(tmpStr)+strlen(prefix); 2605 stp_strs[1] = (char*)malloc(len); 2606 snprintf(stp_strs[1], len, " %spViewports (0x%p)\n%s", prefix, (void*)pStruct->pViewports, tmpStr); 2607 } 2608 else 2609 stp_strs[1] = ""; 2610 if (pStruct->pScissors) { 2611 tmpStr = vk_print_vkrect2d(pStruct->pScissors, extra_indent); 2612 len = 256+strlen(tmpStr)+strlen(prefix); 2613 stp_strs[2] = (char*)malloc(len); 2614 snprintf(stp_strs[2], len, " %spScissors (0x%p)\n%s", prefix, (void*)pStruct->pScissors, tmpStr); 2615 } 2616 else 2617 stp_strs[2] = ""; 2618 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + sizeof(char)*1024; 2619 str = (char*)malloc(len); 2620 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%sviewportCount = %u\n%spViewports = 0x%p\n%sscissorCount = %u\n%spScissors = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, (pStruct->viewportCount), prefix, (void*)(pStruct->pViewports), prefix, (pStruct->scissorCount), prefix, (void*)(pStruct->pScissors)); 2621 for (int32_t stp_index = 2; stp_index >= 0; stp_index--) { 2622 if (0 < strlen(stp_strs[stp_index])) { 2623 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 2624 free(stp_strs[stp_index]); 2625 } 2626 } 2627 free(extra_indent); 2628 return str; 2629 } 2630 char* vk_print_vkpresentinfokhr(const VkPresentInfoKHR* pStruct, const char* prefix) 2631 { 2632 char* str; 2633 size_t len; 2634 char* tmpStr; 2635 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 2636 strcpy(extra_indent, " "); 2637 strncat(extra_indent, prefix, strlen(prefix)); 2638 char* stp_strs[1]; 2639 if (pStruct->pNext) { 2640 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 2641 len = 256+strlen(tmpStr); 2642 stp_strs[0] = (char*)malloc(len); 2643 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 2644 free(tmpStr); 2645 } 2646 else 2647 stp_strs[0] = ""; 2648 len = strlen(stp_strs[0]) + sizeof(char)*1024; 2649 str = (char*)malloc(len); 2650 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%swaitSemaphoreCount = %u\n%spWaitSemaphores = 0x%p\n%sswapchainCount = %u\n%spSwapchains = 0x%p\n%spImageIndices = 0x%p\n%spResults = 0x%s\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->waitSemaphoreCount), prefix, (void*)(pStruct->pWaitSemaphores), prefix, (pStruct->swapchainCount), prefix, (void*)(pStruct->pSwapchains), prefix, (void*)(pStruct->pImageIndices), prefix, string_VkResult(*pStruct->pResults)); 2651 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 2652 if (0 < strlen(stp_strs[stp_index])) { 2653 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 2654 free(stp_strs[stp_index]); 2655 } 2656 } 2657 free(extra_indent); 2658 return str; 2659 } 2660 char* vk_print_vkpushconstantrange(const VkPushConstantRange* pStruct, const char* prefix) 2661 { 2662 char* str; 2663 size_t len; 2664 len = sizeof(char)*1024; 2665 str = (char*)malloc(len); 2666 snprintf(str, len, "%sstageFlags = %u\n%soffset = %u\n%ssize = %u\n", prefix, (pStruct->stageFlags), prefix, (pStruct->offset), prefix, (pStruct->size)); 2667 return str; 2668 } 2669 char* vk_print_vkquerypoolcreateinfo(const VkQueryPoolCreateInfo* pStruct, const char* prefix) 2670 { 2671 char* str; 2672 size_t len; 2673 char* tmpStr; 2674 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 2675 strcpy(extra_indent, " "); 2676 strncat(extra_indent, prefix, strlen(prefix)); 2677 char* stp_strs[1]; 2678 if (pStruct->pNext) { 2679 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 2680 len = 256+strlen(tmpStr); 2681 stp_strs[0] = (char*)malloc(len); 2682 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 2683 free(tmpStr); 2684 } 2685 else 2686 stp_strs[0] = ""; 2687 len = strlen(stp_strs[0]) + sizeof(char)*1024; 2688 str = (char*)malloc(len); 2689 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%squeryType = %s\n%squeryCount = %u\n%spipelineStatistics = %u\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, string_VkQueryType(pStruct->queryType), prefix, (pStruct->queryCount), prefix, (pStruct->pipelineStatistics)); 2690 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 2691 if (0 < strlen(stp_strs[stp_index])) { 2692 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 2693 free(stp_strs[stp_index]); 2694 } 2695 } 2696 free(extra_indent); 2697 return str; 2698 } 2699 char* vk_print_vkqueuefamilyproperties(const VkQueueFamilyProperties* pStruct, const char* prefix) 2700 { 2701 char* str; 2702 size_t len; 2703 char* tmpStr; 2704 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 2705 strcpy(extra_indent, " "); 2706 strncat(extra_indent, prefix, strlen(prefix)); 2707 char* stp_strs[1]; 2708 tmpStr = vk_print_vkextent3d(&pStruct->minImageTransferGranularity, extra_indent); 2709 len = 256+strlen(tmpStr); 2710 stp_strs[0] = (char*)malloc(len); 2711 snprintf(stp_strs[0], len, " %sminImageTransferGranularity (0x%p)\n%s", prefix, (void*)&pStruct->minImageTransferGranularity, tmpStr); 2712 len = strlen(stp_strs[0]) + sizeof(char)*1024; 2713 str = (char*)malloc(len); 2714 snprintf(str, len, "%squeueFlags = %u\n%squeueCount = %u\n%stimestampValidBits = %u\n%sminImageTransferGranularity = 0x%p\n", prefix, (pStruct->queueFlags), prefix, (pStruct->queueCount), prefix, (pStruct->timestampValidBits), prefix, (void*)&(pStruct->minImageTransferGranularity)); 2715 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 2716 if (0 < strlen(stp_strs[stp_index])) { 2717 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 2718 free(stp_strs[stp_index]); 2719 } 2720 } 2721 free(extra_indent); 2722 return str; 2723 } 2724 char* vk_print_vkrect2d(const VkRect2D* pStruct, const char* prefix) 2725 { 2726 char* str; 2727 size_t len; 2728 char* tmpStr; 2729 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 2730 strcpy(extra_indent, " "); 2731 strncat(extra_indent, prefix, strlen(prefix)); 2732 char* stp_strs[2]; 2733 tmpStr = vk_print_vkoffset2d(&pStruct->offset, extra_indent); 2734 len = 256+strlen(tmpStr); 2735 stp_strs[0] = (char*)malloc(len); 2736 snprintf(stp_strs[0], len, " %soffset (0x%p)\n%s", prefix, (void*)&pStruct->offset, tmpStr); 2737 tmpStr = vk_print_vkextent2d(&pStruct->extent, extra_indent); 2738 len = 256+strlen(tmpStr); 2739 stp_strs[1] = (char*)malloc(len); 2740 snprintf(stp_strs[1], len, " %sextent (0x%p)\n%s", prefix, (void*)&pStruct->extent, tmpStr); 2741 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 2742 str = (char*)malloc(len); 2743 snprintf(str, len, "%soffset = 0x%p\n%sextent = 0x%p\n", prefix, (void*)&(pStruct->offset), prefix, (void*)&(pStruct->extent)); 2744 for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 2745 if (0 < strlen(stp_strs[stp_index])) { 2746 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 2747 free(stp_strs[stp_index]); 2748 } 2749 } 2750 free(extra_indent); 2751 return str; 2752 } 2753 char* vk_print_vkrenderpassbegininfo(const VkRenderPassBeginInfo* pStruct, const char* prefix) 2754 { 2755 char* str; 2756 size_t len; 2757 char* tmpStr; 2758 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 2759 strcpy(extra_indent, " "); 2760 strncat(extra_indent, prefix, strlen(prefix)); 2761 char* stp_strs[3]; 2762 if (pStruct->pNext) { 2763 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 2764 len = 256+strlen(tmpStr); 2765 stp_strs[0] = (char*)malloc(len); 2766 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 2767 free(tmpStr); 2768 } 2769 else 2770 stp_strs[0] = ""; 2771 tmpStr = vk_print_vkrect2d(&pStruct->renderArea, extra_indent); 2772 len = 256+strlen(tmpStr); 2773 stp_strs[1] = (char*)malloc(len); 2774 snprintf(stp_strs[1], len, " %srenderArea (0x%p)\n%s", prefix, (void*)&pStruct->renderArea, tmpStr); 2775 if (pStruct->pClearValues) { 2776 tmpStr = vk_print_vkclearvalue(pStruct->pClearValues, extra_indent); 2777 len = 256+strlen(tmpStr)+strlen(prefix); 2778 stp_strs[2] = (char*)malloc(len); 2779 snprintf(stp_strs[2], len, " %spClearValues (0x%p)\n%s", prefix, (void*)pStruct->pClearValues, tmpStr); 2780 } 2781 else 2782 stp_strs[2] = ""; 2783 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + sizeof(char)*1024; 2784 str = (char*)malloc(len); 2785 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%srenderPass = 0x%p\n%sframebuffer = 0x%p\n%srenderArea = 0x%p\n%sclearValueCount = %u\n%spClearValues = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (void*)(pStruct->renderPass), prefix, (void*)(pStruct->framebuffer), prefix, (void*)&(pStruct->renderArea), prefix, (pStruct->clearValueCount), prefix, (void*)(pStruct->pClearValues)); 2786 for (int32_t stp_index = 2; stp_index >= 0; stp_index--) { 2787 if (0 < strlen(stp_strs[stp_index])) { 2788 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 2789 free(stp_strs[stp_index]); 2790 } 2791 } 2792 free(extra_indent); 2793 return str; 2794 } 2795 char* vk_print_vkrenderpasscreateinfo(const VkRenderPassCreateInfo* pStruct, const char* prefix) 2796 { 2797 char* str; 2798 size_t len; 2799 char* tmpStr; 2800 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 2801 strcpy(extra_indent, " "); 2802 strncat(extra_indent, prefix, strlen(prefix)); 2803 char* stp_strs[4]; 2804 if (pStruct->pNext) { 2805 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 2806 len = 256+strlen(tmpStr); 2807 stp_strs[0] = (char*)malloc(len); 2808 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 2809 free(tmpStr); 2810 } 2811 else 2812 stp_strs[0] = ""; 2813 if (pStruct->pAttachments) { 2814 tmpStr = vk_print_vkattachmentdescription(pStruct->pAttachments, extra_indent); 2815 len = 256+strlen(tmpStr)+strlen(prefix); 2816 stp_strs[1] = (char*)malloc(len); 2817 snprintf(stp_strs[1], len, " %spAttachments (0x%p)\n%s", prefix, (void*)pStruct->pAttachments, tmpStr); 2818 } 2819 else 2820 stp_strs[1] = ""; 2821 if (pStruct->pSubpasses) { 2822 tmpStr = vk_print_vksubpassdescription(pStruct->pSubpasses, extra_indent); 2823 len = 256+strlen(tmpStr)+strlen(prefix); 2824 stp_strs[2] = (char*)malloc(len); 2825 snprintf(stp_strs[2], len, " %spSubpasses (0x%p)\n%s", prefix, (void*)pStruct->pSubpasses, tmpStr); 2826 } 2827 else 2828 stp_strs[2] = ""; 2829 if (pStruct->pDependencies) { 2830 tmpStr = vk_print_vksubpassdependency(pStruct->pDependencies, extra_indent); 2831 len = 256+strlen(tmpStr)+strlen(prefix); 2832 stp_strs[3] = (char*)malloc(len); 2833 snprintf(stp_strs[3], len, " %spDependencies (0x%p)\n%s", prefix, (void*)pStruct->pDependencies, tmpStr); 2834 } 2835 else 2836 stp_strs[3] = ""; 2837 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + strlen(stp_strs[3]) + sizeof(char)*1024; 2838 str = (char*)malloc(len); 2839 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%sattachmentCount = %u\n%spAttachments = 0x%p\n%ssubpassCount = %u\n%spSubpasses = 0x%p\n%sdependencyCount = %u\n%spDependencies = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, (pStruct->attachmentCount), prefix, (void*)(pStruct->pAttachments), prefix, (pStruct->subpassCount), prefix, (void*)(pStruct->pSubpasses), prefix, (pStruct->dependencyCount), prefix, (void*)(pStruct->pDependencies)); 2840 for (int32_t stp_index = 3; stp_index >= 0; stp_index--) { 2841 if (0 < strlen(stp_strs[stp_index])) { 2842 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 2843 free(stp_strs[stp_index]); 2844 } 2845 } 2846 free(extra_indent); 2847 return str; 2848 } 2849 char* vk_print_vksamplercreateinfo(const VkSamplerCreateInfo* pStruct, const char* prefix) 2850 { 2851 char* str; 2852 size_t len; 2853 char* tmpStr; 2854 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 2855 strcpy(extra_indent, " "); 2856 strncat(extra_indent, prefix, strlen(prefix)); 2857 char* stp_strs[1]; 2858 if (pStruct->pNext) { 2859 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 2860 len = 256+strlen(tmpStr); 2861 stp_strs[0] = (char*)malloc(len); 2862 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 2863 free(tmpStr); 2864 } 2865 else 2866 stp_strs[0] = ""; 2867 len = strlen(stp_strs[0]) + sizeof(char)*1024; 2868 str = (char*)malloc(len); 2869 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\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, (pStruct->pNext), 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"); 2870 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 2871 if (0 < strlen(stp_strs[stp_index])) { 2872 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 2873 free(stp_strs[stp_index]); 2874 } 2875 } 2876 free(extra_indent); 2877 return str; 2878 } 2879 char* vk_print_vksemaphorecreateinfo(const VkSemaphoreCreateInfo* pStruct, const char* prefix) 2880 { 2881 char* str; 2882 size_t len; 2883 char* tmpStr; 2884 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 2885 strcpy(extra_indent, " "); 2886 strncat(extra_indent, prefix, strlen(prefix)); 2887 char* stp_strs[1]; 2888 if (pStruct->pNext) { 2889 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 2890 len = 256+strlen(tmpStr); 2891 stp_strs[0] = (char*)malloc(len); 2892 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 2893 free(tmpStr); 2894 } 2895 else 2896 stp_strs[0] = ""; 2897 len = strlen(stp_strs[0]) + sizeof(char)*1024; 2898 str = (char*)malloc(len); 2899 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags)); 2900 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 2901 if (0 < strlen(stp_strs[stp_index])) { 2902 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 2903 free(stp_strs[stp_index]); 2904 } 2905 } 2906 free(extra_indent); 2907 return str; 2908 } 2909 char* vk_print_vkshadermodulecreateinfo(const VkShaderModuleCreateInfo* pStruct, const char* prefix) 2910 { 2911 char* str; 2912 size_t len; 2913 char* tmpStr; 2914 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 2915 strcpy(extra_indent, " "); 2916 strncat(extra_indent, prefix, strlen(prefix)); 2917 char* stp_strs[1]; 2918 if (pStruct->pNext) { 2919 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 2920 len = 256+strlen(tmpStr); 2921 stp_strs[0] = (char*)malloc(len); 2922 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 2923 free(tmpStr); 2924 } 2925 else 2926 stp_strs[0] = ""; 2927 len = strlen(stp_strs[0]) + sizeof(char)*1024; 2928 str = (char*)malloc(len); 2929 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%scodeSize = " PRINTF_SIZE_T_SPECIFIER "\n%spCode = %u\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, (pStruct->codeSize), prefix, (pStruct->pCode)); 2930 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 2931 if (0 < strlen(stp_strs[stp_index])) { 2932 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 2933 free(stp_strs[stp_index]); 2934 } 2935 } 2936 free(extra_indent); 2937 return str; 2938 } 2939 char* vk_print_vksparsebuffermemorybindinfo(const VkSparseBufferMemoryBindInfo* pStruct, const char* prefix) 2940 { 2941 char* str; 2942 size_t len; 2943 char* tmpStr; 2944 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 2945 strcpy(extra_indent, " "); 2946 strncat(extra_indent, prefix, strlen(prefix)); 2947 char* stp_strs[1]; 2948 if (pStruct->pBinds) { 2949 tmpStr = vk_print_vksparsememorybind(pStruct->pBinds, extra_indent); 2950 len = 256+strlen(tmpStr)+strlen(prefix); 2951 stp_strs[0] = (char*)malloc(len); 2952 snprintf(stp_strs[0], len, " %spBinds (0x%p)\n%s", prefix, (void*)pStruct->pBinds, tmpStr); 2953 } 2954 else 2955 stp_strs[0] = ""; 2956 len = strlen(stp_strs[0]) + sizeof(char)*1024; 2957 str = (char*)malloc(len); 2958 snprintf(str, len, "%sbuffer = 0x%p\n%sbindCount = %u\n%spBinds = 0x%p\n", prefix, (void*)(pStruct->buffer), prefix, (pStruct->bindCount), prefix, (void*)(pStruct->pBinds)); 2959 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 2960 if (0 < strlen(stp_strs[stp_index])) { 2961 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 2962 free(stp_strs[stp_index]); 2963 } 2964 } 2965 free(extra_indent); 2966 return str; 2967 } 2968 char* vk_print_vksparseimageformatproperties(const VkSparseImageFormatProperties* pStruct, const char* prefix) 2969 { 2970 char* str; 2971 size_t len; 2972 char* tmpStr; 2973 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 2974 strcpy(extra_indent, " "); 2975 strncat(extra_indent, prefix, strlen(prefix)); 2976 char* stp_strs[1]; 2977 tmpStr = vk_print_vkextent3d(&pStruct->imageGranularity, extra_indent); 2978 len = 256+strlen(tmpStr); 2979 stp_strs[0] = (char*)malloc(len); 2980 snprintf(stp_strs[0], len, " %simageGranularity (0x%p)\n%s", prefix, (void*)&pStruct->imageGranularity, tmpStr); 2981 len = strlen(stp_strs[0]) + sizeof(char)*1024; 2982 str = (char*)malloc(len); 2983 snprintf(str, len, "%saspectMask = %u\n%simageGranularity = 0x%p\n%sflags = %u\n", prefix, (pStruct->aspectMask), prefix, (void*)&(pStruct->imageGranularity), prefix, (pStruct->flags)); 2984 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 2985 if (0 < strlen(stp_strs[stp_index])) { 2986 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 2987 free(stp_strs[stp_index]); 2988 } 2989 } 2990 free(extra_indent); 2991 return str; 2992 } 2993 char* vk_print_vksparseimagememorybind(const VkSparseImageMemoryBind* pStruct, const char* prefix) 2994 { 2995 char* str; 2996 size_t len; 2997 char* tmpStr; 2998 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 2999 strcpy(extra_indent, " "); 3000 strncat(extra_indent, prefix, strlen(prefix)); 3001 char* stp_strs[3]; 3002 tmpStr = vk_print_vkimagesubresource(&pStruct->subresource, extra_indent); 3003 len = 256+strlen(tmpStr); 3004 stp_strs[0] = (char*)malloc(len); 3005 snprintf(stp_strs[0], len, " %ssubresource (0x%p)\n%s", prefix, (void*)&pStruct->subresource, tmpStr); 3006 tmpStr = vk_print_vkoffset3d(&pStruct->offset, extra_indent); 3007 len = 256+strlen(tmpStr); 3008 stp_strs[1] = (char*)malloc(len); 3009 snprintf(stp_strs[1], len, " %soffset (0x%p)\n%s", prefix, (void*)&pStruct->offset, tmpStr); 3010 tmpStr = vk_print_vkextent3d(&pStruct->extent, extra_indent); 3011 len = 256+strlen(tmpStr); 3012 stp_strs[2] = (char*)malloc(len); 3013 snprintf(stp_strs[2], len, " %sextent (0x%p)\n%s", prefix, (void*)&pStruct->extent, tmpStr); 3014 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + sizeof(char)*1024; 3015 str = (char*)malloc(len); 3016 snprintf(str, len, "%ssubresource = 0x%p\n%soffset = 0x%p\n%sextent = 0x%p\n%smemory = 0x%p\n%smemoryOffset = " PRINTF_SIZE_T_SPECIFIER "\n%sflags = %u\n", prefix, (void*)&(pStruct->subresource), prefix, (void*)&(pStruct->offset), prefix, (void*)&(pStruct->extent), prefix, (void*)(pStruct->memory), prefix, (pStruct->memoryOffset), prefix, (pStruct->flags)); 3017 for (int32_t stp_index = 2; stp_index >= 0; stp_index--) { 3018 if (0 < strlen(stp_strs[stp_index])) { 3019 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 3020 free(stp_strs[stp_index]); 3021 } 3022 } 3023 free(extra_indent); 3024 return str; 3025 } 3026 char* vk_print_vksparseimagememorybindinfo(const VkSparseImageMemoryBindInfo* pStruct, const char* prefix) 3027 { 3028 char* str; 3029 size_t len; 3030 char* tmpStr; 3031 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 3032 strcpy(extra_indent, " "); 3033 strncat(extra_indent, prefix, strlen(prefix)); 3034 char* stp_strs[1]; 3035 if (pStruct->pBinds) { 3036 tmpStr = vk_print_vksparseimagememorybind(pStruct->pBinds, extra_indent); 3037 len = 256+strlen(tmpStr)+strlen(prefix); 3038 stp_strs[0] = (char*)malloc(len); 3039 snprintf(stp_strs[0], len, " %spBinds (0x%p)\n%s", prefix, (void*)pStruct->pBinds, tmpStr); 3040 } 3041 else 3042 stp_strs[0] = ""; 3043 len = strlen(stp_strs[0]) + sizeof(char)*1024; 3044 str = (char*)malloc(len); 3045 snprintf(str, len, "%simage = 0x%p\n%sbindCount = %u\n%spBinds = 0x%p\n", prefix, (void*)(pStruct->image), prefix, (pStruct->bindCount), prefix, (void*)(pStruct->pBinds)); 3046 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 3047 if (0 < strlen(stp_strs[stp_index])) { 3048 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 3049 free(stp_strs[stp_index]); 3050 } 3051 } 3052 free(extra_indent); 3053 return str; 3054 } 3055 char* vk_print_vksparseimagememoryrequirements(const VkSparseImageMemoryRequirements* pStruct, const char* prefix) 3056 { 3057 char* str; 3058 size_t len; 3059 char* tmpStr; 3060 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 3061 strcpy(extra_indent, " "); 3062 strncat(extra_indent, prefix, strlen(prefix)); 3063 char* stp_strs[1]; 3064 tmpStr = vk_print_vksparseimageformatproperties(&pStruct->formatProperties, extra_indent); 3065 len = 256+strlen(tmpStr); 3066 stp_strs[0] = (char*)malloc(len); 3067 snprintf(stp_strs[0], len, " %sformatProperties (0x%p)\n%s", prefix, (void*)&pStruct->formatProperties, tmpStr); 3068 len = strlen(stp_strs[0]) + sizeof(char)*1024; 3069 str = (char*)malloc(len); 3070 snprintf(str, len, "%sformatProperties = 0x%p\n%simageMipTailFirstLod = %u\n%simageMipTailSize = " PRINTF_SIZE_T_SPECIFIER "\n%simageMipTailOffset = " PRINTF_SIZE_T_SPECIFIER "\n%simageMipTailStride = " PRINTF_SIZE_T_SPECIFIER "\n", prefix, (void*)&(pStruct->formatProperties), prefix, (pStruct->imageMipTailFirstLod), prefix, (pStruct->imageMipTailSize), prefix, (pStruct->imageMipTailOffset), prefix, (pStruct->imageMipTailStride)); 3071 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 3072 if (0 < strlen(stp_strs[stp_index])) { 3073 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 3074 free(stp_strs[stp_index]); 3075 } 3076 } 3077 free(extra_indent); 3078 return str; 3079 } 3080 char* vk_print_vksparseimageopaquememorybindinfo(const VkSparseImageOpaqueMemoryBindInfo* pStruct, const char* prefix) 3081 { 3082 char* str; 3083 size_t len; 3084 char* tmpStr; 3085 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 3086 strcpy(extra_indent, " "); 3087 strncat(extra_indent, prefix, strlen(prefix)); 3088 char* stp_strs[1]; 3089 if (pStruct->pBinds) { 3090 tmpStr = vk_print_vksparsememorybind(pStruct->pBinds, extra_indent); 3091 len = 256+strlen(tmpStr)+strlen(prefix); 3092 stp_strs[0] = (char*)malloc(len); 3093 snprintf(stp_strs[0], len, " %spBinds (0x%p)\n%s", prefix, (void*)pStruct->pBinds, tmpStr); 3094 } 3095 else 3096 stp_strs[0] = ""; 3097 len = strlen(stp_strs[0]) + sizeof(char)*1024; 3098 str = (char*)malloc(len); 3099 snprintf(str, len, "%simage = 0x%p\n%sbindCount = %u\n%spBinds = 0x%p\n", prefix, (void*)(pStruct->image), prefix, (pStruct->bindCount), prefix, (void*)(pStruct->pBinds)); 3100 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 3101 if (0 < strlen(stp_strs[stp_index])) { 3102 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 3103 free(stp_strs[stp_index]); 3104 } 3105 } 3106 free(extra_indent); 3107 return str; 3108 } 3109 char* vk_print_vksparsememorybind(const VkSparseMemoryBind* pStruct, const char* prefix) 3110 { 3111 char* str; 3112 size_t len; 3113 len = sizeof(char)*1024; 3114 str = (char*)malloc(len); 3115 snprintf(str, len, "%sresourceOffset = " PRINTF_SIZE_T_SPECIFIER "\n%ssize = " PRINTF_SIZE_T_SPECIFIER "\n%smemory = 0x%p\n%smemoryOffset = " PRINTF_SIZE_T_SPECIFIER "\n%sflags = %u\n", prefix, (pStruct->resourceOffset), prefix, (pStruct->size), prefix, (void*)(pStruct->memory), prefix, (pStruct->memoryOffset), prefix, (pStruct->flags)); 3116 return str; 3117 } 3118 char* vk_print_vkspecializationinfo(const VkSpecializationInfo* pStruct, const char* prefix) 3119 { 3120 char* str; 3121 size_t len; 3122 char* tmpStr; 3123 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 3124 strcpy(extra_indent, " "); 3125 strncat(extra_indent, prefix, strlen(prefix)); 3126 char* stp_strs[1]; 3127 if (pStruct->pMapEntries) { 3128 tmpStr = vk_print_vkspecializationmapentry(pStruct->pMapEntries, extra_indent); 3129 len = 256+strlen(tmpStr)+strlen(prefix); 3130 stp_strs[0] = (char*)malloc(len); 3131 snprintf(stp_strs[0], len, " %spMapEntries (0x%p)\n%s", prefix, (void*)pStruct->pMapEntries, tmpStr); 3132 } 3133 else 3134 stp_strs[0] = ""; 3135 len = strlen(stp_strs[0]) + sizeof(char)*1024; 3136 str = (char*)malloc(len); 3137 snprintf(str, len, "%smapEntryCount = %u\n%spMapEntries = 0x%p\n%sdataSize = " PRINTF_SIZE_T_SPECIFIER "\n%spData = 0x%p\n", prefix, (pStruct->mapEntryCount), prefix, (void*)(pStruct->pMapEntries), prefix, (pStruct->dataSize), prefix, (pStruct->pData)); 3138 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 3139 if (0 < strlen(stp_strs[stp_index])) { 3140 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 3141 free(stp_strs[stp_index]); 3142 } 3143 } 3144 free(extra_indent); 3145 return str; 3146 } 3147 char* vk_print_vkspecializationmapentry(const VkSpecializationMapEntry* pStruct, const char* prefix) 3148 { 3149 char* str; 3150 size_t len; 3151 len = sizeof(char)*1024; 3152 str = (char*)malloc(len); 3153 snprintf(str, len, "%sconstantID = %u\n%soffset = %u\n%ssize = " PRINTF_SIZE_T_SPECIFIER "\n", prefix, (pStruct->constantID), prefix, (pStruct->offset), prefix, (pStruct->size)); 3154 return str; 3155 } 3156 char* vk_print_vkstencilopstate(const VkStencilOpState* pStruct, const char* prefix) 3157 { 3158 char* str; 3159 size_t len; 3160 len = sizeof(char)*1024; 3161 str = (char*)malloc(len); 3162 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)); 3163 return str; 3164 } 3165 char* vk_print_vksubmitinfo(const VkSubmitInfo* pStruct, const char* prefix) 3166 { 3167 char* str; 3168 size_t len; 3169 char* tmpStr; 3170 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 3171 strcpy(extra_indent, " "); 3172 strncat(extra_indent, prefix, strlen(prefix)); 3173 char* stp_strs[1]; 3174 if (pStruct->pNext) { 3175 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 3176 len = 256+strlen(tmpStr); 3177 stp_strs[0] = (char*)malloc(len); 3178 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 3179 free(tmpStr); 3180 } 3181 else 3182 stp_strs[0] = ""; 3183 len = strlen(stp_strs[0]) + sizeof(char)*1024; 3184 str = (char*)malloc(len); 3185 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%swaitSemaphoreCount = %u\n%spWaitSemaphores = 0x%p\n%spWaitDstStageMask = %u\n%scommandBufferCount = %u\n%spCommandBuffers = 0x%p\n%ssignalSemaphoreCount = %u\n%spSignalSemaphores = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->waitSemaphoreCount), prefix, (void*)(pStruct->pWaitSemaphores), prefix, (pStruct->pWaitDstStageMask), prefix, (pStruct->commandBufferCount), prefix, (void*)(pStruct->pCommandBuffers), prefix, (pStruct->signalSemaphoreCount), prefix, (void*)(pStruct->pSignalSemaphores)); 3186 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 3187 if (0 < strlen(stp_strs[stp_index])) { 3188 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 3189 free(stp_strs[stp_index]); 3190 } 3191 } 3192 free(extra_indent); 3193 return str; 3194 } 3195 char* vk_print_vksubpassdependency(const VkSubpassDependency* pStruct, const char* prefix) 3196 { 3197 char* str; 3198 size_t len; 3199 len = sizeof(char)*1024; 3200 str = (char*)malloc(len); 3201 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)); 3202 return str; 3203 } 3204 char* vk_print_vksubpassdescription(const VkSubpassDescription* pStruct, const char* prefix) 3205 { 3206 char* str; 3207 size_t len; 3208 char* tmpStr; 3209 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 3210 strcpy(extra_indent, " "); 3211 strncat(extra_indent, prefix, strlen(prefix)); 3212 char* stp_strs[4]; 3213 if (pStruct->pInputAttachments) { 3214 tmpStr = vk_print_vkattachmentreference(pStruct->pInputAttachments, extra_indent); 3215 len = 256+strlen(tmpStr)+strlen(prefix); 3216 stp_strs[0] = (char*)malloc(len); 3217 snprintf(stp_strs[0], len, " %spInputAttachments (0x%p)\n%s", prefix, (void*)pStruct->pInputAttachments, tmpStr); 3218 } 3219 else 3220 stp_strs[0] = ""; 3221 if (pStruct->pColorAttachments) { 3222 tmpStr = vk_print_vkattachmentreference(pStruct->pColorAttachments, extra_indent); 3223 len = 256+strlen(tmpStr)+strlen(prefix); 3224 stp_strs[1] = (char*)malloc(len); 3225 snprintf(stp_strs[1], len, " %spColorAttachments (0x%p)\n%s", prefix, (void*)pStruct->pColorAttachments, tmpStr); 3226 } 3227 else 3228 stp_strs[1] = ""; 3229 if (pStruct->pResolveAttachments) { 3230 tmpStr = vk_print_vkattachmentreference(pStruct->pResolveAttachments, extra_indent); 3231 len = 256+strlen(tmpStr)+strlen(prefix); 3232 stp_strs[2] = (char*)malloc(len); 3233 snprintf(stp_strs[2], len, " %spResolveAttachments (0x%p)\n%s", prefix, (void*)pStruct->pResolveAttachments, tmpStr); 3234 } 3235 else 3236 stp_strs[2] = ""; 3237 if (pStruct->pDepthStencilAttachment) { 3238 tmpStr = vk_print_vkattachmentreference(pStruct->pDepthStencilAttachment, extra_indent); 3239 len = 256+strlen(tmpStr)+strlen(prefix); 3240 stp_strs[3] = (char*)malloc(len); 3241 snprintf(stp_strs[3], len, " %spDepthStencilAttachment (0x%p)\n%s", prefix, (void*)pStruct->pDepthStencilAttachment, tmpStr); 3242 } 3243 else 3244 stp_strs[3] = ""; 3245 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + strlen(stp_strs[3]) + sizeof(char)*1024; 3246 str = (char*)malloc(len); 3247 snprintf(str, len, "%sflags = %u\n%spipelineBindPoint = %s\n%sinputAttachmentCount = %u\n%spInputAttachments = 0x%p\n%scolorAttachmentCount = %u\n%spColorAttachments = 0x%p\n%spResolveAttachments = 0x%p\n%spDepthStencilAttachment = 0x%p\n%spreserveAttachmentCount = %u\n%spPreserveAttachments = 0x%p\n", prefix, (pStruct->flags), prefix, string_VkPipelineBindPoint(pStruct->pipelineBindPoint), prefix, (pStruct->inputAttachmentCount), prefix, (void*)(pStruct->pInputAttachments), prefix, (pStruct->colorAttachmentCount), prefix, (void*)(pStruct->pColorAttachments), prefix, (void*)(pStruct->pResolveAttachments), prefix, (void*)(pStruct->pDepthStencilAttachment), prefix, (pStruct->preserveAttachmentCount), prefix, (void*)(pStruct->pPreserveAttachments)); 3248 for (int32_t stp_index = 3; stp_index >= 0; stp_index--) { 3249 if (0 < strlen(stp_strs[stp_index])) { 3250 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 3251 free(stp_strs[stp_index]); 3252 } 3253 } 3254 free(extra_indent); 3255 return str; 3256 } 3257 char* vk_print_vksubresourcelayout(const VkSubresourceLayout* pStruct, const char* prefix) 3258 { 3259 char* str; 3260 size_t len; 3261 len = sizeof(char)*1024; 3262 str = (char*)malloc(len); 3263 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)); 3264 return str; 3265 } 3266 char* vk_print_vksurfacecapabilitieskhr(const VkSurfaceCapabilitiesKHR* pStruct, const char* prefix) 3267 { 3268 char* str; 3269 size_t len; 3270 char* tmpStr; 3271 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 3272 strcpy(extra_indent, " "); 3273 strncat(extra_indent, prefix, strlen(prefix)); 3274 char* stp_strs[3]; 3275 tmpStr = vk_print_vkextent2d(&pStruct->currentExtent, extra_indent); 3276 len = 256+strlen(tmpStr); 3277 stp_strs[0] = (char*)malloc(len); 3278 snprintf(stp_strs[0], len, " %scurrentExtent (0x%p)\n%s", prefix, (void*)&pStruct->currentExtent, tmpStr); 3279 tmpStr = vk_print_vkextent2d(&pStruct->minImageExtent, extra_indent); 3280 len = 256+strlen(tmpStr); 3281 stp_strs[1] = (char*)malloc(len); 3282 snprintf(stp_strs[1], len, " %sminImageExtent (0x%p)\n%s", prefix, (void*)&pStruct->minImageExtent, tmpStr); 3283 tmpStr = vk_print_vkextent2d(&pStruct->maxImageExtent, extra_indent); 3284 len = 256+strlen(tmpStr); 3285 stp_strs[2] = (char*)malloc(len); 3286 snprintf(stp_strs[2], len, " %smaxImageExtent (0x%p)\n%s", prefix, (void*)&pStruct->maxImageExtent, tmpStr); 3287 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + sizeof(char)*1024; 3288 str = (char*)malloc(len); 3289 snprintf(str, len, "%sminImageCount = %u\n%smaxImageCount = %u\n%scurrentExtent = 0x%p\n%sminImageExtent = 0x%p\n%smaxImageExtent = 0x%p\n%smaxImageArrayLayers = %u\n%ssupportedTransforms = %u\n%scurrentTransform = %s\n%ssupportedCompositeAlpha = %u\n%ssupportedUsageFlags = %u\n", prefix, (pStruct->minImageCount), prefix, (pStruct->maxImageCount), prefix, (void*)&(pStruct->currentExtent), prefix, (void*)&(pStruct->minImageExtent), prefix, (void*)&(pStruct->maxImageExtent), prefix, (pStruct->maxImageArrayLayers), prefix, (pStruct->supportedTransforms), prefix, string_VkSurfaceTransformFlagBitsKHR(pStruct->currentTransform), prefix, (pStruct->supportedCompositeAlpha), prefix, (pStruct->supportedUsageFlags)); 3290 for (int32_t stp_index = 2; stp_index >= 0; stp_index--) { 3291 if (0 < strlen(stp_strs[stp_index])) { 3292 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 3293 free(stp_strs[stp_index]); 3294 } 3295 } 3296 free(extra_indent); 3297 return str; 3298 } 3299 char* vk_print_vksurfaceformatkhr(const VkSurfaceFormatKHR* pStruct, const char* prefix) 3300 { 3301 char* str; 3302 size_t len; 3303 len = sizeof(char)*1024; 3304 str = (char*)malloc(len); 3305 snprintf(str, len, "%sformat = %s\n%scolorSpace = %s\n", prefix, string_VkFormat(pStruct->format), prefix, string_VkColorSpaceKHR(pStruct->colorSpace)); 3306 return str; 3307 } 3308 char* vk_print_vkswapchaincreateinfokhr(const VkSwapchainCreateInfoKHR* pStruct, const char* prefix) 3309 { 3310 char* str; 3311 size_t len; 3312 char* tmpStr; 3313 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 3314 strcpy(extra_indent, " "); 3315 strncat(extra_indent, prefix, strlen(prefix)); 3316 char* stp_strs[2]; 3317 if (pStruct->pNext) { 3318 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 3319 len = 256+strlen(tmpStr); 3320 stp_strs[0] = (char*)malloc(len); 3321 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 3322 free(tmpStr); 3323 } 3324 else 3325 stp_strs[0] = ""; 3326 tmpStr = vk_print_vkextent2d(&pStruct->imageExtent, extra_indent); 3327 len = 256+strlen(tmpStr); 3328 stp_strs[1] = (char*)malloc(len); 3329 snprintf(stp_strs[1], len, " %simageExtent (0x%p)\n%s", prefix, (void*)&pStruct->imageExtent, tmpStr); 3330 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + sizeof(char)*1024; 3331 str = (char*)malloc(len); 3332 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%ssurface = 0x%p\n%sminImageCount = %u\n%simageFormat = %s\n%simageColorSpace = %s\n%simageExtent = 0x%p\n%simageArrayLayers = %u\n%simageUsage = %u\n%simageSharingMode = %s\n%squeueFamilyIndexCount = %u\n%spQueueFamilyIndices = 0x%p\n%spreTransform = %s\n%scompositeAlpha = %s\n%spresentMode = %s\n%sclipped = %s\n%soldSwapchain = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, (void*)(pStruct->surface), prefix, (pStruct->minImageCount), prefix, string_VkFormat(pStruct->imageFormat), prefix, string_VkColorSpaceKHR(pStruct->imageColorSpace), prefix, (void*)&(pStruct->imageExtent), prefix, (pStruct->imageArrayLayers), prefix, (pStruct->imageUsage), prefix, string_VkSharingMode(pStruct->imageSharingMode), prefix, (pStruct->queueFamilyIndexCount), prefix, (void*)(pStruct->pQueueFamilyIndices), prefix, string_VkSurfaceTransformFlagBitsKHR(pStruct->preTransform), prefix, string_VkCompositeAlphaFlagBitsKHR(pStruct->compositeAlpha), prefix, string_VkPresentModeKHR(pStruct->presentMode), prefix, (pStruct->clipped) ? "TRUE" : "FALSE", prefix, (void*)(pStruct->oldSwapchain)); 3333 for (int32_t stp_index = 1; stp_index >= 0; stp_index--) { 3334 if (0 < strlen(stp_strs[stp_index])) { 3335 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 3336 free(stp_strs[stp_index]); 3337 } 3338 } 3339 free(extra_indent); 3340 return str; 3341 } 3342 char* vk_print_vkvertexinputattributedescription(const VkVertexInputAttributeDescription* pStruct, const char* prefix) 3343 { 3344 char* str; 3345 size_t len; 3346 len = sizeof(char)*1024; 3347 str = (char*)malloc(len); 3348 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)); 3349 return str; 3350 } 3351 char* vk_print_vkvertexinputbindingdescription(const VkVertexInputBindingDescription* pStruct, const char* prefix) 3352 { 3353 char* str; 3354 size_t len; 3355 len = sizeof(char)*1024; 3356 str = (char*)malloc(len); 3357 snprintf(str, len, "%sbinding = %u\n%sstride = %u\n%sinputRate = %s\n", prefix, (pStruct->binding), prefix, (pStruct->stride), prefix, string_VkVertexInputRate(pStruct->inputRate)); 3358 return str; 3359 } 3360 char* vk_print_vkviewport(const VkViewport* pStruct, const char* prefix) 3361 { 3362 char* str; 3363 size_t len; 3364 len = sizeof(char)*1024; 3365 str = (char*)malloc(len); 3366 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)); 3367 return str; 3368 } 3369 char* vk_print_vkwaylandsurfacecreateinfokhr(const VkWaylandSurfaceCreateInfoKHR* pStruct, const char* prefix) 3370 { 3371 char* str; 3372 size_t len; 3373 char* tmpStr; 3374 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 3375 strcpy(extra_indent, " "); 3376 strncat(extra_indent, prefix, strlen(prefix)); 3377 char* stp_strs[1]; 3378 if (pStruct->pNext) { 3379 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 3380 len = 256+strlen(tmpStr); 3381 stp_strs[0] = (char*)malloc(len); 3382 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 3383 free(tmpStr); 3384 } 3385 else 3386 stp_strs[0] = ""; 3387 len = strlen(stp_strs[0]) + sizeof(char)*1024; 3388 str = (char*)malloc(len); 3389 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%sdisplay = 0x%p\n%ssurface = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, (pStruct->display), prefix, (pStruct->surface)); 3390 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 3391 if (0 < strlen(stp_strs[stp_index])) { 3392 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 3393 free(stp_strs[stp_index]); 3394 } 3395 } 3396 free(extra_indent); 3397 return str; 3398 } 3399 char* vk_print_vkwin32surfacecreateinfokhr(const VkWin32SurfaceCreateInfoKHR* pStruct, const char* prefix) 3400 { 3401 char* str; 3402 size_t len; 3403 char* tmpStr; 3404 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 3405 strcpy(extra_indent, " "); 3406 strncat(extra_indent, prefix, strlen(prefix)); 3407 char* stp_strs[1]; 3408 if (pStruct->pNext) { 3409 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 3410 len = 256+strlen(tmpStr); 3411 stp_strs[0] = (char*)malloc(len); 3412 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 3413 free(tmpStr); 3414 } 3415 else 3416 stp_strs[0] = ""; 3417 len = strlen(stp_strs[0]) + sizeof(char)*1024; 3418 str = (char*)malloc(len); 3419 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%shinstance = 0x%p\n%shwnd = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, (void*)(pStruct->hinstance), prefix, (void*)(pStruct->hwnd)); 3420 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 3421 if (0 < strlen(stp_strs[stp_index])) { 3422 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 3423 free(stp_strs[stp_index]); 3424 } 3425 } 3426 free(extra_indent); 3427 return str; 3428 } 3429 char* vk_print_vkwritedescriptorset(const VkWriteDescriptorSet* pStruct, const char* prefix) 3430 { 3431 char* str; 3432 size_t len; 3433 char* tmpStr; 3434 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 3435 strcpy(extra_indent, " "); 3436 strncat(extra_indent, prefix, strlen(prefix)); 3437 char* stp_strs[3]; 3438 if (pStruct->pNext) { 3439 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 3440 len = 256+strlen(tmpStr); 3441 stp_strs[0] = (char*)malloc(len); 3442 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 3443 free(tmpStr); 3444 } 3445 else 3446 stp_strs[0] = ""; 3447 if (pStruct->pImageInfo) { 3448 tmpStr = vk_print_vkdescriptorimageinfo(pStruct->pImageInfo, extra_indent); 3449 len = 256+strlen(tmpStr)+strlen(prefix); 3450 stp_strs[1] = (char*)malloc(len); 3451 snprintf(stp_strs[1], len, " %spImageInfo (0x%p)\n%s", prefix, (void*)pStruct->pImageInfo, tmpStr); 3452 } 3453 else 3454 stp_strs[1] = ""; 3455 if (pStruct->pBufferInfo) { 3456 tmpStr = vk_print_vkdescriptorbufferinfo(pStruct->pBufferInfo, extra_indent); 3457 len = 256+strlen(tmpStr)+strlen(prefix); 3458 stp_strs[2] = (char*)malloc(len); 3459 snprintf(stp_strs[2], len, " %spBufferInfo (0x%p)\n%s", prefix, (void*)pStruct->pBufferInfo, tmpStr); 3460 } 3461 else 3462 stp_strs[2] = ""; 3463 len = strlen(stp_strs[0]) + strlen(stp_strs[1]) + strlen(stp_strs[2]) + sizeof(char)*1024; 3464 str = (char*)malloc(len); 3465 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sdstSet = 0x%p\n%sdstBinding = %u\n%sdstArrayElement = %u\n%sdescriptorCount = %u\n%sdescriptorType = %s\n%spImageInfo = 0x%p\n%spBufferInfo = 0x%p\n%spTexelBufferView = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (void*)(pStruct->dstSet), prefix, (pStruct->dstBinding), prefix, (pStruct->dstArrayElement), prefix, (pStruct->descriptorCount), prefix, string_VkDescriptorType(pStruct->descriptorType), prefix, (void*)(pStruct->pImageInfo), prefix, (void*)(pStruct->pBufferInfo), prefix, (void*)(pStruct->pTexelBufferView)); 3466 for (int32_t stp_index = 2; stp_index >= 0; stp_index--) { 3467 if (0 < strlen(stp_strs[stp_index])) { 3468 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 3469 free(stp_strs[stp_index]); 3470 } 3471 } 3472 free(extra_indent); 3473 return str; 3474 } 3475 char* vk_print_vkxcbsurfacecreateinfokhr(const VkXcbSurfaceCreateInfoKHR* pStruct, const char* prefix) 3476 { 3477 char* str; 3478 size_t len; 3479 char* tmpStr; 3480 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 3481 strcpy(extra_indent, " "); 3482 strncat(extra_indent, prefix, strlen(prefix)); 3483 char* stp_strs[1]; 3484 if (pStruct->pNext) { 3485 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 3486 len = 256+strlen(tmpStr); 3487 stp_strs[0] = (char*)malloc(len); 3488 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 3489 free(tmpStr); 3490 } 3491 else 3492 stp_strs[0] = ""; 3493 len = strlen(stp_strs[0]) + sizeof(char)*1024; 3494 str = (char*)malloc(len); 3495 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%sconnection = 0x%p\n%swindow = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, (pStruct->connection), prefix, (void*)(pStruct->window)); 3496 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 3497 if (0 < strlen(stp_strs[stp_index])) { 3498 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 3499 free(stp_strs[stp_index]); 3500 } 3501 } 3502 free(extra_indent); 3503 return str; 3504 } 3505 char* vk_print_vkxlibsurfacecreateinfokhr(const VkXlibSurfaceCreateInfoKHR* pStruct, const char* prefix) 3506 { 3507 char* str; 3508 size_t len; 3509 char* tmpStr; 3510 char* extra_indent = (char*)malloc(strlen(prefix) + 3); 3511 strcpy(extra_indent, " "); 3512 strncat(extra_indent, prefix, strlen(prefix)); 3513 char* stp_strs[1]; 3514 if (pStruct->pNext) { 3515 tmpStr = dynamic_display((void*)pStruct->pNext, prefix); 3516 len = 256+strlen(tmpStr); 3517 stp_strs[0] = (char*)malloc(len); 3518 snprintf(stp_strs[0], len, " %spNext (0x%p)\n%s", prefix, (void*)pStruct->pNext, tmpStr); 3519 free(tmpStr); 3520 } 3521 else 3522 stp_strs[0] = ""; 3523 len = strlen(stp_strs[0]) + sizeof(char)*1024; 3524 str = (char*)malloc(len); 3525 snprintf(str, len, "%ssType = %s\n%spNext = 0x%p\n%sflags = %u\n%sdpy = 0x%p\n%swindow = 0x%p\n", prefix, string_VkStructureType(pStruct->sType), prefix, (pStruct->pNext), prefix, (pStruct->flags), prefix, (pStruct->dpy), prefix, (void*)(pStruct->window)); 3526 for (int32_t stp_index = 0; stp_index >= 0; stp_index--) { 3527 if (0 < strlen(stp_strs[stp_index])) { 3528 strncat(str, stp_strs[stp_index], strlen(stp_strs[stp_index])); 3529 free(stp_strs[stp_index]); 3530 } 3531 } 3532 free(extra_indent); 3533 return str; 3534 } 3535 char* dynamic_display(const void* pStruct, const char* prefix) 3536 { 3537 // Cast to APP_INFO ptr initially just to pull sType off struct 3538 if (pStruct == NULL) { 3539 return NULL; 3540 } 3541 VkStructureType sType = ((VkApplicationInfo*)pStruct)->sType; 3542 char indent[100]; 3543 strcpy(indent, " "); 3544 strcat(indent, prefix); 3545 switch (sType) 3546 { 3547 case VK_STRUCTURE_TYPE_APPLICATION_INFO: 3548 { 3549 return vk_print_vkapplicationinfo((VkApplicationInfo*)pStruct, indent); 3550 } 3551 break; 3552 case VK_STRUCTURE_TYPE_BIND_SPARSE_INFO: 3553 { 3554 return vk_print_vkbindsparseinfo((VkBindSparseInfo*)pStruct, indent); 3555 } 3556 break; 3557 case VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO: 3558 { 3559 return vk_print_vkbuffercreateinfo((VkBufferCreateInfo*)pStruct, indent); 3560 } 3561 break; 3562 case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER: 3563 { 3564 return vk_print_vkbuffermemorybarrier((VkBufferMemoryBarrier*)pStruct, indent); 3565 } 3566 break; 3567 case VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO: 3568 { 3569 return vk_print_vkbufferviewcreateinfo((VkBufferViewCreateInfo*)pStruct, indent); 3570 } 3571 break; 3572 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO: 3573 { 3574 return vk_print_vkcommandbufferallocateinfo((VkCommandBufferAllocateInfo*)pStruct, indent); 3575 } 3576 break; 3577 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO: 3578 { 3579 return vk_print_vkcommandbufferbegininfo((VkCommandBufferBeginInfo*)pStruct, indent); 3580 } 3581 break; 3582 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO: 3583 { 3584 return vk_print_vkcommandbufferinheritanceinfo((VkCommandBufferInheritanceInfo*)pStruct, indent); 3585 } 3586 break; 3587 case VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO: 3588 { 3589 return vk_print_vkcommandpoolcreateinfo((VkCommandPoolCreateInfo*)pStruct, indent); 3590 } 3591 break; 3592 case VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO: 3593 { 3594 return vk_print_vkcomputepipelinecreateinfo((VkComputePipelineCreateInfo*)pStruct, indent); 3595 } 3596 break; 3597 case VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET: 3598 { 3599 return vk_print_vkcopydescriptorset((VkCopyDescriptorSet*)pStruct, indent); 3600 } 3601 break; 3602 case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO: 3603 { 3604 return vk_print_vkdescriptorpoolcreateinfo((VkDescriptorPoolCreateInfo*)pStruct, indent); 3605 } 3606 break; 3607 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO: 3608 { 3609 return vk_print_vkdescriptorsetallocateinfo((VkDescriptorSetAllocateInfo*)pStruct, indent); 3610 } 3611 break; 3612 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO: 3613 { 3614 return vk_print_vkdescriptorsetlayoutcreateinfo((VkDescriptorSetLayoutCreateInfo*)pStruct, indent); 3615 } 3616 break; 3617 case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO: 3618 { 3619 return vk_print_vkdevicecreateinfo((VkDeviceCreateInfo*)pStruct, indent); 3620 } 3621 break; 3622 case VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO: 3623 { 3624 return vk_print_vkdevicequeuecreateinfo((VkDeviceQueueCreateInfo*)pStruct, indent); 3625 } 3626 break; 3627 case VK_STRUCTURE_TYPE_EVENT_CREATE_INFO: 3628 { 3629 return vk_print_vkeventcreateinfo((VkEventCreateInfo*)pStruct, indent); 3630 } 3631 break; 3632 case VK_STRUCTURE_TYPE_FENCE_CREATE_INFO: 3633 { 3634 return vk_print_vkfencecreateinfo((VkFenceCreateInfo*)pStruct, indent); 3635 } 3636 break; 3637 case VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO: 3638 { 3639 return vk_print_vkframebuffercreateinfo((VkFramebufferCreateInfo*)pStruct, indent); 3640 } 3641 break; 3642 case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO: 3643 { 3644 return vk_print_vkgraphicspipelinecreateinfo((VkGraphicsPipelineCreateInfo*)pStruct, indent); 3645 } 3646 break; 3647 case VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO: 3648 { 3649 return vk_print_vkimagecreateinfo((VkImageCreateInfo*)pStruct, indent); 3650 } 3651 break; 3652 case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER: 3653 { 3654 return vk_print_vkimagememorybarrier((VkImageMemoryBarrier*)pStruct, indent); 3655 } 3656 break; 3657 case VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO: 3658 { 3659 return vk_print_vkimageviewcreateinfo((VkImageViewCreateInfo*)pStruct, indent); 3660 } 3661 break; 3662 case VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO: 3663 { 3664 return vk_print_vkinstancecreateinfo((VkInstanceCreateInfo*)pStruct, indent); 3665 } 3666 break; 3667 case VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE: 3668 { 3669 return vk_print_vkmappedmemoryrange((VkMappedMemoryRange*)pStruct, indent); 3670 } 3671 break; 3672 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: 3673 { 3674 return vk_print_vkmemoryallocateinfo((VkMemoryAllocateInfo*)pStruct, indent); 3675 } 3676 break; 3677 case VK_STRUCTURE_TYPE_MEMORY_BARRIER: 3678 { 3679 return vk_print_vkmemorybarrier((VkMemoryBarrier*)pStruct, indent); 3680 } 3681 break; 3682 case VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO: 3683 { 3684 return vk_print_vkpipelinecachecreateinfo((VkPipelineCacheCreateInfo*)pStruct, indent); 3685 } 3686 break; 3687 case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO: 3688 { 3689 return vk_print_vkpipelinecolorblendstatecreateinfo((VkPipelineColorBlendStateCreateInfo*)pStruct, indent); 3690 } 3691 break; 3692 case VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO: 3693 { 3694 return vk_print_vkpipelinedepthstencilstatecreateinfo((VkPipelineDepthStencilStateCreateInfo*)pStruct, indent); 3695 } 3696 break; 3697 case VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO: 3698 { 3699 return vk_print_vkpipelinedynamicstatecreateinfo((VkPipelineDynamicStateCreateInfo*)pStruct, indent); 3700 } 3701 break; 3702 case VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO: 3703 { 3704 return vk_print_vkpipelineinputassemblystatecreateinfo((VkPipelineInputAssemblyStateCreateInfo*)pStruct, indent); 3705 } 3706 break; 3707 case VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO: 3708 { 3709 return vk_print_vkpipelinelayoutcreateinfo((VkPipelineLayoutCreateInfo*)pStruct, indent); 3710 } 3711 break; 3712 case VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO: 3713 { 3714 return vk_print_vkpipelinemultisamplestatecreateinfo((VkPipelineMultisampleStateCreateInfo*)pStruct, indent); 3715 } 3716 break; 3717 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO: 3718 { 3719 return vk_print_vkpipelinerasterizationstatecreateinfo((VkPipelineRasterizationStateCreateInfo*)pStruct, indent); 3720 } 3721 break; 3722 case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO: 3723 { 3724 return vk_print_vkpipelineshaderstagecreateinfo((VkPipelineShaderStageCreateInfo*)pStruct, indent); 3725 } 3726 break; 3727 case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO: 3728 { 3729 return vk_print_vkpipelinetessellationstatecreateinfo((VkPipelineTessellationStateCreateInfo*)pStruct, indent); 3730 } 3731 break; 3732 case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO: 3733 { 3734 return vk_print_vkpipelinevertexinputstatecreateinfo((VkPipelineVertexInputStateCreateInfo*)pStruct, indent); 3735 } 3736 break; 3737 case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO: 3738 { 3739 return vk_print_vkpipelineviewportstatecreateinfo((VkPipelineViewportStateCreateInfo*)pStruct, indent); 3740 } 3741 break; 3742 case VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO: 3743 { 3744 return vk_print_vkquerypoolcreateinfo((VkQueryPoolCreateInfo*)pStruct, indent); 3745 } 3746 break; 3747 case VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO: 3748 { 3749 return vk_print_vkrenderpassbegininfo((VkRenderPassBeginInfo*)pStruct, indent); 3750 } 3751 break; 3752 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO: 3753 { 3754 return vk_print_vkrenderpasscreateinfo((VkRenderPassCreateInfo*)pStruct, indent); 3755 } 3756 break; 3757 case VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO: 3758 { 3759 return vk_print_vksamplercreateinfo((VkSamplerCreateInfo*)pStruct, indent); 3760 } 3761 break; 3762 case VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO: 3763 { 3764 return vk_print_vksemaphorecreateinfo((VkSemaphoreCreateInfo*)pStruct, indent); 3765 } 3766 break; 3767 case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO: 3768 { 3769 return vk_print_vkshadermodulecreateinfo((VkShaderModuleCreateInfo*)pStruct, indent); 3770 } 3771 break; 3772 case VK_STRUCTURE_TYPE_SUBMIT_INFO: 3773 { 3774 return vk_print_vksubmitinfo((VkSubmitInfo*)pStruct, indent); 3775 } 3776 break; 3777 case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET: 3778 { 3779 return vk_print_vkwritedescriptorset((VkWriteDescriptorSet*)pStruct, indent); 3780 } 3781 break; 3782 default: 3783 return NULL; 3784 } 3785 }