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 <vk_enum_string_helper.h> 29 #include <stdint.h> 30 #include <cinttypes> 31 #include <stdio.h> 32 #include <stdlib.h> 33 #include "vk_enum_validate_helper.h" 34 35 // Function Prototypes 36 uint32_t vk_validate_vkallocationcallbacks(const VkAllocationCallbacks* pStruct); 37 #ifdef VK_USE_PLATFORM_ANDROID_KHR 38 uint32_t vk_validate_vkandroidsurfacecreateinfokhr(const VkAndroidSurfaceCreateInfoKHR* pStruct); 39 #endif //VK_USE_PLATFORM_ANDROID_KHR 40 uint32_t vk_validate_vkapplicationinfo(const VkApplicationInfo* pStruct); 41 uint32_t vk_validate_vkattachmentdescription(const VkAttachmentDescription* pStruct); 42 uint32_t vk_validate_vkattachmentreference(const VkAttachmentReference* pStruct); 43 uint32_t vk_validate_vkbindsparseinfo(const VkBindSparseInfo* pStruct); 44 uint32_t vk_validate_vkbuffercopy(const VkBufferCopy* pStruct); 45 uint32_t vk_validate_vkbuffercreateinfo(const VkBufferCreateInfo* pStruct); 46 uint32_t vk_validate_vkbufferimagecopy(const VkBufferImageCopy* pStruct); 47 uint32_t vk_validate_vkbuffermemorybarrier(const VkBufferMemoryBarrier* pStruct); 48 uint32_t vk_validate_vkbufferviewcreateinfo(const VkBufferViewCreateInfo* pStruct); 49 uint32_t vk_validate_vkclearattachment(const VkClearAttachment* pStruct); 50 uint32_t vk_validate_vkclearcolorvalue(const VkClearColorValue* pStruct); 51 uint32_t vk_validate_vkcleardepthstencilvalue(const VkClearDepthStencilValue* pStruct); 52 uint32_t vk_validate_vkclearrect(const VkClearRect* pStruct); 53 uint32_t vk_validate_vkclearvalue(const VkClearValue* pStruct); 54 uint32_t vk_validate_vkcommandbufferallocateinfo(const VkCommandBufferAllocateInfo* pStruct); 55 uint32_t vk_validate_vkcommandbufferbegininfo(const VkCommandBufferBeginInfo* pStruct); 56 uint32_t vk_validate_vkcommandbufferinheritanceinfo(const VkCommandBufferInheritanceInfo* pStruct); 57 uint32_t vk_validate_vkcommandpoolcreateinfo(const VkCommandPoolCreateInfo* pStruct); 58 uint32_t vk_validate_vkcomponentmapping(const VkComponentMapping* pStruct); 59 uint32_t vk_validate_vkcomputepipelinecreateinfo(const VkComputePipelineCreateInfo* pStruct); 60 uint32_t vk_validate_vkcopydescriptorset(const VkCopyDescriptorSet* pStruct); 61 uint32_t vk_validate_vkdebugmarkermarkerinfoext(const VkDebugMarkerMarkerInfoEXT* pStruct); 62 uint32_t vk_validate_vkdebugmarkerobjectnameinfoext(const VkDebugMarkerObjectNameInfoEXT* pStruct); 63 uint32_t vk_validate_vkdebugmarkerobjecttaginfoext(const VkDebugMarkerObjectTagInfoEXT* pStruct); 64 uint32_t vk_validate_vkdebugreportcallbackcreateinfoext(const VkDebugReportCallbackCreateInfoEXT* pStruct); 65 uint32_t vk_validate_vkdescriptorbufferinfo(const VkDescriptorBufferInfo* pStruct); 66 uint32_t vk_validate_vkdescriptorimageinfo(const VkDescriptorImageInfo* pStruct); 67 uint32_t vk_validate_vkdescriptorpoolcreateinfo(const VkDescriptorPoolCreateInfo* pStruct); 68 uint32_t vk_validate_vkdescriptorpoolsize(const VkDescriptorPoolSize* pStruct); 69 uint32_t vk_validate_vkdescriptorsetallocateinfo(const VkDescriptorSetAllocateInfo* pStruct); 70 uint32_t vk_validate_vkdescriptorsetlayoutbinding(const VkDescriptorSetLayoutBinding* pStruct); 71 uint32_t vk_validate_vkdescriptorsetlayoutcreateinfo(const VkDescriptorSetLayoutCreateInfo* pStruct); 72 uint32_t vk_validate_vkdevicecreateinfo(const VkDeviceCreateInfo* pStruct); 73 uint32_t vk_validate_vkdevicequeuecreateinfo(const VkDeviceQueueCreateInfo* pStruct); 74 uint32_t vk_validate_vkdispatchindirectcommand(const VkDispatchIndirectCommand* pStruct); 75 uint32_t vk_validate_vkdisplaymodecreateinfokhr(const VkDisplayModeCreateInfoKHR* pStruct); 76 uint32_t vk_validate_vkdisplaymodeparameterskhr(const VkDisplayModeParametersKHR* pStruct); 77 uint32_t vk_validate_vkdisplaymodepropertieskhr(const VkDisplayModePropertiesKHR* pStruct); 78 uint32_t vk_validate_vkdisplayplanecapabilitieskhr(const VkDisplayPlaneCapabilitiesKHR* pStruct); 79 uint32_t vk_validate_vkdisplayplanepropertieskhr(const VkDisplayPlanePropertiesKHR* pStruct); 80 uint32_t vk_validate_vkdisplaypresentinfokhr(const VkDisplayPresentInfoKHR* pStruct); 81 uint32_t vk_validate_vkdisplaypropertieskhr(const VkDisplayPropertiesKHR* pStruct); 82 uint32_t vk_validate_vkdisplaysurfacecreateinfokhr(const VkDisplaySurfaceCreateInfoKHR* pStruct); 83 uint32_t vk_validate_vkdrawindexedindirectcommand(const VkDrawIndexedIndirectCommand* pStruct); 84 uint32_t vk_validate_vkdrawindirectcommand(const VkDrawIndirectCommand* pStruct); 85 uint32_t vk_validate_vkeventcreateinfo(const VkEventCreateInfo* pStruct); 86 uint32_t vk_validate_vkextensionproperties(const VkExtensionProperties* pStruct); 87 uint32_t vk_validate_vkextent2d(const VkExtent2D* pStruct); 88 uint32_t vk_validate_vkextent3d(const VkExtent3D* pStruct); 89 uint32_t vk_validate_vkfencecreateinfo(const VkFenceCreateInfo* pStruct); 90 uint32_t vk_validate_vkformatproperties(const VkFormatProperties* pStruct); 91 uint32_t vk_validate_vkframebuffercreateinfo(const VkFramebufferCreateInfo* pStruct); 92 uint32_t vk_validate_vkgraphicspipelinecreateinfo(const VkGraphicsPipelineCreateInfo* pStruct); 93 uint32_t vk_validate_vkimageblit(const VkImageBlit* pStruct); 94 uint32_t vk_validate_vkimagecopy(const VkImageCopy* pStruct); 95 uint32_t vk_validate_vkimagecreateinfo(const VkImageCreateInfo* pStruct); 96 uint32_t vk_validate_vkimageformatproperties(const VkImageFormatProperties* pStruct); 97 uint32_t vk_validate_vkimagememorybarrier(const VkImageMemoryBarrier* pStruct); 98 uint32_t vk_validate_vkimageresolve(const VkImageResolve* pStruct); 99 uint32_t vk_validate_vkimagesubresource(const VkImageSubresource* pStruct); 100 uint32_t vk_validate_vkimagesubresourcelayers(const VkImageSubresourceLayers* pStruct); 101 uint32_t vk_validate_vkimagesubresourcerange(const VkImageSubresourceRange* pStruct); 102 uint32_t vk_validate_vkimageviewcreateinfo(const VkImageViewCreateInfo* pStruct); 103 uint32_t vk_validate_vkinstancecreateinfo(const VkInstanceCreateInfo* pStruct); 104 uint32_t vk_validate_vklayerproperties(const VkLayerProperties* pStruct); 105 uint32_t vk_validate_vkmappedmemoryrange(const VkMappedMemoryRange* pStruct); 106 uint32_t vk_validate_vkmemoryallocateinfo(const VkMemoryAllocateInfo* pStruct); 107 uint32_t vk_validate_vkmemorybarrier(const VkMemoryBarrier* pStruct); 108 uint32_t vk_validate_vkmemoryheap(const VkMemoryHeap* pStruct); 109 uint32_t vk_validate_vkmemoryrequirements(const VkMemoryRequirements* pStruct); 110 uint32_t vk_validate_vkmemorytype(const VkMemoryType* pStruct); 111 #ifdef VK_USE_PLATFORM_MIR_KHR 112 uint32_t vk_validate_vkmirsurfacecreateinfokhr(const VkMirSurfaceCreateInfoKHR* pStruct); 113 #endif //VK_USE_PLATFORM_MIR_KHR 114 uint32_t vk_validate_vkoffset2d(const VkOffset2D* pStruct); 115 uint32_t vk_validate_vkoffset3d(const VkOffset3D* pStruct); 116 uint32_t vk_validate_vkphysicaldevicefeatures(const VkPhysicalDeviceFeatures* pStruct); 117 uint32_t vk_validate_vkphysicaldevicelimits(const VkPhysicalDeviceLimits* pStruct); 118 uint32_t vk_validate_vkphysicaldevicememoryproperties(const VkPhysicalDeviceMemoryProperties* pStruct); 119 uint32_t vk_validate_vkphysicaldeviceproperties(const VkPhysicalDeviceProperties* pStruct); 120 uint32_t vk_validate_vkphysicaldevicesparseproperties(const VkPhysicalDeviceSparseProperties* pStruct); 121 uint32_t vk_validate_vkpipelinecachecreateinfo(const VkPipelineCacheCreateInfo* pStruct); 122 uint32_t vk_validate_vkpipelinecolorblendattachmentstate(const VkPipelineColorBlendAttachmentState* pStruct); 123 uint32_t vk_validate_vkpipelinecolorblendstatecreateinfo(const VkPipelineColorBlendStateCreateInfo* pStruct); 124 uint32_t vk_validate_vkpipelinedepthstencilstatecreateinfo(const VkPipelineDepthStencilStateCreateInfo* pStruct); 125 uint32_t vk_validate_vkpipelinedynamicstatecreateinfo(const VkPipelineDynamicStateCreateInfo* pStruct); 126 uint32_t vk_validate_vkpipelineinputassemblystatecreateinfo(const VkPipelineInputAssemblyStateCreateInfo* pStruct); 127 uint32_t vk_validate_vkpipelinelayoutcreateinfo(const VkPipelineLayoutCreateInfo* pStruct); 128 uint32_t vk_validate_vkpipelinemultisamplestatecreateinfo(const VkPipelineMultisampleStateCreateInfo* pStruct); 129 uint32_t vk_validate_vkpipelinerasterizationstatecreateinfo(const VkPipelineRasterizationStateCreateInfo* pStruct); 130 uint32_t vk_validate_vkpipelinerasterizationstaterasterizationorderamd(const VkPipelineRasterizationStateRasterizationOrderAMD* pStruct); 131 uint32_t vk_validate_vkpipelineshaderstagecreateinfo(const VkPipelineShaderStageCreateInfo* pStruct); 132 uint32_t vk_validate_vkpipelinetessellationstatecreateinfo(const VkPipelineTessellationStateCreateInfo* pStruct); 133 uint32_t vk_validate_vkpipelinevertexinputstatecreateinfo(const VkPipelineVertexInputStateCreateInfo* pStruct); 134 uint32_t vk_validate_vkpipelineviewportstatecreateinfo(const VkPipelineViewportStateCreateInfo* pStruct); 135 uint32_t vk_validate_vkpresentinfokhr(const VkPresentInfoKHR* pStruct); 136 uint32_t vk_validate_vkpushconstantrange(const VkPushConstantRange* pStruct); 137 uint32_t vk_validate_vkquerypoolcreateinfo(const VkQueryPoolCreateInfo* pStruct); 138 uint32_t vk_validate_vkqueuefamilyproperties(const VkQueueFamilyProperties* pStruct); 139 uint32_t vk_validate_vkrect2d(const VkRect2D* pStruct); 140 uint32_t vk_validate_vkrenderpassbegininfo(const VkRenderPassBeginInfo* pStruct); 141 uint32_t vk_validate_vkrenderpasscreateinfo(const VkRenderPassCreateInfo* pStruct); 142 uint32_t vk_validate_vksamplercreateinfo(const VkSamplerCreateInfo* pStruct); 143 uint32_t vk_validate_vksemaphorecreateinfo(const VkSemaphoreCreateInfo* pStruct); 144 uint32_t vk_validate_vkshadermodulecreateinfo(const VkShaderModuleCreateInfo* pStruct); 145 uint32_t vk_validate_vksparsebuffermemorybindinfo(const VkSparseBufferMemoryBindInfo* pStruct); 146 uint32_t vk_validate_vksparseimageformatproperties(const VkSparseImageFormatProperties* pStruct); 147 uint32_t vk_validate_vksparseimagememorybind(const VkSparseImageMemoryBind* pStruct); 148 uint32_t vk_validate_vksparseimagememorybindinfo(const VkSparseImageMemoryBindInfo* pStruct); 149 uint32_t vk_validate_vksparseimagememoryrequirements(const VkSparseImageMemoryRequirements* pStruct); 150 uint32_t vk_validate_vksparseimageopaquememorybindinfo(const VkSparseImageOpaqueMemoryBindInfo* pStruct); 151 uint32_t vk_validate_vksparsememorybind(const VkSparseMemoryBind* pStruct); 152 uint32_t vk_validate_vkspecializationinfo(const VkSpecializationInfo* pStruct); 153 uint32_t vk_validate_vkspecializationmapentry(const VkSpecializationMapEntry* pStruct); 154 uint32_t vk_validate_vkstencilopstate(const VkStencilOpState* pStruct); 155 uint32_t vk_validate_vksubmitinfo(const VkSubmitInfo* pStruct); 156 uint32_t vk_validate_vksubpassdependency(const VkSubpassDependency* pStruct); 157 uint32_t vk_validate_vksubpassdescription(const VkSubpassDescription* pStruct); 158 uint32_t vk_validate_vksubresourcelayout(const VkSubresourceLayout* pStruct); 159 uint32_t vk_validate_vksurfacecapabilitieskhr(const VkSurfaceCapabilitiesKHR* pStruct); 160 uint32_t vk_validate_vksurfaceformatkhr(const VkSurfaceFormatKHR* pStruct); 161 uint32_t vk_validate_vkswapchaincreateinfokhr(const VkSwapchainCreateInfoKHR* pStruct); 162 uint32_t vk_validate_vkvertexinputattributedescription(const VkVertexInputAttributeDescription* pStruct); 163 uint32_t vk_validate_vkvertexinputbindingdescription(const VkVertexInputBindingDescription* pStruct); 164 uint32_t vk_validate_vkviewport(const VkViewport* pStruct); 165 #ifdef VK_USE_PLATFORM_WAYLAND_KHR 166 uint32_t vk_validate_vkwaylandsurfacecreateinfokhr(const VkWaylandSurfaceCreateInfoKHR* pStruct); 167 #endif //VK_USE_PLATFORM_WAYLAND_KHR 168 #ifdef VK_USE_PLATFORM_WIN32_KHR 169 uint32_t vk_validate_vkwin32surfacecreateinfokhr(const VkWin32SurfaceCreateInfoKHR* pStruct); 170 #endif //VK_USE_PLATFORM_WIN32_KHR 171 uint32_t vk_validate_vkwritedescriptorset(const VkWriteDescriptorSet* pStruct); 172 #ifdef VK_USE_PLATFORM_XCB_KHR 173 uint32_t vk_validate_vkxcbsurfacecreateinfokhr(const VkXcbSurfaceCreateInfoKHR* pStruct); 174 #endif //VK_USE_PLATFORM_XCB_KHR 175 #ifdef VK_USE_PLATFORM_XLIB_KHR 176 uint32_t vk_validate_vkxlibsurfacecreateinfokhr(const VkXlibSurfaceCreateInfoKHR* pStruct); 177 #endif //VK_USE_PLATFORM_XLIB_KHR 178 179 180 uint32_t vk_validate_vkallocationcallbacks(const VkAllocationCallbacks* pStruct) 181 { 182 return 1; 183 } 184 #ifdef VK_USE_PLATFORM_ANDROID_KHR 185 uint32_t vk_validate_vkandroidsurfacecreateinfokhr(const VkAndroidSurfaceCreateInfoKHR* pStruct) 186 { 187 if (!validate_VkStructureType(pStruct->sType)) 188 return 0; 189 return 1; 190 } 191 #endif //VK_USE_PLATFORM_ANDROID_KHR 192 uint32_t vk_validate_vkapplicationinfo(const VkApplicationInfo* pStruct) 193 { 194 if (!validate_VkStructureType(pStruct->sType)) 195 return 0; 196 return 1; 197 } 198 uint32_t vk_validate_vkattachmentdescription(const VkAttachmentDescription* pStruct) 199 { 200 if (!validate_VkFormat(pStruct->format)) 201 return 0; 202 if (!validate_VkSampleCountFlagBits(pStruct->samples)) 203 return 0; 204 if (!validate_VkAttachmentLoadOp(pStruct->loadOp)) 205 return 0; 206 if (!validate_VkAttachmentStoreOp(pStruct->storeOp)) 207 return 0; 208 if (!validate_VkAttachmentLoadOp(pStruct->stencilLoadOp)) 209 return 0; 210 if (!validate_VkAttachmentStoreOp(pStruct->stencilStoreOp)) 211 return 0; 212 if (!validate_VkImageLayout(pStruct->initialLayout)) 213 return 0; 214 if (!validate_VkImageLayout(pStruct->finalLayout)) 215 return 0; 216 return 1; 217 } 218 uint32_t vk_validate_vkattachmentreference(const VkAttachmentReference* pStruct) 219 { 220 if (!validate_VkImageLayout(pStruct->layout)) 221 return 0; 222 return 1; 223 } 224 uint32_t vk_validate_vkbindsparseinfo(const VkBindSparseInfo* pStruct) 225 { 226 if (!validate_VkStructureType(pStruct->sType)) 227 return 0; 228 if (pStruct->pBufferBinds && !vk_validate_vksparsebuffermemorybindinfo((const VkSparseBufferMemoryBindInfo*)pStruct->pBufferBinds)) 229 return 0; 230 if (pStruct->pImageOpaqueBinds && !vk_validate_vksparseimageopaquememorybindinfo((const VkSparseImageOpaqueMemoryBindInfo*)pStruct->pImageOpaqueBinds)) 231 return 0; 232 if (pStruct->pImageBinds && !vk_validate_vksparseimagememorybindinfo((const VkSparseImageMemoryBindInfo*)pStruct->pImageBinds)) 233 return 0; 234 return 1; 235 } 236 uint32_t vk_validate_vkbuffercopy(const VkBufferCopy* pStruct) 237 { 238 return 1; 239 } 240 uint32_t vk_validate_vkbuffercreateinfo(const VkBufferCreateInfo* pStruct) 241 { 242 if (!validate_VkStructureType(pStruct->sType)) 243 return 0; 244 if (!validate_VkSharingMode(pStruct->sharingMode)) 245 return 0; 246 return 1; 247 } 248 uint32_t vk_validate_vkbufferimagecopy(const VkBufferImageCopy* pStruct) 249 { 250 if (!vk_validate_vkimagesubresourcelayers((const VkImageSubresourceLayers*)&pStruct->imageSubresource)) 251 return 0; 252 if (!vk_validate_vkoffset3d((const VkOffset3D*)&pStruct->imageOffset)) 253 return 0; 254 if (!vk_validate_vkextent3d((const VkExtent3D*)&pStruct->imageExtent)) 255 return 0; 256 return 1; 257 } 258 uint32_t vk_validate_vkbuffermemorybarrier(const VkBufferMemoryBarrier* pStruct) 259 { 260 if (!validate_VkStructureType(pStruct->sType)) 261 return 0; 262 return 1; 263 } 264 uint32_t vk_validate_vkbufferviewcreateinfo(const VkBufferViewCreateInfo* pStruct) 265 { 266 if (!validate_VkStructureType(pStruct->sType)) 267 return 0; 268 if (!validate_VkFormat(pStruct->format)) 269 return 0; 270 return 1; 271 } 272 uint32_t vk_validate_vkclearattachment(const VkClearAttachment* pStruct) 273 { 274 if (!vk_validate_vkclearvalue((const VkClearValue*)&pStruct->clearValue)) 275 return 0; 276 return 1; 277 } 278 uint32_t vk_validate_vkclearcolorvalue(const VkClearColorValue* pStruct) 279 { 280 return 1; 281 } 282 uint32_t vk_validate_vkcleardepthstencilvalue(const VkClearDepthStencilValue* pStruct) 283 { 284 return 1; 285 } 286 uint32_t vk_validate_vkclearrect(const VkClearRect* pStruct) 287 { 288 if (!vk_validate_vkrect2d((const VkRect2D*)&pStruct->rect)) 289 return 0; 290 return 1; 291 } 292 uint32_t vk_validate_vkclearvalue(const VkClearValue* pStruct) 293 { 294 if (!vk_validate_vkclearcolorvalue((const VkClearColorValue*)&pStruct->color)) 295 return 0; 296 if (!vk_validate_vkcleardepthstencilvalue((const VkClearDepthStencilValue*)&pStruct->depthStencil)) 297 return 0; 298 return 1; 299 } 300 uint32_t vk_validate_vkcommandbufferallocateinfo(const VkCommandBufferAllocateInfo* pStruct) 301 { 302 if (!validate_VkStructureType(pStruct->sType)) 303 return 0; 304 if (!validate_VkCommandBufferLevel(pStruct->level)) 305 return 0; 306 return 1; 307 } 308 uint32_t vk_validate_vkcommandbufferbegininfo(const VkCommandBufferBeginInfo* pStruct) 309 { 310 if (!validate_VkStructureType(pStruct->sType)) 311 return 0; 312 if (pStruct->pInheritanceInfo && !vk_validate_vkcommandbufferinheritanceinfo((const VkCommandBufferInheritanceInfo*)pStruct->pInheritanceInfo)) 313 return 0; 314 return 1; 315 } 316 uint32_t vk_validate_vkcommandbufferinheritanceinfo(const VkCommandBufferInheritanceInfo* pStruct) 317 { 318 if (!validate_VkStructureType(pStruct->sType)) 319 return 0; 320 return 1; 321 } 322 uint32_t vk_validate_vkcommandpoolcreateinfo(const VkCommandPoolCreateInfo* pStruct) 323 { 324 if (!validate_VkStructureType(pStruct->sType)) 325 return 0; 326 return 1; 327 } 328 uint32_t vk_validate_vkcomponentmapping(const VkComponentMapping* pStruct) 329 { 330 if (!validate_VkComponentSwizzle(pStruct->r)) 331 return 0; 332 if (!validate_VkComponentSwizzle(pStruct->g)) 333 return 0; 334 if (!validate_VkComponentSwizzle(pStruct->b)) 335 return 0; 336 if (!validate_VkComponentSwizzle(pStruct->a)) 337 return 0; 338 return 1; 339 } 340 uint32_t vk_validate_vkcomputepipelinecreateinfo(const VkComputePipelineCreateInfo* pStruct) 341 { 342 if (!validate_VkStructureType(pStruct->sType)) 343 return 0; 344 if (!vk_validate_vkpipelineshaderstagecreateinfo((const VkPipelineShaderStageCreateInfo*)&pStruct->stage)) 345 return 0; 346 return 1; 347 } 348 uint32_t vk_validate_vkcopydescriptorset(const VkCopyDescriptorSet* pStruct) 349 { 350 if (!validate_VkStructureType(pStruct->sType)) 351 return 0; 352 return 1; 353 } 354 uint32_t vk_validate_vkdebugmarkermarkerinfoext(const VkDebugMarkerMarkerInfoEXT* pStruct) 355 { 356 if (!validate_VkStructureType(pStruct->sType)) 357 return 0; 358 return 1; 359 } 360 uint32_t vk_validate_vkdebugmarkerobjectnameinfoext(const VkDebugMarkerObjectNameInfoEXT* pStruct) 361 { 362 if (!validate_VkStructureType(pStruct->sType)) 363 return 0; 364 if (!validate_VkDebugReportObjectTypeEXT(pStruct->objectType)) 365 return 0; 366 return 1; 367 } 368 uint32_t vk_validate_vkdebugmarkerobjecttaginfoext(const VkDebugMarkerObjectTagInfoEXT* pStruct) 369 { 370 if (!validate_VkStructureType(pStruct->sType)) 371 return 0; 372 if (!validate_VkDebugReportObjectTypeEXT(pStruct->objectType)) 373 return 0; 374 return 1; 375 } 376 uint32_t vk_validate_vkdebugreportcallbackcreateinfoext(const VkDebugReportCallbackCreateInfoEXT* pStruct) 377 { 378 if (!validate_VkStructureType(pStruct->sType)) 379 return 0; 380 return 1; 381 } 382 uint32_t vk_validate_vkdescriptorbufferinfo(const VkDescriptorBufferInfo* pStruct) 383 { 384 return 1; 385 } 386 uint32_t vk_validate_vkdescriptorimageinfo(const VkDescriptorImageInfo* pStruct) 387 { 388 if (!validate_VkImageLayout(pStruct->imageLayout)) 389 return 0; 390 return 1; 391 } 392 uint32_t vk_validate_vkdescriptorpoolcreateinfo(const VkDescriptorPoolCreateInfo* pStruct) 393 { 394 if (!validate_VkStructureType(pStruct->sType)) 395 return 0; 396 if (pStruct->pPoolSizes && !vk_validate_vkdescriptorpoolsize((const VkDescriptorPoolSize*)pStruct->pPoolSizes)) 397 return 0; 398 return 1; 399 } 400 uint32_t vk_validate_vkdescriptorpoolsize(const VkDescriptorPoolSize* pStruct) 401 { 402 if (!validate_VkDescriptorType(pStruct->type)) 403 return 0; 404 return 1; 405 } 406 uint32_t vk_validate_vkdescriptorsetallocateinfo(const VkDescriptorSetAllocateInfo* pStruct) 407 { 408 if (!validate_VkStructureType(pStruct->sType)) 409 return 0; 410 return 1; 411 } 412 uint32_t vk_validate_vkdescriptorsetlayoutbinding(const VkDescriptorSetLayoutBinding* pStruct) 413 { 414 if (!validate_VkDescriptorType(pStruct->descriptorType)) 415 return 0; 416 return 1; 417 } 418 uint32_t vk_validate_vkdescriptorsetlayoutcreateinfo(const VkDescriptorSetLayoutCreateInfo* pStruct) 419 { 420 if (!validate_VkStructureType(pStruct->sType)) 421 return 0; 422 if (pStruct->pBindings && !vk_validate_vkdescriptorsetlayoutbinding((const VkDescriptorSetLayoutBinding*)pStruct->pBindings)) 423 return 0; 424 return 1; 425 } 426 uint32_t vk_validate_vkdevicecreateinfo(const VkDeviceCreateInfo* pStruct) 427 { 428 if (!validate_VkStructureType(pStruct->sType)) 429 return 0; 430 if (pStruct->pQueueCreateInfos && !vk_validate_vkdevicequeuecreateinfo((const VkDeviceQueueCreateInfo*)pStruct->pQueueCreateInfos)) 431 return 0; 432 if (pStruct->pEnabledFeatures && !vk_validate_vkphysicaldevicefeatures((const VkPhysicalDeviceFeatures*)pStruct->pEnabledFeatures)) 433 return 0; 434 return 1; 435 } 436 uint32_t vk_validate_vkdevicequeuecreateinfo(const VkDeviceQueueCreateInfo* pStruct) 437 { 438 if (!validate_VkStructureType(pStruct->sType)) 439 return 0; 440 return 1; 441 } 442 uint32_t vk_validate_vkdispatchindirectcommand(const VkDispatchIndirectCommand* pStruct) 443 { 444 return 1; 445 } 446 uint32_t vk_validate_vkdisplaymodecreateinfokhr(const VkDisplayModeCreateInfoKHR* pStruct) 447 { 448 if (!validate_VkStructureType(pStruct->sType)) 449 return 0; 450 if (!vk_validate_vkdisplaymodeparameterskhr((const VkDisplayModeParametersKHR*)&pStruct->parameters)) 451 return 0; 452 return 1; 453 } 454 uint32_t vk_validate_vkdisplaymodeparameterskhr(const VkDisplayModeParametersKHR* pStruct) 455 { 456 if (!vk_validate_vkextent2d((const VkExtent2D*)&pStruct->visibleRegion)) 457 return 0; 458 return 1; 459 } 460 uint32_t vk_validate_vkdisplaymodepropertieskhr(const VkDisplayModePropertiesKHR* pStruct) 461 { 462 if (!vk_validate_vkdisplaymodeparameterskhr((const VkDisplayModeParametersKHR*)&pStruct->parameters)) 463 return 0; 464 return 1; 465 } 466 uint32_t vk_validate_vkdisplayplanecapabilitieskhr(const VkDisplayPlaneCapabilitiesKHR* pStruct) 467 { 468 if (!vk_validate_vkoffset2d((const VkOffset2D*)&pStruct->minSrcPosition)) 469 return 0; 470 if (!vk_validate_vkoffset2d((const VkOffset2D*)&pStruct->maxSrcPosition)) 471 return 0; 472 if (!vk_validate_vkextent2d((const VkExtent2D*)&pStruct->minSrcExtent)) 473 return 0; 474 if (!vk_validate_vkextent2d((const VkExtent2D*)&pStruct->maxSrcExtent)) 475 return 0; 476 if (!vk_validate_vkoffset2d((const VkOffset2D*)&pStruct->minDstPosition)) 477 return 0; 478 if (!vk_validate_vkoffset2d((const VkOffset2D*)&pStruct->maxDstPosition)) 479 return 0; 480 if (!vk_validate_vkextent2d((const VkExtent2D*)&pStruct->minDstExtent)) 481 return 0; 482 if (!vk_validate_vkextent2d((const VkExtent2D*)&pStruct->maxDstExtent)) 483 return 0; 484 return 1; 485 } 486 uint32_t vk_validate_vkdisplayplanepropertieskhr(const VkDisplayPlanePropertiesKHR* pStruct) 487 { 488 return 1; 489 } 490 uint32_t vk_validate_vkdisplaypresentinfokhr(const VkDisplayPresentInfoKHR* pStruct) 491 { 492 if (!validate_VkStructureType(pStruct->sType)) 493 return 0; 494 if (!vk_validate_vkrect2d((const VkRect2D*)&pStruct->srcRect)) 495 return 0; 496 if (!vk_validate_vkrect2d((const VkRect2D*)&pStruct->dstRect)) 497 return 0; 498 return 1; 499 } 500 uint32_t vk_validate_vkdisplaypropertieskhr(const VkDisplayPropertiesKHR* pStruct) 501 { 502 if (!vk_validate_vkextent2d((const VkExtent2D*)&pStruct->physicalDimensions)) 503 return 0; 504 if (!vk_validate_vkextent2d((const VkExtent2D*)&pStruct->physicalResolution)) 505 return 0; 506 return 1; 507 } 508 uint32_t vk_validate_vkdisplaysurfacecreateinfokhr(const VkDisplaySurfaceCreateInfoKHR* pStruct) 509 { 510 if (!validate_VkStructureType(pStruct->sType)) 511 return 0; 512 if (!validate_VkSurfaceTransformFlagBitsKHR(pStruct->transform)) 513 return 0; 514 if (!validate_VkDisplayPlaneAlphaFlagBitsKHR(pStruct->alphaMode)) 515 return 0; 516 if (!vk_validate_vkextent2d((const VkExtent2D*)&pStruct->imageExtent)) 517 return 0; 518 return 1; 519 } 520 uint32_t vk_validate_vkdrawindexedindirectcommand(const VkDrawIndexedIndirectCommand* pStruct) 521 { 522 return 1; 523 } 524 uint32_t vk_validate_vkdrawindirectcommand(const VkDrawIndirectCommand* pStruct) 525 { 526 return 1; 527 } 528 uint32_t vk_validate_vkeventcreateinfo(const VkEventCreateInfo* pStruct) 529 { 530 if (!validate_VkStructureType(pStruct->sType)) 531 return 0; 532 return 1; 533 } 534 uint32_t vk_validate_vkextensionproperties(const VkExtensionProperties* pStruct) 535 { 536 return 1; 537 } 538 uint32_t vk_validate_vkextent2d(const VkExtent2D* pStruct) 539 { 540 return 1; 541 } 542 uint32_t vk_validate_vkextent3d(const VkExtent3D* pStruct) 543 { 544 return 1; 545 } 546 uint32_t vk_validate_vkfencecreateinfo(const VkFenceCreateInfo* pStruct) 547 { 548 if (!validate_VkStructureType(pStruct->sType)) 549 return 0; 550 return 1; 551 } 552 uint32_t vk_validate_vkformatproperties(const VkFormatProperties* pStruct) 553 { 554 return 1; 555 } 556 uint32_t vk_validate_vkframebuffercreateinfo(const VkFramebufferCreateInfo* pStruct) 557 { 558 if (!validate_VkStructureType(pStruct->sType)) 559 return 0; 560 return 1; 561 } 562 uint32_t vk_validate_vkgraphicspipelinecreateinfo(const VkGraphicsPipelineCreateInfo* pStruct) 563 { 564 if (!validate_VkStructureType(pStruct->sType)) 565 return 0; 566 if (pStruct->pStages && !vk_validate_vkpipelineshaderstagecreateinfo((const VkPipelineShaderStageCreateInfo*)pStruct->pStages)) 567 return 0; 568 if (pStruct->pVertexInputState && !vk_validate_vkpipelinevertexinputstatecreateinfo((const VkPipelineVertexInputStateCreateInfo*)pStruct->pVertexInputState)) 569 return 0; 570 if (pStruct->pInputAssemblyState && !vk_validate_vkpipelineinputassemblystatecreateinfo((const VkPipelineInputAssemblyStateCreateInfo*)pStruct->pInputAssemblyState)) 571 return 0; 572 if (pStruct->pTessellationState && !vk_validate_vkpipelinetessellationstatecreateinfo((const VkPipelineTessellationStateCreateInfo*)pStruct->pTessellationState)) 573 return 0; 574 if (pStruct->pViewportState && !vk_validate_vkpipelineviewportstatecreateinfo((const VkPipelineViewportStateCreateInfo*)pStruct->pViewportState)) 575 return 0; 576 if (pStruct->pRasterizationState && !vk_validate_vkpipelinerasterizationstatecreateinfo((const VkPipelineRasterizationStateCreateInfo*)pStruct->pRasterizationState)) 577 return 0; 578 if (pStruct->pMultisampleState && !vk_validate_vkpipelinemultisamplestatecreateinfo((const VkPipelineMultisampleStateCreateInfo*)pStruct->pMultisampleState)) 579 return 0; 580 if (pStruct->pDepthStencilState && !vk_validate_vkpipelinedepthstencilstatecreateinfo((const VkPipelineDepthStencilStateCreateInfo*)pStruct->pDepthStencilState)) 581 return 0; 582 if (pStruct->pColorBlendState && !vk_validate_vkpipelinecolorblendstatecreateinfo((const VkPipelineColorBlendStateCreateInfo*)pStruct->pColorBlendState)) 583 return 0; 584 if (pStruct->pDynamicState && !vk_validate_vkpipelinedynamicstatecreateinfo((const VkPipelineDynamicStateCreateInfo*)pStruct->pDynamicState)) 585 return 0; 586 return 1; 587 } 588 uint32_t vk_validate_vkimageblit(const VkImageBlit* pStruct) 589 { 590 if (!vk_validate_vkimagesubresourcelayers((const VkImageSubresourceLayers*)&pStruct->srcSubresource)) 591 return 0; 592 if (!vk_validate_vkoffset3d((const VkOffset3D*)&pStruct->srcOffsets)) 593 return 0; 594 if (!vk_validate_vkimagesubresourcelayers((const VkImageSubresourceLayers*)&pStruct->dstSubresource)) 595 return 0; 596 if (!vk_validate_vkoffset3d((const VkOffset3D*)&pStruct->dstOffsets)) 597 return 0; 598 return 1; 599 } 600 uint32_t vk_validate_vkimagecopy(const VkImageCopy* pStruct) 601 { 602 if (!vk_validate_vkimagesubresourcelayers((const VkImageSubresourceLayers*)&pStruct->srcSubresource)) 603 return 0; 604 if (!vk_validate_vkoffset3d((const VkOffset3D*)&pStruct->srcOffset)) 605 return 0; 606 if (!vk_validate_vkimagesubresourcelayers((const VkImageSubresourceLayers*)&pStruct->dstSubresource)) 607 return 0; 608 if (!vk_validate_vkoffset3d((const VkOffset3D*)&pStruct->dstOffset)) 609 return 0; 610 if (!vk_validate_vkextent3d((const VkExtent3D*)&pStruct->extent)) 611 return 0; 612 return 1; 613 } 614 uint32_t vk_validate_vkimagecreateinfo(const VkImageCreateInfo* pStruct) 615 { 616 if (!validate_VkStructureType(pStruct->sType)) 617 return 0; 618 if (!validate_VkImageType(pStruct->imageType)) 619 return 0; 620 if (!validate_VkFormat(pStruct->format)) 621 return 0; 622 if (!vk_validate_vkextent3d((const VkExtent3D*)&pStruct->extent)) 623 return 0; 624 if (!validate_VkSampleCountFlagBits(pStruct->samples)) 625 return 0; 626 if (!validate_VkImageTiling(pStruct->tiling)) 627 return 0; 628 if (!validate_VkSharingMode(pStruct->sharingMode)) 629 return 0; 630 if (!validate_VkImageLayout(pStruct->initialLayout)) 631 return 0; 632 return 1; 633 } 634 uint32_t vk_validate_vkimageformatproperties(const VkImageFormatProperties* pStruct) 635 { 636 if (!vk_validate_vkextent3d((const VkExtent3D*)&pStruct->maxExtent)) 637 return 0; 638 return 1; 639 } 640 uint32_t vk_validate_vkimagememorybarrier(const VkImageMemoryBarrier* pStruct) 641 { 642 if (!validate_VkStructureType(pStruct->sType)) 643 return 0; 644 if (!validate_VkImageLayout(pStruct->oldLayout)) 645 return 0; 646 if (!validate_VkImageLayout(pStruct->newLayout)) 647 return 0; 648 if (!vk_validate_vkimagesubresourcerange((const VkImageSubresourceRange*)&pStruct->subresourceRange)) 649 return 0; 650 return 1; 651 } 652 uint32_t vk_validate_vkimageresolve(const VkImageResolve* pStruct) 653 { 654 if (!vk_validate_vkimagesubresourcelayers((const VkImageSubresourceLayers*)&pStruct->srcSubresource)) 655 return 0; 656 if (!vk_validate_vkoffset3d((const VkOffset3D*)&pStruct->srcOffset)) 657 return 0; 658 if (!vk_validate_vkimagesubresourcelayers((const VkImageSubresourceLayers*)&pStruct->dstSubresource)) 659 return 0; 660 if (!vk_validate_vkoffset3d((const VkOffset3D*)&pStruct->dstOffset)) 661 return 0; 662 if (!vk_validate_vkextent3d((const VkExtent3D*)&pStruct->extent)) 663 return 0; 664 return 1; 665 } 666 uint32_t vk_validate_vkimagesubresource(const VkImageSubresource* pStruct) 667 { 668 return 1; 669 } 670 uint32_t vk_validate_vkimagesubresourcelayers(const VkImageSubresourceLayers* pStruct) 671 { 672 return 1; 673 } 674 uint32_t vk_validate_vkimagesubresourcerange(const VkImageSubresourceRange* pStruct) 675 { 676 return 1; 677 } 678 uint32_t vk_validate_vkimageviewcreateinfo(const VkImageViewCreateInfo* pStruct) 679 { 680 if (!validate_VkStructureType(pStruct->sType)) 681 return 0; 682 if (!validate_VkImageViewType(pStruct->viewType)) 683 return 0; 684 if (!validate_VkFormat(pStruct->format)) 685 return 0; 686 if (!vk_validate_vkcomponentmapping((const VkComponentMapping*)&pStruct->components)) 687 return 0; 688 if (!vk_validate_vkimagesubresourcerange((const VkImageSubresourceRange*)&pStruct->subresourceRange)) 689 return 0; 690 return 1; 691 } 692 uint32_t vk_validate_vkinstancecreateinfo(const VkInstanceCreateInfo* pStruct) 693 { 694 if (!validate_VkStructureType(pStruct->sType)) 695 return 0; 696 if (pStruct->pApplicationInfo && !vk_validate_vkapplicationinfo((const VkApplicationInfo*)pStruct->pApplicationInfo)) 697 return 0; 698 return 1; 699 } 700 uint32_t vk_validate_vklayerproperties(const VkLayerProperties* pStruct) 701 { 702 return 1; 703 } 704 uint32_t vk_validate_vkmappedmemoryrange(const VkMappedMemoryRange* pStruct) 705 { 706 if (!validate_VkStructureType(pStruct->sType)) 707 return 0; 708 return 1; 709 } 710 uint32_t vk_validate_vkmemoryallocateinfo(const VkMemoryAllocateInfo* pStruct) 711 { 712 if (!validate_VkStructureType(pStruct->sType)) 713 return 0; 714 return 1; 715 } 716 uint32_t vk_validate_vkmemorybarrier(const VkMemoryBarrier* pStruct) 717 { 718 if (!validate_VkStructureType(pStruct->sType)) 719 return 0; 720 return 1; 721 } 722 uint32_t vk_validate_vkmemoryheap(const VkMemoryHeap* pStruct) 723 { 724 return 1; 725 } 726 uint32_t vk_validate_vkmemoryrequirements(const VkMemoryRequirements* pStruct) 727 { 728 return 1; 729 } 730 uint32_t vk_validate_vkmemorytype(const VkMemoryType* pStruct) 731 { 732 return 1; 733 } 734 #ifdef VK_USE_PLATFORM_MIR_KHR 735 uint32_t vk_validate_vkmirsurfacecreateinfokhr(const VkMirSurfaceCreateInfoKHR* pStruct) 736 { 737 if (!validate_VkStructureType(pStruct->sType)) 738 return 0; 739 return 1; 740 } 741 #endif //VK_USE_PLATFORM_MIR_KHR 742 uint32_t vk_validate_vkoffset2d(const VkOffset2D* pStruct) 743 { 744 return 1; 745 } 746 uint32_t vk_validate_vkoffset3d(const VkOffset3D* pStruct) 747 { 748 return 1; 749 } 750 uint32_t vk_validate_vkphysicaldevicefeatures(const VkPhysicalDeviceFeatures* pStruct) 751 { 752 return 1; 753 } 754 uint32_t vk_validate_vkphysicaldevicelimits(const VkPhysicalDeviceLimits* pStruct) 755 { 756 return 1; 757 } 758 uint32_t vk_validate_vkphysicaldevicememoryproperties(const VkPhysicalDeviceMemoryProperties* pStruct) 759 { 760 if (!vk_validate_vkmemorytype((const VkMemoryType*)&pStruct->memoryTypes)) 761 return 0; 762 if (!vk_validate_vkmemoryheap((const VkMemoryHeap*)&pStruct->memoryHeaps)) 763 return 0; 764 return 1; 765 } 766 uint32_t vk_validate_vkphysicaldeviceproperties(const VkPhysicalDeviceProperties* pStruct) 767 { 768 if (!validate_VkPhysicalDeviceType(pStruct->deviceType)) 769 return 0; 770 if (!vk_validate_vkphysicaldevicelimits((const VkPhysicalDeviceLimits*)&pStruct->limits)) 771 return 0; 772 if (!vk_validate_vkphysicaldevicesparseproperties((const VkPhysicalDeviceSparseProperties*)&pStruct->sparseProperties)) 773 return 0; 774 return 1; 775 } 776 uint32_t vk_validate_vkphysicaldevicesparseproperties(const VkPhysicalDeviceSparseProperties* pStruct) 777 { 778 return 1; 779 } 780 uint32_t vk_validate_vkpipelinecachecreateinfo(const VkPipelineCacheCreateInfo* pStruct) 781 { 782 if (!validate_VkStructureType(pStruct->sType)) 783 return 0; 784 return 1; 785 } 786 uint32_t vk_validate_vkpipelinecolorblendattachmentstate(const VkPipelineColorBlendAttachmentState* pStruct) 787 { 788 if (!validate_VkBlendFactor(pStruct->srcColorBlendFactor)) 789 return 0; 790 if (!validate_VkBlendFactor(pStruct->dstColorBlendFactor)) 791 return 0; 792 if (!validate_VkBlendOp(pStruct->colorBlendOp)) 793 return 0; 794 if (!validate_VkBlendFactor(pStruct->srcAlphaBlendFactor)) 795 return 0; 796 if (!validate_VkBlendFactor(pStruct->dstAlphaBlendFactor)) 797 return 0; 798 if (!validate_VkBlendOp(pStruct->alphaBlendOp)) 799 return 0; 800 return 1; 801 } 802 uint32_t vk_validate_vkpipelinecolorblendstatecreateinfo(const VkPipelineColorBlendStateCreateInfo* pStruct) 803 { 804 if (!validate_VkStructureType(pStruct->sType)) 805 return 0; 806 if (!validate_VkLogicOp(pStruct->logicOp)) 807 return 0; 808 if (pStruct->pAttachments && !vk_validate_vkpipelinecolorblendattachmentstate((const VkPipelineColorBlendAttachmentState*)pStruct->pAttachments)) 809 return 0; 810 return 1; 811 } 812 uint32_t vk_validate_vkpipelinedepthstencilstatecreateinfo(const VkPipelineDepthStencilStateCreateInfo* pStruct) 813 { 814 if (!validate_VkStructureType(pStruct->sType)) 815 return 0; 816 if (!validate_VkCompareOp(pStruct->depthCompareOp)) 817 return 0; 818 if (!vk_validate_vkstencilopstate((const VkStencilOpState*)&pStruct->front)) 819 return 0; 820 if (!vk_validate_vkstencilopstate((const VkStencilOpState*)&pStruct->back)) 821 return 0; 822 return 1; 823 } 824 uint32_t vk_validate_vkpipelinedynamicstatecreateinfo(const VkPipelineDynamicStateCreateInfo* pStruct) 825 { 826 if (!validate_VkStructureType(pStruct->sType)) 827 return 0; 828 return 1; 829 } 830 uint32_t vk_validate_vkpipelineinputassemblystatecreateinfo(const VkPipelineInputAssemblyStateCreateInfo* pStruct) 831 { 832 if (!validate_VkStructureType(pStruct->sType)) 833 return 0; 834 if (!validate_VkPrimitiveTopology(pStruct->topology)) 835 return 0; 836 return 1; 837 } 838 uint32_t vk_validate_vkpipelinelayoutcreateinfo(const VkPipelineLayoutCreateInfo* pStruct) 839 { 840 if (!validate_VkStructureType(pStruct->sType)) 841 return 0; 842 if (pStruct->pPushConstantRanges && !vk_validate_vkpushconstantrange((const VkPushConstantRange*)pStruct->pPushConstantRanges)) 843 return 0; 844 return 1; 845 } 846 uint32_t vk_validate_vkpipelinemultisamplestatecreateinfo(const VkPipelineMultisampleStateCreateInfo* pStruct) 847 { 848 if (!validate_VkStructureType(pStruct->sType)) 849 return 0; 850 if (!validate_VkSampleCountFlagBits(pStruct->rasterizationSamples)) 851 return 0; 852 return 1; 853 } 854 uint32_t vk_validate_vkpipelinerasterizationstatecreateinfo(const VkPipelineRasterizationStateCreateInfo* pStruct) 855 { 856 if (!validate_VkStructureType(pStruct->sType)) 857 return 0; 858 if (!validate_VkPolygonMode(pStruct->polygonMode)) 859 return 0; 860 if (!validate_VkFrontFace(pStruct->frontFace)) 861 return 0; 862 return 1; 863 } 864 uint32_t vk_validate_vkpipelinerasterizationstaterasterizationorderamd(const VkPipelineRasterizationStateRasterizationOrderAMD* pStruct) 865 { 866 if (!validate_VkStructureType(pStruct->sType)) 867 return 0; 868 if (!validate_VkRasterizationOrderAMD(pStruct->rasterizationOrder)) 869 return 0; 870 return 1; 871 } 872 uint32_t vk_validate_vkpipelineshaderstagecreateinfo(const VkPipelineShaderStageCreateInfo* pStruct) 873 { 874 if (!validate_VkStructureType(pStruct->sType)) 875 return 0; 876 if (!validate_VkShaderStageFlagBits(pStruct->stage)) 877 return 0; 878 if (pStruct->pSpecializationInfo && !vk_validate_vkspecializationinfo((const VkSpecializationInfo*)pStruct->pSpecializationInfo)) 879 return 0; 880 return 1; 881 } 882 uint32_t vk_validate_vkpipelinetessellationstatecreateinfo(const VkPipelineTessellationStateCreateInfo* pStruct) 883 { 884 if (!validate_VkStructureType(pStruct->sType)) 885 return 0; 886 return 1; 887 } 888 uint32_t vk_validate_vkpipelinevertexinputstatecreateinfo(const VkPipelineVertexInputStateCreateInfo* pStruct) 889 { 890 if (!validate_VkStructureType(pStruct->sType)) 891 return 0; 892 if (pStruct->pVertexBindingDescriptions && !vk_validate_vkvertexinputbindingdescription((const VkVertexInputBindingDescription*)pStruct->pVertexBindingDescriptions)) 893 return 0; 894 if (pStruct->pVertexAttributeDescriptions && !vk_validate_vkvertexinputattributedescription((const VkVertexInputAttributeDescription*)pStruct->pVertexAttributeDescriptions)) 895 return 0; 896 return 1; 897 } 898 uint32_t vk_validate_vkpipelineviewportstatecreateinfo(const VkPipelineViewportStateCreateInfo* pStruct) 899 { 900 if (!validate_VkStructureType(pStruct->sType)) 901 return 0; 902 if (pStruct->pViewports && !vk_validate_vkviewport((const VkViewport*)pStruct->pViewports)) 903 return 0; 904 if (pStruct->pScissors && !vk_validate_vkrect2d((const VkRect2D*)pStruct->pScissors)) 905 return 0; 906 return 1; 907 } 908 uint32_t vk_validate_vkpresentinfokhr(const VkPresentInfoKHR* pStruct) 909 { 910 if (!validate_VkStructureType(pStruct->sType)) 911 return 0; 912 return 1; 913 } 914 uint32_t vk_validate_vkpushconstantrange(const VkPushConstantRange* pStruct) 915 { 916 return 1; 917 } 918 uint32_t vk_validate_vkquerypoolcreateinfo(const VkQueryPoolCreateInfo* pStruct) 919 { 920 if (!validate_VkStructureType(pStruct->sType)) 921 return 0; 922 if (!validate_VkQueryType(pStruct->queryType)) 923 return 0; 924 return 1; 925 } 926 uint32_t vk_validate_vkqueuefamilyproperties(const VkQueueFamilyProperties* pStruct) 927 { 928 if (!vk_validate_vkextent3d((const VkExtent3D*)&pStruct->minImageTransferGranularity)) 929 return 0; 930 return 1; 931 } 932 uint32_t vk_validate_vkrect2d(const VkRect2D* pStruct) 933 { 934 if (!vk_validate_vkoffset2d((const VkOffset2D*)&pStruct->offset)) 935 return 0; 936 if (!vk_validate_vkextent2d((const VkExtent2D*)&pStruct->extent)) 937 return 0; 938 return 1; 939 } 940 uint32_t vk_validate_vkrenderpassbegininfo(const VkRenderPassBeginInfo* pStruct) 941 { 942 if (!validate_VkStructureType(pStruct->sType)) 943 return 0; 944 if (!vk_validate_vkrect2d((const VkRect2D*)&pStruct->renderArea)) 945 return 0; 946 if (pStruct->pClearValues && !vk_validate_vkclearvalue((const VkClearValue*)pStruct->pClearValues)) 947 return 0; 948 return 1; 949 } 950 uint32_t vk_validate_vkrenderpasscreateinfo(const VkRenderPassCreateInfo* pStruct) 951 { 952 if (!validate_VkStructureType(pStruct->sType)) 953 return 0; 954 if (pStruct->pAttachments && !vk_validate_vkattachmentdescription((const VkAttachmentDescription*)pStruct->pAttachments)) 955 return 0; 956 if (pStruct->pSubpasses && !vk_validate_vksubpassdescription((const VkSubpassDescription*)pStruct->pSubpasses)) 957 return 0; 958 if (pStruct->pDependencies && !vk_validate_vksubpassdependency((const VkSubpassDependency*)pStruct->pDependencies)) 959 return 0; 960 return 1; 961 } 962 uint32_t vk_validate_vksamplercreateinfo(const VkSamplerCreateInfo* pStruct) 963 { 964 if (!validate_VkStructureType(pStruct->sType)) 965 return 0; 966 if (!validate_VkFilter(pStruct->magFilter)) 967 return 0; 968 if (!validate_VkFilter(pStruct->minFilter)) 969 return 0; 970 if (!validate_VkSamplerMipmapMode(pStruct->mipmapMode)) 971 return 0; 972 if (!validate_VkSamplerAddressMode(pStruct->addressModeU)) 973 return 0; 974 if (!validate_VkSamplerAddressMode(pStruct->addressModeV)) 975 return 0; 976 if (!validate_VkSamplerAddressMode(pStruct->addressModeW)) 977 return 0; 978 if (!validate_VkCompareOp(pStruct->compareOp)) 979 return 0; 980 if (!validate_VkBorderColor(pStruct->borderColor)) 981 return 0; 982 return 1; 983 } 984 uint32_t vk_validate_vksemaphorecreateinfo(const VkSemaphoreCreateInfo* pStruct) 985 { 986 if (!validate_VkStructureType(pStruct->sType)) 987 return 0; 988 return 1; 989 } 990 uint32_t vk_validate_vkshadermodulecreateinfo(const VkShaderModuleCreateInfo* pStruct) 991 { 992 if (!validate_VkStructureType(pStruct->sType)) 993 return 0; 994 return 1; 995 } 996 uint32_t vk_validate_vksparsebuffermemorybindinfo(const VkSparseBufferMemoryBindInfo* pStruct) 997 { 998 if (pStruct->pBinds && !vk_validate_vksparsememorybind((const VkSparseMemoryBind*)pStruct->pBinds)) 999 return 0; 1000 return 1; 1001 } 1002 uint32_t vk_validate_vksparseimageformatproperties(const VkSparseImageFormatProperties* pStruct) 1003 { 1004 if (!vk_validate_vkextent3d((const VkExtent3D*)&pStruct->imageGranularity)) 1005 return 0; 1006 return 1; 1007 } 1008 uint32_t vk_validate_vksparseimagememorybind(const VkSparseImageMemoryBind* pStruct) 1009 { 1010 if (!vk_validate_vkimagesubresource((const VkImageSubresource*)&pStruct->subresource)) 1011 return 0; 1012 if (!vk_validate_vkoffset3d((const VkOffset3D*)&pStruct->offset)) 1013 return 0; 1014 if (!vk_validate_vkextent3d((const VkExtent3D*)&pStruct->extent)) 1015 return 0; 1016 return 1; 1017 } 1018 uint32_t vk_validate_vksparseimagememorybindinfo(const VkSparseImageMemoryBindInfo* pStruct) 1019 { 1020 if (pStruct->pBinds && !vk_validate_vksparseimagememorybind((const VkSparseImageMemoryBind*)pStruct->pBinds)) 1021 return 0; 1022 return 1; 1023 } 1024 uint32_t vk_validate_vksparseimagememoryrequirements(const VkSparseImageMemoryRequirements* pStruct) 1025 { 1026 if (!vk_validate_vksparseimageformatproperties((const VkSparseImageFormatProperties*)&pStruct->formatProperties)) 1027 return 0; 1028 return 1; 1029 } 1030 uint32_t vk_validate_vksparseimageopaquememorybindinfo(const VkSparseImageOpaqueMemoryBindInfo* pStruct) 1031 { 1032 if (pStruct->pBinds && !vk_validate_vksparsememorybind((const VkSparseMemoryBind*)pStruct->pBinds)) 1033 return 0; 1034 return 1; 1035 } 1036 uint32_t vk_validate_vksparsememorybind(const VkSparseMemoryBind* pStruct) 1037 { 1038 return 1; 1039 } 1040 uint32_t vk_validate_vkspecializationinfo(const VkSpecializationInfo* pStruct) 1041 { 1042 if (pStruct->pMapEntries && !vk_validate_vkspecializationmapentry((const VkSpecializationMapEntry*)pStruct->pMapEntries)) 1043 return 0; 1044 return 1; 1045 } 1046 uint32_t vk_validate_vkspecializationmapentry(const VkSpecializationMapEntry* pStruct) 1047 { 1048 return 1; 1049 } 1050 uint32_t vk_validate_vkstencilopstate(const VkStencilOpState* pStruct) 1051 { 1052 if (!validate_VkStencilOp(pStruct->failOp)) 1053 return 0; 1054 if (!validate_VkStencilOp(pStruct->passOp)) 1055 return 0; 1056 if (!validate_VkStencilOp(pStruct->depthFailOp)) 1057 return 0; 1058 if (!validate_VkCompareOp(pStruct->compareOp)) 1059 return 0; 1060 return 1; 1061 } 1062 uint32_t vk_validate_vksubmitinfo(const VkSubmitInfo* pStruct) 1063 { 1064 if (!validate_VkStructureType(pStruct->sType)) 1065 return 0; 1066 return 1; 1067 } 1068 uint32_t vk_validate_vksubpassdependency(const VkSubpassDependency* pStruct) 1069 { 1070 return 1; 1071 } 1072 uint32_t vk_validate_vksubpassdescription(const VkSubpassDescription* pStruct) 1073 { 1074 if (!validate_VkPipelineBindPoint(pStruct->pipelineBindPoint)) 1075 return 0; 1076 if (pStruct->pInputAttachments && !vk_validate_vkattachmentreference((const VkAttachmentReference*)pStruct->pInputAttachments)) 1077 return 0; 1078 if (pStruct->pColorAttachments && !vk_validate_vkattachmentreference((const VkAttachmentReference*)pStruct->pColorAttachments)) 1079 return 0; 1080 if (pStruct->pResolveAttachments && !vk_validate_vkattachmentreference((const VkAttachmentReference*)pStruct->pResolveAttachments)) 1081 return 0; 1082 if (pStruct->pDepthStencilAttachment && !vk_validate_vkattachmentreference((const VkAttachmentReference*)pStruct->pDepthStencilAttachment)) 1083 return 0; 1084 return 1; 1085 } 1086 uint32_t vk_validate_vksubresourcelayout(const VkSubresourceLayout* pStruct) 1087 { 1088 return 1; 1089 } 1090 uint32_t vk_validate_vksurfacecapabilitieskhr(const VkSurfaceCapabilitiesKHR* pStruct) 1091 { 1092 if (!vk_validate_vkextent2d((const VkExtent2D*)&pStruct->currentExtent)) 1093 return 0; 1094 if (!vk_validate_vkextent2d((const VkExtent2D*)&pStruct->minImageExtent)) 1095 return 0; 1096 if (!vk_validate_vkextent2d((const VkExtent2D*)&pStruct->maxImageExtent)) 1097 return 0; 1098 if (!validate_VkSurfaceTransformFlagBitsKHR(pStruct->currentTransform)) 1099 return 0; 1100 return 1; 1101 } 1102 uint32_t vk_validate_vksurfaceformatkhr(const VkSurfaceFormatKHR* pStruct) 1103 { 1104 if (!validate_VkFormat(pStruct->format)) 1105 return 0; 1106 if (!validate_VkColorSpaceKHR(pStruct->colorSpace)) 1107 return 0; 1108 return 1; 1109 } 1110 uint32_t vk_validate_vkswapchaincreateinfokhr(const VkSwapchainCreateInfoKHR* pStruct) 1111 { 1112 if (!validate_VkStructureType(pStruct->sType)) 1113 return 0; 1114 if (!validate_VkFormat(pStruct->imageFormat)) 1115 return 0; 1116 if (!validate_VkColorSpaceKHR(pStruct->imageColorSpace)) 1117 return 0; 1118 if (!vk_validate_vkextent2d((const VkExtent2D*)&pStruct->imageExtent)) 1119 return 0; 1120 if (!validate_VkSharingMode(pStruct->imageSharingMode)) 1121 return 0; 1122 if (!validate_VkSurfaceTransformFlagBitsKHR(pStruct->preTransform)) 1123 return 0; 1124 if (!validate_VkCompositeAlphaFlagBitsKHR(pStruct->compositeAlpha)) 1125 return 0; 1126 if (!validate_VkPresentModeKHR(pStruct->presentMode)) 1127 return 0; 1128 return 1; 1129 } 1130 uint32_t vk_validate_vkvertexinputattributedescription(const VkVertexInputAttributeDescription* pStruct) 1131 { 1132 if (!validate_VkFormat(pStruct->format)) 1133 return 0; 1134 return 1; 1135 } 1136 uint32_t vk_validate_vkvertexinputbindingdescription(const VkVertexInputBindingDescription* pStruct) 1137 { 1138 if (!validate_VkVertexInputRate(pStruct->inputRate)) 1139 return 0; 1140 return 1; 1141 } 1142 uint32_t vk_validate_vkviewport(const VkViewport* pStruct) 1143 { 1144 return 1; 1145 } 1146 #ifdef VK_USE_PLATFORM_WAYLAND_KHR 1147 uint32_t vk_validate_vkwaylandsurfacecreateinfokhr(const VkWaylandSurfaceCreateInfoKHR* pStruct) 1148 { 1149 if (!validate_VkStructureType(pStruct->sType)) 1150 return 0; 1151 return 1; 1152 } 1153 #endif //VK_USE_PLATFORM_WAYLAND_KHR 1154 #ifdef VK_USE_PLATFORM_WIN32_KHR 1155 uint32_t vk_validate_vkwin32surfacecreateinfokhr(const VkWin32SurfaceCreateInfoKHR* pStruct) 1156 { 1157 if (!validate_VkStructureType(pStruct->sType)) 1158 return 0; 1159 return 1; 1160 } 1161 #endif //VK_USE_PLATFORM_WIN32_KHR 1162 uint32_t vk_validate_vkwritedescriptorset(const VkWriteDescriptorSet* pStruct) 1163 { 1164 if (!validate_VkStructureType(pStruct->sType)) 1165 return 0; 1166 if (!validate_VkDescriptorType(pStruct->descriptorType)) 1167 return 0; 1168 if (pStruct->pImageInfo && !vk_validate_vkdescriptorimageinfo((const VkDescriptorImageInfo*)pStruct->pImageInfo)) 1169 return 0; 1170 if (pStruct->pBufferInfo && !vk_validate_vkdescriptorbufferinfo((const VkDescriptorBufferInfo*)pStruct->pBufferInfo)) 1171 return 0; 1172 return 1; 1173 } 1174 #ifdef VK_USE_PLATFORM_XCB_KHR 1175 uint32_t vk_validate_vkxcbsurfacecreateinfokhr(const VkXcbSurfaceCreateInfoKHR* pStruct) 1176 { 1177 if (!validate_VkStructureType(pStruct->sType)) 1178 return 0; 1179 return 1; 1180 } 1181 #endif //VK_USE_PLATFORM_XCB_KHR 1182 #ifdef VK_USE_PLATFORM_XLIB_KHR 1183 uint32_t vk_validate_vkxlibsurfacecreateinfokhr(const VkXlibSurfaceCreateInfoKHR* pStruct) 1184 { 1185 if (!validate_VkStructureType(pStruct->sType)) 1186 return 0; 1187 return 1; 1188 } 1189 #endif //VK_USE_PLATFORM_XLIB_KHR