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