/* WARNING: This is auto-generated file. Do not modify, since changes will
 * be lost! Modify the generating script instead.
 */
const char*	getPipelineCacheHeaderVersionName						(VkPipelineCacheHeaderVersion value);
const char*	getResultName											(VkResult value);
const char*	getStructureTypeName									(VkStructureType value);
const char*	getSystemAllocationScopeName							(VkSystemAllocationScope value);
const char*	getInternalAllocationTypeName							(VkInternalAllocationType value);
const char*	getFormatName											(VkFormat value);
const char*	getImageTypeName										(VkImageType value);
const char*	getImageTilingName										(VkImageTiling value);
const char*	getPhysicalDeviceTypeName								(VkPhysicalDeviceType value);
const char*	getQueryTypeName										(VkQueryType value);
const char*	getSharingModeName										(VkSharingMode value);
const char*	getImageLayoutName										(VkImageLayout value);
const char*	getImageViewTypeName									(VkImageViewType value);
const char*	getComponentSwizzleName									(VkComponentSwizzle value);
const char*	getVertexInputRateName									(VkVertexInputRate value);
const char*	getPrimitiveTopologyName								(VkPrimitiveTopology value);
const char*	getPolygonModeName										(VkPolygonMode value);
const char*	getFrontFaceName										(VkFrontFace value);
const char*	getCompareOpName										(VkCompareOp value);
const char*	getStencilOpName										(VkStencilOp value);
const char*	getLogicOpName											(VkLogicOp value);
const char*	getBlendFactorName										(VkBlendFactor value);
const char*	getBlendOpName											(VkBlendOp value);
const char*	getDynamicStateName										(VkDynamicState value);
const char*	getFilterName											(VkFilter value);
const char*	getSamplerMipmapModeName								(VkSamplerMipmapMode value);
const char*	getSamplerAddressModeName								(VkSamplerAddressMode value);
const char*	getBorderColorName										(VkBorderColor value);
const char*	getDescriptorTypeName									(VkDescriptorType value);
const char*	getAttachmentLoadOpName									(VkAttachmentLoadOp value);
const char*	getAttachmentStoreOpName								(VkAttachmentStoreOp value);
const char*	getPipelineBindPointName								(VkPipelineBindPoint value);
const char*	getCommandBufferLevelName								(VkCommandBufferLevel value);
const char*	getIndexTypeName										(VkIndexType value);
const char*	getSubpassContentsName									(VkSubpassContents value);
const char*	getObjectTypeName										(VkObjectType value);
const char*	getVendorIdName											(VkVendorId value);
const char*	getPointClippingBehaviorName							(VkPointClippingBehavior value);
const char*	getTessellationDomainOriginName							(VkTessellationDomainOrigin value);
const char*	getSamplerYcbcrModelConversionName						(VkSamplerYcbcrModelConversion value);
const char*	getSamplerYcbcrRangeName								(VkSamplerYcbcrRange value);
const char*	getChromaLocationName									(VkChromaLocation value);
const char*	getDescriptorUpdateTemplateTypeName						(VkDescriptorUpdateTemplateType value);
const char*	getColorSpaceKHRName									(VkColorSpaceKHR value);
const char*	getPresentModeKHRName									(VkPresentModeKHR value);
const char*	getPerformanceCounterUnitKHRName						(VkPerformanceCounterUnitKHR value);
const char*	getPerformanceCounterScopeKHRName						(VkPerformanceCounterScopeKHR value);
const char*	getPerformanceCounterStorageKHRName						(VkPerformanceCounterStorageKHR value);
const char*	getDriverIdKHRName										(VkDriverIdKHR value);
const char*	getShaderFloatControlsIndependenceKHRName				(VkShaderFloatControlsIndependenceKHR value);
const char*	getSemaphoreTypeKHRName									(VkSemaphoreTypeKHR value);
const char*	getPipelineExecutableStatisticFormatKHRName				(VkPipelineExecutableStatisticFormatKHR value);
const char*	getDebugReportObjectTypeEXTName							(VkDebugReportObjectTypeEXT value);
const char*	getRasterizationOrderAMDName							(VkRasterizationOrderAMD value);
const char*	getShaderInfoTypeAMDName								(VkShaderInfoTypeAMD value);
const char*	getValidationCheckEXTName								(VkValidationCheckEXT value);
const char*	getIndirectCommandsTokenTypeNVXName						(VkIndirectCommandsTokenTypeNVX value);
const char*	getObjectEntryTypeNVXName								(VkObjectEntryTypeNVX value);
const char*	getDisplayPowerStateEXTName								(VkDisplayPowerStateEXT value);
const char*	getDeviceEventTypeEXTName								(VkDeviceEventTypeEXT value);
const char*	getDisplayEventTypeEXTName								(VkDisplayEventTypeEXT value);
const char*	getViewportCoordinateSwizzleNVName						(VkViewportCoordinateSwizzleNV value);
const char*	getDiscardRectangleModeEXTName							(VkDiscardRectangleModeEXT value);
const char*	getConservativeRasterizationModeEXTName					(VkConservativeRasterizationModeEXT value);
const char*	getSamplerReductionModeEXTName							(VkSamplerReductionModeEXT value);
const char*	getBlendOverlapEXTName									(VkBlendOverlapEXT value);
const char*	getCoverageModulationModeNVName							(VkCoverageModulationModeNV value);
const char*	getValidationCacheHeaderVersionEXTName					(VkValidationCacheHeaderVersionEXT value);
const char*	getShadingRatePaletteEntryNVName						(VkShadingRatePaletteEntryNV value);
const char*	getCoarseSampleOrderTypeNVName							(VkCoarseSampleOrderTypeNV value);
const char*	getAccelerationStructureTypeNVName						(VkAccelerationStructureTypeNV value);
const char*	getRayTracingShaderGroupTypeNVName						(VkRayTracingShaderGroupTypeNV value);
const char*	getGeometryTypeNVName									(VkGeometryTypeNV value);
const char*	getCopyAccelerationStructureModeNVName					(VkCopyAccelerationStructureModeNV value);
const char*	getAccelerationStructureMemoryRequirementsTypeNVName	(VkAccelerationStructureMemoryRequirementsTypeNV value);
const char*	getQueueGlobalPriorityEXTName							(VkQueueGlobalPriorityEXT value);
const char*	getTimeDomainEXTName									(VkTimeDomainEXT value);
const char*	getMemoryOverallocationBehaviorAMDName					(VkMemoryOverallocationBehaviorAMD value);
const char*	getPerformanceConfigurationTypeINTELName				(VkPerformanceConfigurationTypeINTEL value);
const char*	getQueryPoolSamplingModeINTELName						(VkQueryPoolSamplingModeINTEL value);
const char*	getPerformanceOverrideTypeINTELName						(VkPerformanceOverrideTypeINTEL value);
const char*	getPerformanceParameterTypeINTELName					(VkPerformanceParameterTypeINTEL value);
const char*	getPerformanceValueTypeINTELName						(VkPerformanceValueTypeINTEL value);
const char*	getValidationFeatureEnableEXTName						(VkValidationFeatureEnableEXT value);
const char*	getValidationFeatureDisableEXTName						(VkValidationFeatureDisableEXT value);
const char*	getComponentTypeNVName									(VkComponentTypeNV value);
const char*	getScopeNVName											(VkScopeNV value);
const char*	getCoverageReductionModeNVName							(VkCoverageReductionModeNV value);
const char*	getLineRasterizationModeEXTName							(VkLineRasterizationModeEXT value);
const char*	getFullScreenExclusiveEXTName							(VkFullScreenExclusiveEXT value);

inline tcu::Format::Enum<VkPipelineCacheHeaderVersion>						getPipelineCacheHeaderVersionStr					(VkPipelineCacheHeaderVersion value)					{ return tcu::Format::Enum<VkPipelineCacheHeaderVersion>(getPipelineCacheHeaderVersionName, value);											}
inline tcu::Format::Enum<VkResult>											getResultStr										(VkResult value)										{ return tcu::Format::Enum<VkResult>(getResultName, value);																					}
inline tcu::Format::Enum<VkStructureType>									getStructureTypeStr									(VkStructureType value)									{ return tcu::Format::Enum<VkStructureType>(getStructureTypeName, value);																	}
inline tcu::Format::Enum<VkSystemAllocationScope>							getSystemAllocationScopeStr							(VkSystemAllocationScope value)							{ return tcu::Format::Enum<VkSystemAllocationScope>(getSystemAllocationScopeName, value);													}
inline tcu::Format::Enum<VkInternalAllocationType>							getInternalAllocationTypeStr						(VkInternalAllocationType value)						{ return tcu::Format::Enum<VkInternalAllocationType>(getInternalAllocationTypeName, value);													}
inline tcu::Format::Enum<VkFormat>											getFormatStr										(VkFormat value)										{ return tcu::Format::Enum<VkFormat>(getFormatName, value);																					}
inline tcu::Format::Enum<VkImageType>										getImageTypeStr										(VkImageType value)										{ return tcu::Format::Enum<VkImageType>(getImageTypeName, value);																			}
inline tcu::Format::Enum<VkImageTiling>										getImageTilingStr									(VkImageTiling value)									{ return tcu::Format::Enum<VkImageTiling>(getImageTilingName, value);																		}
inline tcu::Format::Enum<VkPhysicalDeviceType>								getPhysicalDeviceTypeStr							(VkPhysicalDeviceType value)							{ return tcu::Format::Enum<VkPhysicalDeviceType>(getPhysicalDeviceTypeName, value);															}
inline tcu::Format::Enum<VkQueryType>										getQueryTypeStr										(VkQueryType value)										{ return tcu::Format::Enum<VkQueryType>(getQueryTypeName, value);																			}
inline tcu::Format::Enum<VkSharingMode>										getSharingModeStr									(VkSharingMode value)									{ return tcu::Format::Enum<VkSharingMode>(getSharingModeName, value);																		}
inline tcu::Format::Enum<VkImageLayout>										getImageLayoutStr									(VkImageLayout value)									{ return tcu::Format::Enum<VkImageLayout>(getImageLayoutName, value);																		}
inline tcu::Format::Enum<VkImageViewType>									getImageViewTypeStr									(VkImageViewType value)									{ return tcu::Format::Enum<VkImageViewType>(getImageViewTypeName, value);																	}
inline tcu::Format::Enum<VkComponentSwizzle>								getComponentSwizzleStr								(VkComponentSwizzle value)								{ return tcu::Format::Enum<VkComponentSwizzle>(getComponentSwizzleName, value);																}
inline tcu::Format::Enum<VkVertexInputRate>									getVertexInputRateStr								(VkVertexInputRate value)								{ return tcu::Format::Enum<VkVertexInputRate>(getVertexInputRateName, value);																}
inline tcu::Format::Enum<VkPrimitiveTopology>								getPrimitiveTopologyStr								(VkPrimitiveTopology value)								{ return tcu::Format::Enum<VkPrimitiveTopology>(getPrimitiveTopologyName, value);															}
inline tcu::Format::Enum<VkPolygonMode>										getPolygonModeStr									(VkPolygonMode value)									{ return tcu::Format::Enum<VkPolygonMode>(getPolygonModeName, value);																		}
inline tcu::Format::Enum<VkFrontFace>										getFrontFaceStr										(VkFrontFace value)										{ return tcu::Format::Enum<VkFrontFace>(getFrontFaceName, value);																			}
inline tcu::Format::Enum<VkCompareOp>										getCompareOpStr										(VkCompareOp value)										{ return tcu::Format::Enum<VkCompareOp>(getCompareOpName, value);																			}
inline tcu::Format::Enum<VkStencilOp>										getStencilOpStr										(VkStencilOp value)										{ return tcu::Format::Enum<VkStencilOp>(getStencilOpName, value);																			}
inline tcu::Format::Enum<VkLogicOp>											getLogicOpStr										(VkLogicOp value)										{ return tcu::Format::Enum<VkLogicOp>(getLogicOpName, value);																				}
inline tcu::Format::Enum<VkBlendFactor>										getBlendFactorStr									(VkBlendFactor value)									{ return tcu::Format::Enum<VkBlendFactor>(getBlendFactorName, value);																		}
inline tcu::Format::Enum<VkBlendOp>											getBlendOpStr										(VkBlendOp value)										{ return tcu::Format::Enum<VkBlendOp>(getBlendOpName, value);																				}
inline tcu::Format::Enum<VkDynamicState>									getDynamicStateStr									(VkDynamicState value)									{ return tcu::Format::Enum<VkDynamicState>(getDynamicStateName, value);																		}
inline tcu::Format::Enum<VkFilter>											getFilterStr										(VkFilter value)										{ return tcu::Format::Enum<VkFilter>(getFilterName, value);																					}
inline tcu::Format::Enum<VkSamplerMipmapMode>								getSamplerMipmapModeStr								(VkSamplerMipmapMode value)								{ return tcu::Format::Enum<VkSamplerMipmapMode>(getSamplerMipmapModeName, value);															}
inline tcu::Format::Enum<VkSamplerAddressMode>								getSamplerAddressModeStr							(VkSamplerAddressMode value)							{ return tcu::Format::Enum<VkSamplerAddressMode>(getSamplerAddressModeName, value);															}
inline tcu::Format::Enum<VkBorderColor>										getBorderColorStr									(VkBorderColor value)									{ return tcu::Format::Enum<VkBorderColor>(getBorderColorName, value);																		}
inline tcu::Format::Enum<VkDescriptorType>									getDescriptorTypeStr								(VkDescriptorType value)								{ return tcu::Format::Enum<VkDescriptorType>(getDescriptorTypeName, value);																	}
inline tcu::Format::Enum<VkAttachmentLoadOp>								getAttachmentLoadOpStr								(VkAttachmentLoadOp value)								{ return tcu::Format::Enum<VkAttachmentLoadOp>(getAttachmentLoadOpName, value);																}
inline tcu::Format::Enum<VkAttachmentStoreOp>								getAttachmentStoreOpStr								(VkAttachmentStoreOp value)								{ return tcu::Format::Enum<VkAttachmentStoreOp>(getAttachmentStoreOpName, value);															}
inline tcu::Format::Enum<VkPipelineBindPoint>								getPipelineBindPointStr								(VkPipelineBindPoint value)								{ return tcu::Format::Enum<VkPipelineBindPoint>(getPipelineBindPointName, value);															}
inline tcu::Format::Enum<VkCommandBufferLevel>								getCommandBufferLevelStr							(VkCommandBufferLevel value)							{ return tcu::Format::Enum<VkCommandBufferLevel>(getCommandBufferLevelName, value);															}
inline tcu::Format::Enum<VkIndexType>										getIndexTypeStr										(VkIndexType value)										{ return tcu::Format::Enum<VkIndexType>(getIndexTypeName, value);																			}
inline tcu::Format::Enum<VkSubpassContents>									getSubpassContentsStr								(VkSubpassContents value)								{ return tcu::Format::Enum<VkSubpassContents>(getSubpassContentsName, value);																}
inline tcu::Format::Enum<VkObjectType>										getObjectTypeStr									(VkObjectType value)									{ return tcu::Format::Enum<VkObjectType>(getObjectTypeName, value);																			}
inline tcu::Format::Enum<VkVendorId>										getVendorIdStr										(VkVendorId value)										{ return tcu::Format::Enum<VkVendorId>(getVendorIdName, value);																				}
inline tcu::Format::Enum<VkPointClippingBehavior>							getPointClippingBehaviorStr							(VkPointClippingBehavior value)							{ return tcu::Format::Enum<VkPointClippingBehavior>(getPointClippingBehaviorName, value);													}
inline tcu::Format::Enum<VkTessellationDomainOrigin>						getTessellationDomainOriginStr						(VkTessellationDomainOrigin value)						{ return tcu::Format::Enum<VkTessellationDomainOrigin>(getTessellationDomainOriginName, value);												}
inline tcu::Format::Enum<VkSamplerYcbcrModelConversion>						getSamplerYcbcrModelConversionStr					(VkSamplerYcbcrModelConversion value)					{ return tcu::Format::Enum<VkSamplerYcbcrModelConversion>(getSamplerYcbcrModelConversionName, value);										}
inline tcu::Format::Enum<VkSamplerYcbcrRange>								getSamplerYcbcrRangeStr								(VkSamplerYcbcrRange value)								{ return tcu::Format::Enum<VkSamplerYcbcrRange>(getSamplerYcbcrRangeName, value);															}
inline tcu::Format::Enum<VkChromaLocation>									getChromaLocationStr								(VkChromaLocation value)								{ return tcu::Format::Enum<VkChromaLocation>(getChromaLocationName, value);																	}
inline tcu::Format::Enum<VkDescriptorUpdateTemplateType>					getDescriptorUpdateTemplateTypeStr					(VkDescriptorUpdateTemplateType value)					{ return tcu::Format::Enum<VkDescriptorUpdateTemplateType>(getDescriptorUpdateTemplateTypeName, value);										}
inline tcu::Format::Enum<VkColorSpaceKHR>									getColorSpaceKHRStr									(VkColorSpaceKHR value)									{ return tcu::Format::Enum<VkColorSpaceKHR>(getColorSpaceKHRName, value);																	}
inline tcu::Format::Enum<VkPresentModeKHR>									getPresentModeKHRStr								(VkPresentModeKHR value)								{ return tcu::Format::Enum<VkPresentModeKHR>(getPresentModeKHRName, value);																	}
inline tcu::Format::Enum<VkPerformanceCounterUnitKHR>						getPerformanceCounterUnitKHRStr						(VkPerformanceCounterUnitKHR value)						{ return tcu::Format::Enum<VkPerformanceCounterUnitKHR>(getPerformanceCounterUnitKHRName, value);											}
inline tcu::Format::Enum<VkPerformanceCounterScopeKHR>						getPerformanceCounterScopeKHRStr					(VkPerformanceCounterScopeKHR value)					{ return tcu::Format::Enum<VkPerformanceCounterScopeKHR>(getPerformanceCounterScopeKHRName, value);											}
inline tcu::Format::Enum<VkPerformanceCounterStorageKHR>					getPerformanceCounterStorageKHRStr					(VkPerformanceCounterStorageKHR value)					{ return tcu::Format::Enum<VkPerformanceCounterStorageKHR>(getPerformanceCounterStorageKHRName, value);										}
inline tcu::Format::Enum<VkDriverIdKHR>										getDriverIdKHRStr									(VkDriverIdKHR value)									{ return tcu::Format::Enum<VkDriverIdKHR>(getDriverIdKHRName, value);																		}
inline tcu::Format::Enum<VkShaderFloatControlsIndependenceKHR>				getShaderFloatControlsIndependenceKHRStr			(VkShaderFloatControlsIndependenceKHR value)			{ return tcu::Format::Enum<VkShaderFloatControlsIndependenceKHR>(getShaderFloatControlsIndependenceKHRName, value);							}
inline tcu::Format::Enum<VkSemaphoreTypeKHR>								getSemaphoreTypeKHRStr								(VkSemaphoreTypeKHR value)								{ return tcu::Format::Enum<VkSemaphoreTypeKHR>(getSemaphoreTypeKHRName, value);																}
inline tcu::Format::Enum<VkPipelineExecutableStatisticFormatKHR>			getPipelineExecutableStatisticFormatKHRStr			(VkPipelineExecutableStatisticFormatKHR value)			{ return tcu::Format::Enum<VkPipelineExecutableStatisticFormatKHR>(getPipelineExecutableStatisticFormatKHRName, value);						}
inline tcu::Format::Enum<VkDebugReportObjectTypeEXT>						getDebugReportObjectTypeEXTStr						(VkDebugReportObjectTypeEXT value)						{ return tcu::Format::Enum<VkDebugReportObjectTypeEXT>(getDebugReportObjectTypeEXTName, value);												}
inline tcu::Format::Enum<VkRasterizationOrderAMD>							getRasterizationOrderAMDStr							(VkRasterizationOrderAMD value)							{ return tcu::Format::Enum<VkRasterizationOrderAMD>(getRasterizationOrderAMDName, value);													}
inline tcu::Format::Enum<VkShaderInfoTypeAMD>								getShaderInfoTypeAMDStr								(VkShaderInfoTypeAMD value)								{ return tcu::Format::Enum<VkShaderInfoTypeAMD>(getShaderInfoTypeAMDName, value);															}
inline tcu::Format::Enum<VkValidationCheckEXT>								getValidationCheckEXTStr							(VkValidationCheckEXT value)							{ return tcu::Format::Enum<VkValidationCheckEXT>(getValidationCheckEXTName, value);															}
inline tcu::Format::Enum<VkIndirectCommandsTokenTypeNVX>					getIndirectCommandsTokenTypeNVXStr					(VkIndirectCommandsTokenTypeNVX value)					{ return tcu::Format::Enum<VkIndirectCommandsTokenTypeNVX>(getIndirectCommandsTokenTypeNVXName, value);										}
inline tcu::Format::Enum<VkObjectEntryTypeNVX>								getObjectEntryTypeNVXStr							(VkObjectEntryTypeNVX value)							{ return tcu::Format::Enum<VkObjectEntryTypeNVX>(getObjectEntryTypeNVXName, value);															}
inline tcu::Format::Enum<VkDisplayPowerStateEXT>							getDisplayPowerStateEXTStr							(VkDisplayPowerStateEXT value)							{ return tcu::Format::Enum<VkDisplayPowerStateEXT>(getDisplayPowerStateEXTName, value);														}
inline tcu::Format::Enum<VkDeviceEventTypeEXT>								getDeviceEventTypeEXTStr							(VkDeviceEventTypeEXT value)							{ return tcu::Format::Enum<VkDeviceEventTypeEXT>(getDeviceEventTypeEXTName, value);															}
inline tcu::Format::Enum<VkDisplayEventTypeEXT>								getDisplayEventTypeEXTStr							(VkDisplayEventTypeEXT value)							{ return tcu::Format::Enum<VkDisplayEventTypeEXT>(getDisplayEventTypeEXTName, value);														}
inline tcu::Format::Enum<VkViewportCoordinateSwizzleNV>						getViewportCoordinateSwizzleNVStr					(VkViewportCoordinateSwizzleNV value)					{ return tcu::Format::Enum<VkViewportCoordinateSwizzleNV>(getViewportCoordinateSwizzleNVName, value);										}
inline tcu::Format::Enum<VkDiscardRectangleModeEXT>							getDiscardRectangleModeEXTStr						(VkDiscardRectangleModeEXT value)						{ return tcu::Format::Enum<VkDiscardRectangleModeEXT>(getDiscardRectangleModeEXTName, value);												}
inline tcu::Format::Enum<VkConservativeRasterizationModeEXT>				getConservativeRasterizationModeEXTStr				(VkConservativeRasterizationModeEXT value)				{ return tcu::Format::Enum<VkConservativeRasterizationModeEXT>(getConservativeRasterizationModeEXTName, value);								}
inline tcu::Format::Enum<VkSamplerReductionModeEXT>							getSamplerReductionModeEXTStr						(VkSamplerReductionModeEXT value)						{ return tcu::Format::Enum<VkSamplerReductionModeEXT>(getSamplerReductionModeEXTName, value);												}
inline tcu::Format::Enum<VkBlendOverlapEXT>									getBlendOverlapEXTStr								(VkBlendOverlapEXT value)								{ return tcu::Format::Enum<VkBlendOverlapEXT>(getBlendOverlapEXTName, value);																}
inline tcu::Format::Enum<VkCoverageModulationModeNV>						getCoverageModulationModeNVStr						(VkCoverageModulationModeNV value)						{ return tcu::Format::Enum<VkCoverageModulationModeNV>(getCoverageModulationModeNVName, value);												}
inline tcu::Format::Enum<VkValidationCacheHeaderVersionEXT>					getValidationCacheHeaderVersionEXTStr				(VkValidationCacheHeaderVersionEXT value)				{ return tcu::Format::Enum<VkValidationCacheHeaderVersionEXT>(getValidationCacheHeaderVersionEXTName, value);								}
inline tcu::Format::Enum<VkShadingRatePaletteEntryNV>						getShadingRatePaletteEntryNVStr						(VkShadingRatePaletteEntryNV value)						{ return tcu::Format::Enum<VkShadingRatePaletteEntryNV>(getShadingRatePaletteEntryNVName, value);											}
inline tcu::Format::Enum<VkCoarseSampleOrderTypeNV>							getCoarseSampleOrderTypeNVStr						(VkCoarseSampleOrderTypeNV value)						{ return tcu::Format::Enum<VkCoarseSampleOrderTypeNV>(getCoarseSampleOrderTypeNVName, value);												}
inline tcu::Format::Enum<VkAccelerationStructureTypeNV>						getAccelerationStructureTypeNVStr					(VkAccelerationStructureTypeNV value)					{ return tcu::Format::Enum<VkAccelerationStructureTypeNV>(getAccelerationStructureTypeNVName, value);										}
inline tcu::Format::Enum<VkRayTracingShaderGroupTypeNV>						getRayTracingShaderGroupTypeNVStr					(VkRayTracingShaderGroupTypeNV value)					{ return tcu::Format::Enum<VkRayTracingShaderGroupTypeNV>(getRayTracingShaderGroupTypeNVName, value);										}
inline tcu::Format::Enum<VkGeometryTypeNV>									getGeometryTypeNVStr								(VkGeometryTypeNV value)								{ return tcu::Format::Enum<VkGeometryTypeNV>(getGeometryTypeNVName, value);																	}
inline tcu::Format::Enum<VkCopyAccelerationStructureModeNV>					getCopyAccelerationStructureModeNVStr				(VkCopyAccelerationStructureModeNV value)				{ return tcu::Format::Enum<VkCopyAccelerationStructureModeNV>(getCopyAccelerationStructureModeNVName, value);								}
inline tcu::Format::Enum<VkAccelerationStructureMemoryRequirementsTypeNV>	getAccelerationStructureMemoryRequirementsTypeNVStr	(VkAccelerationStructureMemoryRequirementsTypeNV value)	{ return tcu::Format::Enum<VkAccelerationStructureMemoryRequirementsTypeNV>(getAccelerationStructureMemoryRequirementsTypeNVName, value);	}
inline tcu::Format::Enum<VkQueueGlobalPriorityEXT>							getQueueGlobalPriorityEXTStr						(VkQueueGlobalPriorityEXT value)						{ return tcu::Format::Enum<VkQueueGlobalPriorityEXT>(getQueueGlobalPriorityEXTName, value);													}
inline tcu::Format::Enum<VkTimeDomainEXT>									getTimeDomainEXTStr									(VkTimeDomainEXT value)									{ return tcu::Format::Enum<VkTimeDomainEXT>(getTimeDomainEXTName, value);																	}
inline tcu::Format::Enum<VkMemoryOverallocationBehaviorAMD>					getMemoryOverallocationBehaviorAMDStr				(VkMemoryOverallocationBehaviorAMD value)				{ return tcu::Format::Enum<VkMemoryOverallocationBehaviorAMD>(getMemoryOverallocationBehaviorAMDName, value);								}
inline tcu::Format::Enum<VkPerformanceConfigurationTypeINTEL>				getPerformanceConfigurationTypeINTELStr				(VkPerformanceConfigurationTypeINTEL value)				{ return tcu::Format::Enum<VkPerformanceConfigurationTypeINTEL>(getPerformanceConfigurationTypeINTELName, value);							}
inline tcu::Format::Enum<VkQueryPoolSamplingModeINTEL>						getQueryPoolSamplingModeINTELStr					(VkQueryPoolSamplingModeINTEL value)					{ return tcu::Format::Enum<VkQueryPoolSamplingModeINTEL>(getQueryPoolSamplingModeINTELName, value);											}
inline tcu::Format::Enum<VkPerformanceOverrideTypeINTEL>					getPerformanceOverrideTypeINTELStr					(VkPerformanceOverrideTypeINTEL value)					{ return tcu::Format::Enum<VkPerformanceOverrideTypeINTEL>(getPerformanceOverrideTypeINTELName, value);										}
inline tcu::Format::Enum<VkPerformanceParameterTypeINTEL>					getPerformanceParameterTypeINTELStr					(VkPerformanceParameterTypeINTEL value)					{ return tcu::Format::Enum<VkPerformanceParameterTypeINTEL>(getPerformanceParameterTypeINTELName, value);									}
inline tcu::Format::Enum<VkPerformanceValueTypeINTEL>						getPerformanceValueTypeINTELStr						(VkPerformanceValueTypeINTEL value)						{ return tcu::Format::Enum<VkPerformanceValueTypeINTEL>(getPerformanceValueTypeINTELName, value);											}
inline tcu::Format::Enum<VkValidationFeatureEnableEXT>						getValidationFeatureEnableEXTStr					(VkValidationFeatureEnableEXT value)					{ return tcu::Format::Enum<VkValidationFeatureEnableEXT>(getValidationFeatureEnableEXTName, value);											}
inline tcu::Format::Enum<VkValidationFeatureDisableEXT>						getValidationFeatureDisableEXTStr					(VkValidationFeatureDisableEXT value)					{ return tcu::Format::Enum<VkValidationFeatureDisableEXT>(getValidationFeatureDisableEXTName, value);										}
inline tcu::Format::Enum<VkComponentTypeNV>									getComponentTypeNVStr								(VkComponentTypeNV value)								{ return tcu::Format::Enum<VkComponentTypeNV>(getComponentTypeNVName, value);																}
inline tcu::Format::Enum<VkScopeNV>											getScopeNVStr										(VkScopeNV value)										{ return tcu::Format::Enum<VkScopeNV>(getScopeNVName, value);																				}
inline tcu::Format::Enum<VkCoverageReductionModeNV>							getCoverageReductionModeNVStr						(VkCoverageReductionModeNV value)						{ return tcu::Format::Enum<VkCoverageReductionModeNV>(getCoverageReductionModeNVName, value);												}
inline tcu::Format::Enum<VkLineRasterizationModeEXT>						getLineRasterizationModeEXTStr						(VkLineRasterizationModeEXT value)						{ return tcu::Format::Enum<VkLineRasterizationModeEXT>(getLineRasterizationModeEXTName, value);												}
inline tcu::Format::Enum<VkFullScreenExclusiveEXT>							getFullScreenExclusiveEXTStr						(VkFullScreenExclusiveEXT value)						{ return tcu::Format::Enum<VkFullScreenExclusiveEXT>(getFullScreenExclusiveEXTName, value);													}

inline std::ostream&	operator<<	(std::ostream& s, VkPipelineCacheHeaderVersion value)						{ return s << getPipelineCacheHeaderVersionStr(value);						}
inline std::ostream&	operator<<	(std::ostream& s, VkResult value)											{ return s << getResultStr(value);											}
inline std::ostream&	operator<<	(std::ostream& s, VkStructureType value)									{ return s << getStructureTypeStr(value);									}
inline std::ostream&	operator<<	(std::ostream& s, VkSystemAllocationScope value)							{ return s << getSystemAllocationScopeStr(value);							}
inline std::ostream&	operator<<	(std::ostream& s, VkInternalAllocationType value)							{ return s << getInternalAllocationTypeStr(value);							}
inline std::ostream&	operator<<	(std::ostream& s, VkFormat value)											{ return s << getFormatStr(value);											}
inline std::ostream&	operator<<	(std::ostream& s, VkImageType value)										{ return s << getImageTypeStr(value);										}
inline std::ostream&	operator<<	(std::ostream& s, VkImageTiling value)										{ return s << getImageTilingStr(value);										}
inline std::ostream&	operator<<	(std::ostream& s, VkPhysicalDeviceType value)								{ return s << getPhysicalDeviceTypeStr(value);								}
inline std::ostream&	operator<<	(std::ostream& s, VkQueryType value)										{ return s << getQueryTypeStr(value);										}
inline std::ostream&	operator<<	(std::ostream& s, VkSharingMode value)										{ return s << getSharingModeStr(value);										}
inline std::ostream&	operator<<	(std::ostream& s, VkImageLayout value)										{ return s << getImageLayoutStr(value);										}
inline std::ostream&	operator<<	(std::ostream& s, VkImageViewType value)									{ return s << getImageViewTypeStr(value);									}
inline std::ostream&	operator<<	(std::ostream& s, VkComponentSwizzle value)									{ return s << getComponentSwizzleStr(value);								}
inline std::ostream&	operator<<	(std::ostream& s, VkVertexInputRate value)									{ return s << getVertexInputRateStr(value);									}
inline std::ostream&	operator<<	(std::ostream& s, VkPrimitiveTopology value)								{ return s << getPrimitiveTopologyStr(value);								}
inline std::ostream&	operator<<	(std::ostream& s, VkPolygonMode value)										{ return s << getPolygonModeStr(value);										}
inline std::ostream&	operator<<	(std::ostream& s, VkFrontFace value)										{ return s << getFrontFaceStr(value);										}
inline std::ostream&	operator<<	(std::ostream& s, VkCompareOp value)										{ return s << getCompareOpStr(value);										}
inline std::ostream&	operator<<	(std::ostream& s, VkStencilOp value)										{ return s << getStencilOpStr(value);										}
inline std::ostream&	operator<<	(std::ostream& s, VkLogicOp value)											{ return s << getLogicOpStr(value);											}
inline std::ostream&	operator<<	(std::ostream& s, VkBlendFactor value)										{ return s << getBlendFactorStr(value);										}
inline std::ostream&	operator<<	(std::ostream& s, VkBlendOp value)											{ return s << getBlendOpStr(value);											}
inline std::ostream&	operator<<	(std::ostream& s, VkDynamicState value)										{ return s << getDynamicStateStr(value);									}
inline std::ostream&	operator<<	(std::ostream& s, VkFilter value)											{ return s << getFilterStr(value);											}
inline std::ostream&	operator<<	(std::ostream& s, VkSamplerMipmapMode value)								{ return s << getSamplerMipmapModeStr(value);								}
inline std::ostream&	operator<<	(std::ostream& s, VkSamplerAddressMode value)								{ return s << getSamplerAddressModeStr(value);								}
inline std::ostream&	operator<<	(std::ostream& s, VkBorderColor value)										{ return s << getBorderColorStr(value);										}
inline std::ostream&	operator<<	(std::ostream& s, VkDescriptorType value)									{ return s << getDescriptorTypeStr(value);									}
inline std::ostream&	operator<<	(std::ostream& s, VkAttachmentLoadOp value)									{ return s << getAttachmentLoadOpStr(value);								}
inline std::ostream&	operator<<	(std::ostream& s, VkAttachmentStoreOp value)								{ return s << getAttachmentStoreOpStr(value);								}
inline std::ostream&	operator<<	(std::ostream& s, VkPipelineBindPoint value)								{ return s << getPipelineBindPointStr(value);								}
inline std::ostream&	operator<<	(std::ostream& s, VkCommandBufferLevel value)								{ return s << getCommandBufferLevelStr(value);								}
inline std::ostream&	operator<<	(std::ostream& s, VkIndexType value)										{ return s << getIndexTypeStr(value);										}
inline std::ostream&	operator<<	(std::ostream& s, VkSubpassContents value)									{ return s << getSubpassContentsStr(value);									}
inline std::ostream&	operator<<	(std::ostream& s, VkObjectType value)										{ return s << getObjectTypeStr(value);										}
inline std::ostream&	operator<<	(std::ostream& s, VkVendorId value)											{ return s << getVendorIdStr(value);										}
inline std::ostream&	operator<<	(std::ostream& s, VkPointClippingBehavior value)							{ return s << getPointClippingBehaviorStr(value);							}
inline std::ostream&	operator<<	(std::ostream& s, VkTessellationDomainOrigin value)							{ return s << getTessellationDomainOriginStr(value);						}
inline std::ostream&	operator<<	(std::ostream& s, VkSamplerYcbcrModelConversion value)						{ return s << getSamplerYcbcrModelConversionStr(value);						}
inline std::ostream&	operator<<	(std::ostream& s, VkSamplerYcbcrRange value)								{ return s << getSamplerYcbcrRangeStr(value);								}
inline std::ostream&	operator<<	(std::ostream& s, VkChromaLocation value)									{ return s << getChromaLocationStr(value);									}
inline std::ostream&	operator<<	(std::ostream& s, VkDescriptorUpdateTemplateType value)						{ return s << getDescriptorUpdateTemplateTypeStr(value);					}
inline std::ostream&	operator<<	(std::ostream& s, VkColorSpaceKHR value)									{ return s << getColorSpaceKHRStr(value);									}
inline std::ostream&	operator<<	(std::ostream& s, VkPresentModeKHR value)									{ return s << getPresentModeKHRStr(value);									}
inline std::ostream&	operator<<	(std::ostream& s, VkPerformanceCounterUnitKHR value)						{ return s << getPerformanceCounterUnitKHRStr(value);						}
inline std::ostream&	operator<<	(std::ostream& s, VkPerformanceCounterScopeKHR value)						{ return s << getPerformanceCounterScopeKHRStr(value);						}
inline std::ostream&	operator<<	(std::ostream& s, VkPerformanceCounterStorageKHR value)						{ return s << getPerformanceCounterStorageKHRStr(value);					}
inline std::ostream&	operator<<	(std::ostream& s, VkDriverIdKHR value)										{ return s << getDriverIdKHRStr(value);										}
inline std::ostream&	operator<<	(std::ostream& s, VkShaderFloatControlsIndependenceKHR value)				{ return s << getShaderFloatControlsIndependenceKHRStr(value);				}
inline std::ostream&	operator<<	(std::ostream& s, VkSemaphoreTypeKHR value)									{ return s << getSemaphoreTypeKHRStr(value);								}
inline std::ostream&	operator<<	(std::ostream& s, VkPipelineExecutableStatisticFormatKHR value)				{ return s << getPipelineExecutableStatisticFormatKHRStr(value);			}
inline std::ostream&	operator<<	(std::ostream& s, VkDebugReportObjectTypeEXT value)							{ return s << getDebugReportObjectTypeEXTStr(value);						}
inline std::ostream&	operator<<	(std::ostream& s, VkRasterizationOrderAMD value)							{ return s << getRasterizationOrderAMDStr(value);							}
inline std::ostream&	operator<<	(std::ostream& s, VkShaderInfoTypeAMD value)								{ return s << getShaderInfoTypeAMDStr(value);								}
inline std::ostream&	operator<<	(std::ostream& s, VkValidationCheckEXT value)								{ return s << getValidationCheckEXTStr(value);								}
inline std::ostream&	operator<<	(std::ostream& s, VkIndirectCommandsTokenTypeNVX value)						{ return s << getIndirectCommandsTokenTypeNVXStr(value);					}
inline std::ostream&	operator<<	(std::ostream& s, VkObjectEntryTypeNVX value)								{ return s << getObjectEntryTypeNVXStr(value);								}
inline std::ostream&	operator<<	(std::ostream& s, VkDisplayPowerStateEXT value)								{ return s << getDisplayPowerStateEXTStr(value);							}
inline std::ostream&	operator<<	(std::ostream& s, VkDeviceEventTypeEXT value)								{ return s << getDeviceEventTypeEXTStr(value);								}
inline std::ostream&	operator<<	(std::ostream& s, VkDisplayEventTypeEXT value)								{ return s << getDisplayEventTypeEXTStr(value);								}
inline std::ostream&	operator<<	(std::ostream& s, VkViewportCoordinateSwizzleNV value)						{ return s << getViewportCoordinateSwizzleNVStr(value);						}
inline std::ostream&	operator<<	(std::ostream& s, VkDiscardRectangleModeEXT value)							{ return s << getDiscardRectangleModeEXTStr(value);							}
inline std::ostream&	operator<<	(std::ostream& s, VkConservativeRasterizationModeEXT value)					{ return s << getConservativeRasterizationModeEXTStr(value);				}
inline std::ostream&	operator<<	(std::ostream& s, VkSamplerReductionModeEXT value)							{ return s << getSamplerReductionModeEXTStr(value);							}
inline std::ostream&	operator<<	(std::ostream& s, VkBlendOverlapEXT value)									{ return s << getBlendOverlapEXTStr(value);									}
inline std::ostream&	operator<<	(std::ostream& s, VkCoverageModulationModeNV value)							{ return s << getCoverageModulationModeNVStr(value);						}
inline std::ostream&	operator<<	(std::ostream& s, VkValidationCacheHeaderVersionEXT value)					{ return s << getValidationCacheHeaderVersionEXTStr(value);					}
inline std::ostream&	operator<<	(std::ostream& s, VkShadingRatePaletteEntryNV value)						{ return s << getShadingRatePaletteEntryNVStr(value);						}
inline std::ostream&	operator<<	(std::ostream& s, VkCoarseSampleOrderTypeNV value)							{ return s << getCoarseSampleOrderTypeNVStr(value);							}
inline std::ostream&	operator<<	(std::ostream& s, VkAccelerationStructureTypeNV value)						{ return s << getAccelerationStructureTypeNVStr(value);						}
inline std::ostream&	operator<<	(std::ostream& s, VkRayTracingShaderGroupTypeNV value)						{ return s << getRayTracingShaderGroupTypeNVStr(value);						}
inline std::ostream&	operator<<	(std::ostream& s, VkGeometryTypeNV value)									{ return s << getGeometryTypeNVStr(value);									}
inline std::ostream&	operator<<	(std::ostream& s, VkCopyAccelerationStructureModeNV value)					{ return s << getCopyAccelerationStructureModeNVStr(value);					}
inline std::ostream&	operator<<	(std::ostream& s, VkAccelerationStructureMemoryRequirementsTypeNV value)	{ return s << getAccelerationStructureMemoryRequirementsTypeNVStr(value);	}
inline std::ostream&	operator<<	(std::ostream& s, VkQueueGlobalPriorityEXT value)							{ return s << getQueueGlobalPriorityEXTStr(value);							}
inline std::ostream&	operator<<	(std::ostream& s, VkTimeDomainEXT value)									{ return s << getTimeDomainEXTStr(value);									}
inline std::ostream&	operator<<	(std::ostream& s, VkMemoryOverallocationBehaviorAMD value)					{ return s << getMemoryOverallocationBehaviorAMDStr(value);					}
inline std::ostream&	operator<<	(std::ostream& s, VkPerformanceConfigurationTypeINTEL value)				{ return s << getPerformanceConfigurationTypeINTELStr(value);				}
inline std::ostream&	operator<<	(std::ostream& s, VkQueryPoolSamplingModeINTEL value)						{ return s << getQueryPoolSamplingModeINTELStr(value);						}
inline std::ostream&	operator<<	(std::ostream& s, VkPerformanceOverrideTypeINTEL value)						{ return s << getPerformanceOverrideTypeINTELStr(value);					}
inline std::ostream&	operator<<	(std::ostream& s, VkPerformanceParameterTypeINTEL value)					{ return s << getPerformanceParameterTypeINTELStr(value);					}
inline std::ostream&	operator<<	(std::ostream& s, VkPerformanceValueTypeINTEL value)						{ return s << getPerformanceValueTypeINTELStr(value);						}
inline std::ostream&	operator<<	(std::ostream& s, VkValidationFeatureEnableEXT value)						{ return s << getValidationFeatureEnableEXTStr(value);						}
inline std::ostream&	operator<<	(std::ostream& s, VkValidationFeatureDisableEXT value)						{ return s << getValidationFeatureDisableEXTStr(value);						}
inline std::ostream&	operator<<	(std::ostream& s, VkComponentTypeNV value)									{ return s << getComponentTypeNVStr(value);									}
inline std::ostream&	operator<<	(std::ostream& s, VkScopeNV value)											{ return s << getScopeNVStr(value);											}
inline std::ostream&	operator<<	(std::ostream& s, VkCoverageReductionModeNV value)							{ return s << getCoverageReductionModeNVStr(value);							}
inline std::ostream&	operator<<	(std::ostream& s, VkLineRasterizationModeEXT value)							{ return s << getLineRasterizationModeEXTStr(value);						}
inline std::ostream&	operator<<	(std::ostream& s, VkFullScreenExclusiveEXT value)							{ return s << getFullScreenExclusiveEXTStr(value);							}

tcu::Format::Bitfield<32>	getFormatFeatureFlagsStr									(VkFormatFeatureFlags value);
tcu::Format::Bitfield<32>	getImageUsageFlagsStr										(VkImageUsageFlags value);
tcu::Format::Bitfield<32>	getImageCreateFlagsStr										(VkImageCreateFlags value);
tcu::Format::Bitfield<32>	getSampleCountFlagsStr										(VkSampleCountFlags value);
tcu::Format::Bitfield<32>	getQueueFlagsStr											(VkQueueFlags value);
tcu::Format::Bitfield<32>	getMemoryPropertyFlagsStr									(VkMemoryPropertyFlags value);
tcu::Format::Bitfield<32>	getMemoryHeapFlagsStr										(VkMemoryHeapFlags value);
tcu::Format::Bitfield<32>	getDeviceQueueCreateFlagsStr								(VkDeviceQueueCreateFlags value);
tcu::Format::Bitfield<32>	getPipelineStageFlagsStr									(VkPipelineStageFlags value);
tcu::Format::Bitfield<32>	getImageAspectFlagsStr										(VkImageAspectFlags value);
tcu::Format::Bitfield<32>	getSparseImageFormatFlagsStr								(VkSparseImageFormatFlags value);
tcu::Format::Bitfield<32>	getSparseMemoryBindFlagsStr									(VkSparseMemoryBindFlags value);
tcu::Format::Bitfield<32>	getFenceCreateFlagsStr										(VkFenceCreateFlags value);
tcu::Format::Bitfield<32>	getQueryPipelineStatisticFlagsStr							(VkQueryPipelineStatisticFlags value);
tcu::Format::Bitfield<32>	getQueryResultFlagsStr										(VkQueryResultFlags value);
tcu::Format::Bitfield<32>	getBufferCreateFlagsStr										(VkBufferCreateFlags value);
tcu::Format::Bitfield<32>	getBufferUsageFlagsStr										(VkBufferUsageFlags value);
tcu::Format::Bitfield<32>	getImageViewCreateFlagsStr									(VkImageViewCreateFlags value);
tcu::Format::Bitfield<32>	getShaderModuleCreateFlagsStr								(VkShaderModuleCreateFlags value);
tcu::Format::Bitfield<32>	getPipelineCreateFlagsStr									(VkPipelineCreateFlags value);
tcu::Format::Bitfield<32>	getPipelineShaderStageCreateFlagsStr						(VkPipelineShaderStageCreateFlags value);
tcu::Format::Bitfield<32>	getShaderStageFlagsStr										(VkShaderStageFlags value);
tcu::Format::Bitfield<32>	getCullModeFlagsStr											(VkCullModeFlags value);
tcu::Format::Bitfield<32>	getColorComponentFlagsStr									(VkColorComponentFlags value);
tcu::Format::Bitfield<32>	getSamplerCreateFlagsStr									(VkSamplerCreateFlags value);
tcu::Format::Bitfield<32>	getDescriptorSetLayoutCreateFlagsStr						(VkDescriptorSetLayoutCreateFlags value);
tcu::Format::Bitfield<32>	getDescriptorPoolCreateFlagsStr								(VkDescriptorPoolCreateFlags value);
tcu::Format::Bitfield<32>	getFramebufferCreateFlagsStr								(VkFramebufferCreateFlags value);
tcu::Format::Bitfield<32>	getRenderPassCreateFlagsStr									(VkRenderPassCreateFlags value);
tcu::Format::Bitfield<32>	getAttachmentDescriptionFlagsStr							(VkAttachmentDescriptionFlags value);
tcu::Format::Bitfield<32>	getSubpassDescriptionFlagsStr								(VkSubpassDescriptionFlags value);
tcu::Format::Bitfield<32>	getAccessFlagsStr											(VkAccessFlags value);
tcu::Format::Bitfield<32>	getDependencyFlagsStr										(VkDependencyFlags value);
tcu::Format::Bitfield<32>	getCommandPoolCreateFlagsStr								(VkCommandPoolCreateFlags value);
tcu::Format::Bitfield<32>	getCommandPoolResetFlagsStr									(VkCommandPoolResetFlags value);
tcu::Format::Bitfield<32>	getCommandBufferUsageFlagsStr								(VkCommandBufferUsageFlags value);
tcu::Format::Bitfield<32>	getQueryControlFlagsStr										(VkQueryControlFlags value);
tcu::Format::Bitfield<32>	getCommandBufferResetFlagsStr								(VkCommandBufferResetFlags value);
tcu::Format::Bitfield<32>	getStencilFaceFlagsStr										(VkStencilFaceFlags value);
tcu::Format::Bitfield<32>	getSubgroupFeatureFlagsStr									(VkSubgroupFeatureFlags value);
tcu::Format::Bitfield<32>	getPeerMemoryFeatureFlagsStr								(VkPeerMemoryFeatureFlags value);
tcu::Format::Bitfield<32>	getMemoryAllocateFlagsStr									(VkMemoryAllocateFlags value);
tcu::Format::Bitfield<32>	getExternalMemoryHandleTypeFlagsStr							(VkExternalMemoryHandleTypeFlags value);
tcu::Format::Bitfield<32>	getExternalMemoryFeatureFlagsStr							(VkExternalMemoryFeatureFlags value);
tcu::Format::Bitfield<32>	getExternalFenceHandleTypeFlagsStr							(VkExternalFenceHandleTypeFlags value);
tcu::Format::Bitfield<32>	getExternalFenceFeatureFlagsStr								(VkExternalFenceFeatureFlags value);
tcu::Format::Bitfield<32>	getFenceImportFlagsStr										(VkFenceImportFlags value);
tcu::Format::Bitfield<32>	getSemaphoreImportFlagsStr									(VkSemaphoreImportFlags value);
tcu::Format::Bitfield<32>	getExternalSemaphoreHandleTypeFlagsStr						(VkExternalSemaphoreHandleTypeFlags value);
tcu::Format::Bitfield<32>	getExternalSemaphoreFeatureFlagsStr							(VkExternalSemaphoreFeatureFlags value);
tcu::Format::Bitfield<32>	getSurfaceTransformFlagsKHRStr								(VkSurfaceTransformFlagsKHR value);
tcu::Format::Bitfield<32>	getCompositeAlphaFlagsKHRStr								(VkCompositeAlphaFlagsKHR value);
tcu::Format::Bitfield<32>	getSwapchainCreateFlagsKHRStr								(VkSwapchainCreateFlagsKHR value);
tcu::Format::Bitfield<32>	getDeviceGroupPresentModeFlagsKHRStr						(VkDeviceGroupPresentModeFlagsKHR value);
tcu::Format::Bitfield<32>	getDisplayPlaneAlphaFlagsKHRStr								(VkDisplayPlaneAlphaFlagsKHR value);
tcu::Format::Bitfield<32>	getPerformanceCounterDescriptionFlagsKHRStr					(VkPerformanceCounterDescriptionFlagsKHR value);
tcu::Format::Bitfield<32>	getAcquireProfilingLockFlagsKHRStr							(VkAcquireProfilingLockFlagsKHR value);
tcu::Format::Bitfield<32>	getResolveModeFlagsKHRStr									(VkResolveModeFlagsKHR value);
tcu::Format::Bitfield<32>	getSemaphoreWaitFlagsKHRStr									(VkSemaphoreWaitFlagsKHR value);
tcu::Format::Bitfield<32>	getDebugReportFlagsEXTStr									(VkDebugReportFlagsEXT value);
tcu::Format::Bitfield<32>	getExternalMemoryHandleTypeFlagsNVStr						(VkExternalMemoryHandleTypeFlagsNV value);
tcu::Format::Bitfield<32>	getExternalMemoryFeatureFlagsNVStr							(VkExternalMemoryFeatureFlagsNV value);
tcu::Format::Bitfield<32>	getConditionalRenderingFlagsEXTStr							(VkConditionalRenderingFlagsEXT value);
tcu::Format::Bitfield<32>	getIndirectCommandsLayoutUsageFlagsNVXStr					(VkIndirectCommandsLayoutUsageFlagsNVX value);
tcu::Format::Bitfield<32>	getObjectEntryUsageFlagsNVXStr								(VkObjectEntryUsageFlagsNVX value);
tcu::Format::Bitfield<32>	getSurfaceCounterFlagsEXTStr								(VkSurfaceCounterFlagsEXT value);
tcu::Format::Bitfield<32>	getDebugUtilsMessageSeverityFlagsEXTStr						(VkDebugUtilsMessageSeverityFlagsEXT value);
tcu::Format::Bitfield<32>	getDebugUtilsMessageTypeFlagsEXTStr							(VkDebugUtilsMessageTypeFlagsEXT value);
tcu::Format::Bitfield<32>	getDescriptorBindingFlagsEXTStr								(VkDescriptorBindingFlagsEXT value);
tcu::Format::Bitfield<32>	getGeometryFlagsNVStr										(VkGeometryFlagsNV value);
tcu::Format::Bitfield<32>	getGeometryInstanceFlagsNVStr								(VkGeometryInstanceFlagsNV value);
tcu::Format::Bitfield<32>	getBuildAccelerationStructureFlagsNVStr						(VkBuildAccelerationStructureFlagsNV value);
tcu::Format::Bitfield<32>	getPipelineCompilerControlFlagsAMDStr						(VkPipelineCompilerControlFlagsAMD value);
tcu::Format::Bitfield<32>	getPipelineCreationFeedbackFlagsEXTStr						(VkPipelineCreationFeedbackFlagsEXT value);
tcu::Format::Bitfield<32>	getShaderCorePropertiesFlagsAMDStr							(VkShaderCorePropertiesFlagsAMD value);
tcu::Format::Bitfield<32>	getInstanceCreateFlagsStr									(VkInstanceCreateFlags value);
tcu::Format::Bitfield<32>	getDeviceCreateFlagsStr										(VkDeviceCreateFlags value);
tcu::Format::Bitfield<32>	getMemoryMapFlagsStr										(VkMemoryMapFlags value);
tcu::Format::Bitfield<32>	getSemaphoreCreateFlagsStr									(VkSemaphoreCreateFlags value);
tcu::Format::Bitfield<32>	getEventCreateFlagsStr										(VkEventCreateFlags value);
tcu::Format::Bitfield<32>	getQueryPoolCreateFlagsStr									(VkQueryPoolCreateFlags value);
tcu::Format::Bitfield<32>	getBufferViewCreateFlagsStr									(VkBufferViewCreateFlags value);
tcu::Format::Bitfield<32>	getPipelineCacheCreateFlagsStr								(VkPipelineCacheCreateFlags value);
tcu::Format::Bitfield<32>	getPipelineVertexInputStateCreateFlagsStr					(VkPipelineVertexInputStateCreateFlags value);
tcu::Format::Bitfield<32>	getPipelineInputAssemblyStateCreateFlagsStr					(VkPipelineInputAssemblyStateCreateFlags value);
tcu::Format::Bitfield<32>	getPipelineTessellationStateCreateFlagsStr					(VkPipelineTessellationStateCreateFlags value);
tcu::Format::Bitfield<32>	getPipelineViewportStateCreateFlagsStr						(VkPipelineViewportStateCreateFlags value);
tcu::Format::Bitfield<32>	getPipelineRasterizationStateCreateFlagsStr					(VkPipelineRasterizationStateCreateFlags value);
tcu::Format::Bitfield<32>	getPipelineMultisampleStateCreateFlagsStr					(VkPipelineMultisampleStateCreateFlags value);
tcu::Format::Bitfield<32>	getPipelineDepthStencilStateCreateFlagsStr					(VkPipelineDepthStencilStateCreateFlags value);
tcu::Format::Bitfield<32>	getPipelineColorBlendStateCreateFlagsStr					(VkPipelineColorBlendStateCreateFlags value);
tcu::Format::Bitfield<32>	getPipelineDynamicStateCreateFlagsStr						(VkPipelineDynamicStateCreateFlags value);
tcu::Format::Bitfield<32>	getPipelineLayoutCreateFlagsStr								(VkPipelineLayoutCreateFlags value);
tcu::Format::Bitfield<32>	getDescriptorPoolResetFlagsStr								(VkDescriptorPoolResetFlags value);
tcu::Format::Bitfield<32>	getCommandPoolTrimFlagsStr									(VkCommandPoolTrimFlags value);
tcu::Format::Bitfield<32>	getDescriptorUpdateTemplateCreateFlagsStr					(VkDescriptorUpdateTemplateCreateFlags value);
tcu::Format::Bitfield<32>	getDisplayModeCreateFlagsKHRStr								(VkDisplayModeCreateFlagsKHR value);
tcu::Format::Bitfield<32>	getDisplaySurfaceCreateFlagsKHRStr							(VkDisplaySurfaceCreateFlagsKHR value);
tcu::Format::Bitfield<32>	getPipelineRasterizationStateStreamCreateFlagsEXTStr		(VkPipelineRasterizationStateStreamCreateFlagsEXT value);
tcu::Format::Bitfield<32>	getPipelineViewportSwizzleStateCreateFlagsNVStr				(VkPipelineViewportSwizzleStateCreateFlagsNV value);
tcu::Format::Bitfield<32>	getPipelineDiscardRectangleStateCreateFlagsEXTStr			(VkPipelineDiscardRectangleStateCreateFlagsEXT value);
tcu::Format::Bitfield<32>	getPipelineRasterizationConservativeStateCreateFlagsEXTStr	(VkPipelineRasterizationConservativeStateCreateFlagsEXT value);
tcu::Format::Bitfield<32>	getPipelineRasterizationDepthClipStateCreateFlagsEXTStr		(VkPipelineRasterizationDepthClipStateCreateFlagsEXT value);
tcu::Format::Bitfield<32>	getDebugUtilsMessengerCallbackDataFlagsEXTStr				(VkDebugUtilsMessengerCallbackDataFlagsEXT value);
tcu::Format::Bitfield<32>	getDebugUtilsMessengerCreateFlagsEXTStr						(VkDebugUtilsMessengerCreateFlagsEXT value);
tcu::Format::Bitfield<32>	getPipelineCoverageToColorStateCreateFlagsNVStr				(VkPipelineCoverageToColorStateCreateFlagsNV value);
tcu::Format::Bitfield<32>	getPipelineCoverageModulationStateCreateFlagsNVStr			(VkPipelineCoverageModulationStateCreateFlagsNV value);
tcu::Format::Bitfield<32>	getValidationCacheCreateFlagsEXTStr							(VkValidationCacheCreateFlagsEXT value);
tcu::Format::Bitfield<32>	getPipelineCoverageReductionStateCreateFlagsNVStr			(VkPipelineCoverageReductionStateCreateFlagsNV value);
tcu::Format::Bitfield<32>	getHeadlessSurfaceCreateFlagsEXTStr							(VkHeadlessSurfaceCreateFlagsEXT value);
tcu::Format::Bitfield<32>	getAndroidSurfaceCreateFlagsKHRStr							(VkAndroidSurfaceCreateFlagsKHR value);
tcu::Format::Bitfield<32>	getImagePipeSurfaceCreateFlagsFUCHSIAStr					(VkImagePipeSurfaceCreateFlagsFUCHSIA value);
tcu::Format::Bitfield<32>	getStreamDescriptorSurfaceCreateFlagsGGPStr					(VkStreamDescriptorSurfaceCreateFlagsGGP value);
tcu::Format::Bitfield<32>	getIOSSurfaceCreateFlagsMVKStr								(VkIOSSurfaceCreateFlagsMVK value);
tcu::Format::Bitfield<32>	getMacOSSurfaceCreateFlagsMVKStr							(VkMacOSSurfaceCreateFlagsMVK value);
tcu::Format::Bitfield<32>	getMetalSurfaceCreateFlagsEXTStr							(VkMetalSurfaceCreateFlagsEXT value);
tcu::Format::Bitfield<32>	getViSurfaceCreateFlagsNNStr								(VkViSurfaceCreateFlagsNN value);
tcu::Format::Bitfield<32>	getWaylandSurfaceCreateFlagsKHRStr							(VkWaylandSurfaceCreateFlagsKHR value);
tcu::Format::Bitfield<32>	getWin32SurfaceCreateFlagsKHRStr							(VkWin32SurfaceCreateFlagsKHR value);
tcu::Format::Bitfield<32>	getXcbSurfaceCreateFlagsKHRStr								(VkXcbSurfaceCreateFlagsKHR value);
tcu::Format::Bitfield<32>	getXlibSurfaceCreateFlagsKHRStr								(VkXlibSurfaceCreateFlagsKHR value);

std::ostream&	operator<<	(std::ostream& s, const VkApplicationInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkInstanceCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkAllocationCallbacks& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceFeatures& value);
std::ostream&	operator<<	(std::ostream& s, const VkFormatProperties& value);
std::ostream&	operator<<	(std::ostream& s, const VkExtent3D& value);
std::ostream&	operator<<	(std::ostream& s, const VkImageFormatProperties& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceLimits& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceSparseProperties& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceProperties& value);
std::ostream&	operator<<	(std::ostream& s, const VkQueueFamilyProperties& value);
std::ostream&	operator<<	(std::ostream& s, const VkMemoryType& value);
std::ostream&	operator<<	(std::ostream& s, const VkMemoryHeap& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceMemoryProperties& value);
std::ostream&	operator<<	(std::ostream& s, const VkDeviceQueueCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkDeviceCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkExtensionProperties& value);
std::ostream&	operator<<	(std::ostream& s, const VkLayerProperties& value);
std::ostream&	operator<<	(std::ostream& s, const VkSubmitInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkMemoryAllocateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkMappedMemoryRange& value);
std::ostream&	operator<<	(std::ostream& s, const VkMemoryRequirements& value);
std::ostream&	operator<<	(std::ostream& s, const VkSparseImageFormatProperties& value);
std::ostream&	operator<<	(std::ostream& s, const VkSparseImageMemoryRequirements& value);
std::ostream&	operator<<	(std::ostream& s, const VkSparseMemoryBind& value);
std::ostream&	operator<<	(std::ostream& s, const VkSparseBufferMemoryBindInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkSparseImageOpaqueMemoryBindInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkImageSubresource& value);
std::ostream&	operator<<	(std::ostream& s, const VkOffset3D& value);
std::ostream&	operator<<	(std::ostream& s, const VkSparseImageMemoryBind& value);
std::ostream&	operator<<	(std::ostream& s, const VkSparseImageMemoryBindInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkBindSparseInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkFenceCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkSemaphoreCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkEventCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkQueryPoolCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkBufferCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkBufferViewCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkImageCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkSubresourceLayout& value);
std::ostream&	operator<<	(std::ostream& s, const VkComponentMapping& value);
std::ostream&	operator<<	(std::ostream& s, const VkImageSubresourceRange& value);
std::ostream&	operator<<	(std::ostream& s, const VkImageViewCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkShaderModuleCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineCacheCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkSpecializationMapEntry& value);
std::ostream&	operator<<	(std::ostream& s, const VkSpecializationInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineShaderStageCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkVertexInputBindingDescription& value);
std::ostream&	operator<<	(std::ostream& s, const VkVertexInputAttributeDescription& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineVertexInputStateCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineInputAssemblyStateCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineTessellationStateCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkViewport& value);
std::ostream&	operator<<	(std::ostream& s, const VkOffset2D& value);
std::ostream&	operator<<	(std::ostream& s, const VkExtent2D& value);
std::ostream&	operator<<	(std::ostream& s, const VkRect2D& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineViewportStateCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineRasterizationStateCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineMultisampleStateCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkStencilOpState& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineDepthStencilStateCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineColorBlendAttachmentState& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineColorBlendStateCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineDynamicStateCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkGraphicsPipelineCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkComputePipelineCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkPushConstantRange& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineLayoutCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkSamplerCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkDescriptorSetLayoutBinding& value);
std::ostream&	operator<<	(std::ostream& s, const VkDescriptorSetLayoutCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkDescriptorPoolSize& value);
std::ostream&	operator<<	(std::ostream& s, const VkDescriptorPoolCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkDescriptorSetAllocateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkDescriptorImageInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkDescriptorBufferInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkWriteDescriptorSet& value);
std::ostream&	operator<<	(std::ostream& s, const VkCopyDescriptorSet& value);
std::ostream&	operator<<	(std::ostream& s, const VkFramebufferCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkAttachmentDescription& value);
std::ostream&	operator<<	(std::ostream& s, const VkAttachmentReference& value);
std::ostream&	operator<<	(std::ostream& s, const VkSubpassDescription& value);
std::ostream&	operator<<	(std::ostream& s, const VkSubpassDependency& value);
std::ostream&	operator<<	(std::ostream& s, const VkRenderPassCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkCommandPoolCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkCommandBufferAllocateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkCommandBufferInheritanceInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkCommandBufferBeginInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkBufferCopy& value);
std::ostream&	operator<<	(std::ostream& s, const VkImageSubresourceLayers& value);
std::ostream&	operator<<	(std::ostream& s, const VkImageCopy& value);
std::ostream&	operator<<	(std::ostream& s, const VkImageBlit& value);
std::ostream&	operator<<	(std::ostream& s, const VkBufferImageCopy& value);
std::ostream&	operator<<	(std::ostream& s, const VkClearColorValue& value);
std::ostream&	operator<<	(std::ostream& s, const VkClearDepthStencilValue& value);
std::ostream&	operator<<	(std::ostream& s, const VkClearValue& value);
std::ostream&	operator<<	(std::ostream& s, const VkClearAttachment& value);
std::ostream&	operator<<	(std::ostream& s, const VkClearRect& value);
std::ostream&	operator<<	(std::ostream& s, const VkImageResolve& value);
std::ostream&	operator<<	(std::ostream& s, const VkMemoryBarrier& value);
std::ostream&	operator<<	(std::ostream& s, const VkBufferMemoryBarrier& value);
std::ostream&	operator<<	(std::ostream& s, const VkImageMemoryBarrier& value);
std::ostream&	operator<<	(std::ostream& s, const VkRenderPassBeginInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkDispatchIndirectCommand& value);
std::ostream&	operator<<	(std::ostream& s, const VkDrawIndexedIndirectCommand& value);
std::ostream&	operator<<	(std::ostream& s, const VkDrawIndirectCommand& value);
std::ostream&	operator<<	(std::ostream& s, const VkBaseOutStructure& value);
std::ostream&	operator<<	(std::ostream& s, const VkBaseInStructure& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceSubgroupProperties& value);
std::ostream&	operator<<	(std::ostream& s, const VkBindBufferMemoryInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkBindImageMemoryInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDevice16BitStorageFeatures& value);
std::ostream&	operator<<	(std::ostream& s, const VkMemoryDedicatedRequirements& value);
std::ostream&	operator<<	(std::ostream& s, const VkMemoryDedicatedAllocateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkMemoryAllocateFlagsInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkDeviceGroupRenderPassBeginInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkDeviceGroupCommandBufferBeginInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkDeviceGroupSubmitInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkDeviceGroupBindSparseInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkBindBufferMemoryDeviceGroupInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkBindImageMemoryDeviceGroupInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceGroupProperties& value);
std::ostream&	operator<<	(std::ostream& s, const VkDeviceGroupDeviceCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkBufferMemoryRequirementsInfo2& value);
std::ostream&	operator<<	(std::ostream& s, const VkImageMemoryRequirementsInfo2& value);
std::ostream&	operator<<	(std::ostream& s, const VkImageSparseMemoryRequirementsInfo2& value);
std::ostream&	operator<<	(std::ostream& s, const VkMemoryRequirements2& value);
std::ostream&	operator<<	(std::ostream& s, const VkSparseImageMemoryRequirements2& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceFeatures2& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceProperties2& value);
std::ostream&	operator<<	(std::ostream& s, const VkFormatProperties2& value);
std::ostream&	operator<<	(std::ostream& s, const VkImageFormatProperties2& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceImageFormatInfo2& value);
std::ostream&	operator<<	(std::ostream& s, const VkQueueFamilyProperties2& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceMemoryProperties2& value);
std::ostream&	operator<<	(std::ostream& s, const VkSparseImageFormatProperties2& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceSparseImageFormatInfo2& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDevicePointClippingProperties& value);
std::ostream&	operator<<	(std::ostream& s, const VkInputAttachmentAspectReference& value);
std::ostream&	operator<<	(std::ostream& s, const VkRenderPassInputAttachmentAspectCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkImageViewUsageCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineTessellationDomainOriginStateCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkRenderPassMultiviewCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceMultiviewFeatures& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceMultiviewProperties& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceVariablePointersFeatures& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceProtectedMemoryFeatures& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceProtectedMemoryProperties& value);
std::ostream&	operator<<	(std::ostream& s, const VkDeviceQueueInfo2& value);
std::ostream&	operator<<	(std::ostream& s, const VkProtectedSubmitInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkSamplerYcbcrConversionCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkSamplerYcbcrConversionInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkBindImagePlaneMemoryInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkImagePlaneMemoryRequirementsInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceSamplerYcbcrConversionFeatures& value);
std::ostream&	operator<<	(std::ostream& s, const VkSamplerYcbcrConversionImageFormatProperties& value);
std::ostream&	operator<<	(std::ostream& s, const VkDescriptorUpdateTemplateEntry& value);
std::ostream&	operator<<	(std::ostream& s, const VkDescriptorUpdateTemplateCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkExternalMemoryProperties& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceExternalImageFormatInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkExternalImageFormatProperties& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceExternalBufferInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkExternalBufferProperties& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceIDProperties& value);
std::ostream&	operator<<	(std::ostream& s, const VkExternalMemoryImageCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkExternalMemoryBufferCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkExportMemoryAllocateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceExternalFenceInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkExternalFenceProperties& value);
std::ostream&	operator<<	(std::ostream& s, const VkExportFenceCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkExportSemaphoreCreateInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceExternalSemaphoreInfo& value);
std::ostream&	operator<<	(std::ostream& s, const VkExternalSemaphoreProperties& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceMaintenance3Properties& value);
std::ostream&	operator<<	(std::ostream& s, const VkDescriptorSetLayoutSupport& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceShaderDrawParametersFeatures& value);
std::ostream&	operator<<	(std::ostream& s, const VkSurfaceCapabilitiesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkSurfaceFormatKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkSwapchainCreateInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPresentInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkImageSwapchainCreateInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkBindImageMemorySwapchainInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkAcquireNextImageInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkDeviceGroupPresentCapabilitiesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkDeviceGroupPresentInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkDeviceGroupSwapchainCreateInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkDisplayPropertiesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkDisplayModeParametersKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkDisplayModePropertiesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkDisplayModeCreateInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkDisplayPlaneCapabilitiesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkDisplayPlanePropertiesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkDisplaySurfaceCreateInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkDisplayPresentInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkImportMemoryFdInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkMemoryFdPropertiesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkMemoryGetFdInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkImportSemaphoreFdInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkSemaphoreGetFdInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDevicePushDescriptorPropertiesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceShaderFloat16Int8FeaturesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkRectLayerKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPresentRegionKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPresentRegionsKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceImagelessFramebufferFeaturesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkFramebufferAttachmentImageInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkFramebufferAttachmentsCreateInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkRenderPassAttachmentBeginInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkAttachmentDescription2KHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkAttachmentReference2KHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkSubpassDescription2KHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkSubpassDependency2KHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkRenderPassCreateInfo2KHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkSubpassBeginInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkSubpassEndInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkSharedPresentSurfaceCapabilitiesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkImportFenceFdInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkFenceGetFdInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDevicePerformanceQueryFeaturesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDevicePerformanceQueryPropertiesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPerformanceCounterKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPerformanceCounterDescriptionKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkQueryPoolPerformanceCreateInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPerformanceCounterResultKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkAcquireProfilingLockInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPerformanceQuerySubmitInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceSurfaceInfo2KHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkSurfaceCapabilities2KHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkSurfaceFormat2KHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkDisplayProperties2KHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkDisplayPlaneProperties2KHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkDisplayModeProperties2KHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkDisplayPlaneInfo2KHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkDisplayPlaneCapabilities2KHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkImageFormatListCreateInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDevice8BitStorageFeaturesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceShaderClockFeaturesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkConformanceVersionKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceDriverPropertiesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceFloatControlsPropertiesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkSubpassDescriptionDepthStencilResolveKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceDepthStencilResolvePropertiesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceTimelineSemaphoreFeaturesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceTimelineSemaphorePropertiesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkSemaphoreTypeCreateInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkTimelineSemaphoreSubmitInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkSemaphoreWaitInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkSemaphoreSignalInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkSurfaceProtectedCapabilitiesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkAttachmentReferenceStencilLayoutKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkAttachmentDescriptionStencilLayoutKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineExecutablePropertiesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineExecutableInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineExecutableStatisticValueKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineExecutableStatisticKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineExecutableInternalRepresentationKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkDebugReportCallbackCreateInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineRasterizationStateRasterizationOrderAMD& value);
std::ostream&	operator<<	(std::ostream& s, const VkDebugMarkerObjectNameInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkDebugMarkerObjectTagInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkDebugMarkerMarkerInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkDedicatedAllocationImageCreateInfoNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkDedicatedAllocationBufferCreateInfoNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkDedicatedAllocationMemoryAllocateInfoNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceTransformFeedbackFeaturesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceTransformFeedbackPropertiesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineRasterizationStateStreamCreateInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkImageViewHandleInfoNVX& value);
std::ostream&	operator<<	(std::ostream& s, const VkTextureLODGatherFormatPropertiesAMD& value);
std::ostream&	operator<<	(std::ostream& s, const VkShaderResourceUsageAMD& value);
std::ostream&	operator<<	(std::ostream& s, const VkShaderStatisticsInfoAMD& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceCornerSampledImageFeaturesNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkExternalImageFormatPropertiesNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkExternalMemoryImageCreateInfoNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkExportMemoryAllocateInfoNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkValidationFlagsEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkImageViewASTCDecodeModeEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceASTCDecodeFeaturesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkConditionalRenderingBeginInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceConditionalRenderingFeaturesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkCommandBufferInheritanceConditionalRenderingInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkDeviceGeneratedCommandsFeaturesNVX& value);
std::ostream&	operator<<	(std::ostream& s, const VkDeviceGeneratedCommandsLimitsNVX& value);
std::ostream&	operator<<	(std::ostream& s, const VkIndirectCommandsTokenNVX& value);
std::ostream&	operator<<	(std::ostream& s, const VkIndirectCommandsLayoutTokenNVX& value);
std::ostream&	operator<<	(std::ostream& s, const VkIndirectCommandsLayoutCreateInfoNVX& value);
std::ostream&	operator<<	(std::ostream& s, const VkCmdProcessCommandsInfoNVX& value);
std::ostream&	operator<<	(std::ostream& s, const VkCmdReserveSpaceForCommandsInfoNVX& value);
std::ostream&	operator<<	(std::ostream& s, const VkObjectTableCreateInfoNVX& value);
std::ostream&	operator<<	(std::ostream& s, const VkObjectTableEntryNVX& value);
std::ostream&	operator<<	(std::ostream& s, const VkObjectTablePipelineEntryNVX& value);
std::ostream&	operator<<	(std::ostream& s, const VkObjectTableDescriptorSetEntryNVX& value);
std::ostream&	operator<<	(std::ostream& s, const VkObjectTableVertexBufferEntryNVX& value);
std::ostream&	operator<<	(std::ostream& s, const VkObjectTableIndexBufferEntryNVX& value);
std::ostream&	operator<<	(std::ostream& s, const VkObjectTablePushConstantEntryNVX& value);
std::ostream&	operator<<	(std::ostream& s, const VkViewportWScalingNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineViewportWScalingStateCreateInfoNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkSurfaceCapabilities2EXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkDisplayPowerInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkDeviceEventInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkDisplayEventInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkSwapchainCounterCreateInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkRefreshCycleDurationGOOGLE& value);
std::ostream&	operator<<	(std::ostream& s, const VkPastPresentationTimingGOOGLE& value);
std::ostream&	operator<<	(std::ostream& s, const VkPresentTimeGOOGLE& value);
std::ostream&	operator<<	(std::ostream& s, const VkPresentTimesInfoGOOGLE& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX& value);
std::ostream&	operator<<	(std::ostream& s, const VkViewportSwizzleNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineViewportSwizzleStateCreateInfoNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceDiscardRectanglePropertiesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineDiscardRectangleStateCreateInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceConservativeRasterizationPropertiesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineRasterizationConservativeStateCreateInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceDepthClipEnableFeaturesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineRasterizationDepthClipStateCreateInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkXYColorEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkHdrMetadataEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkDebugUtilsObjectNameInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkDebugUtilsObjectTagInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkDebugUtilsLabelEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkDebugUtilsMessengerCallbackDataEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkDebugUtilsMessengerCreateInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkSamplerReductionModeCreateInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceInlineUniformBlockFeaturesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceInlineUniformBlockPropertiesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkWriteDescriptorSetInlineUniformBlockEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkDescriptorPoolInlineUniformBlockCreateInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkSampleLocationEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkSampleLocationsInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkAttachmentSampleLocationsEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkSubpassSampleLocationsEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkRenderPassSampleLocationsBeginInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineSampleLocationsStateCreateInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceSampleLocationsPropertiesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkMultisamplePropertiesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineColorBlendAdvancedStateCreateInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineCoverageToColorStateCreateInfoNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineCoverageModulationStateCreateInfoNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkDrmFormatModifierPropertiesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkDrmFormatModifierPropertiesListEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceImageDrmFormatModifierInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkImageDrmFormatModifierListCreateInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkImageDrmFormatModifierExplicitCreateInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkImageDrmFormatModifierPropertiesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkValidationCacheCreateInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkShaderModuleValidationCacheCreateInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceDescriptorIndexingFeaturesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceDescriptorIndexingPropertiesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkShadingRatePaletteNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineViewportShadingRateImageStateCreateInfoNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceShadingRateImageFeaturesNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceShadingRateImagePropertiesNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkCoarseSampleLocationNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkCoarseSampleOrderCustomNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkRayTracingShaderGroupCreateInfoNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkRayTracingPipelineCreateInfoNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkGeometryTrianglesNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkGeometryAABBNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkGeometryDataNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkGeometryNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkAccelerationStructureInfoNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkAccelerationStructureCreateInfoNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkBindAccelerationStructureMemoryInfoNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkWriteDescriptorSetAccelerationStructureNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkAccelerationStructureMemoryRequirementsInfoNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceRayTracingPropertiesNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineRepresentativeFragmentTestStateCreateInfoNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceImageViewImageFormatInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkFilterCubicImageViewImageFormatPropertiesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkDeviceQueueGlobalPriorityCreateInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkImportMemoryHostPointerInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkMemoryHostPointerPropertiesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceExternalMemoryHostPropertiesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineCompilerControlCreateInfoAMD& value);
std::ostream&	operator<<	(std::ostream& s, const VkCalibratedTimestampInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceShaderCorePropertiesAMD& value);
std::ostream&	operator<<	(std::ostream& s, const VkDeviceMemoryOverallocationCreateInfoAMD& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkVertexInputBindingDivisorDescriptionEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineVertexInputDivisorStateCreateInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineCreationFeedbackEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineCreationFeedbackCreateInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceMeshShaderFeaturesNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceMeshShaderPropertiesNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkDrawMeshTasksIndirectCommandNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceShaderImageFootprintFeaturesNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineViewportExclusiveScissorStateCreateInfoNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceExclusiveScissorFeaturesNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkQueueFamilyCheckpointPropertiesNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkCheckpointDataNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL& value);
std::ostream&	operator<<	(std::ostream& s, const VkPerformanceValueDataINTEL& value);
std::ostream&	operator<<	(std::ostream& s, const VkPerformanceValueINTEL& value);
std::ostream&	operator<<	(std::ostream& s, const VkInitializePerformanceApiInfoINTEL& value);
std::ostream&	operator<<	(std::ostream& s, const VkQueryPoolCreateInfoINTEL& value);
std::ostream&	operator<<	(std::ostream& s, const VkPerformanceMarkerInfoINTEL& value);
std::ostream&	operator<<	(std::ostream& s, const VkPerformanceStreamMarkerInfoINTEL& value);
std::ostream&	operator<<	(std::ostream& s, const VkPerformanceOverrideInfoINTEL& value);
std::ostream&	operator<<	(std::ostream& s, const VkPerformanceConfigurationAcquireInfoINTEL& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDevicePCIBusInfoPropertiesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkDisplayNativeHdrSurfaceCapabilitiesAMD& value);
std::ostream&	operator<<	(std::ostream& s, const VkSwapchainDisplayNativeHdrCreateInfoAMD& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceFragmentDensityMapFeaturesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceFragmentDensityMapPropertiesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkRenderPassFragmentDensityMapCreateInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceScalarBlockLayoutFeaturesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceShaderCoreProperties2AMD& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceCoherentMemoryFeaturesAMD& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceMemoryBudgetPropertiesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceMemoryPriorityFeaturesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkMemoryPriorityAllocateInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkBufferDeviceAddressInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkBufferDeviceAddressCreateInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkImageStencilUsageCreateInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkValidationFeaturesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkCooperativeMatrixPropertiesNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceCooperativeMatrixFeaturesNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceCooperativeMatrixPropertiesNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceCoverageReductionModeFeaturesNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineCoverageReductionStateCreateInfoNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkFramebufferMixedSamplesCombinationNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkHeadlessSurfaceCreateInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceLineRasterizationFeaturesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceLineRasterizationPropertiesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineRasterizationLineStateCreateInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceHostQueryResetFeaturesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceIndexTypeUint8FeaturesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkAndroidSurfaceCreateInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkAndroidHardwareBufferUsageANDROID& value);
std::ostream&	operator<<	(std::ostream& s, const VkAndroidHardwareBufferPropertiesANDROID& value);
std::ostream&	operator<<	(std::ostream& s, const VkAndroidHardwareBufferFormatPropertiesANDROID& value);
std::ostream&	operator<<	(std::ostream& s, const VkImportAndroidHardwareBufferInfoANDROID& value);
std::ostream&	operator<<	(std::ostream& s, const VkMemoryGetAndroidHardwareBufferInfoANDROID& value);
std::ostream&	operator<<	(std::ostream& s, const VkExternalFormatANDROID& value);
std::ostream&	operator<<	(std::ostream& s, const VkImagePipeSurfaceCreateInfoFUCHSIA& value);
std::ostream&	operator<<	(std::ostream& s, const VkStreamDescriptorSurfaceCreateInfoGGP& value);
std::ostream&	operator<<	(std::ostream& s, const VkPresentFrameTokenGGP& value);
std::ostream&	operator<<	(std::ostream& s, const VkIOSSurfaceCreateInfoMVK& value);
std::ostream&	operator<<	(std::ostream& s, const VkMacOSSurfaceCreateInfoMVK& value);
std::ostream&	operator<<	(std::ostream& s, const VkMetalSurfaceCreateInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkViSurfaceCreateInfoNN& value);
std::ostream&	operator<<	(std::ostream& s, const VkWaylandSurfaceCreateInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkWin32SurfaceCreateInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkImportMemoryWin32HandleInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkExportMemoryWin32HandleInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkMemoryWin32HandlePropertiesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkMemoryGetWin32HandleInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkWin32KeyedMutexAcquireReleaseInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkImportSemaphoreWin32HandleInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkExportSemaphoreWin32HandleInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkD3D12FenceSubmitInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkSemaphoreGetWin32HandleInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkImportFenceWin32HandleInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkExportFenceWin32HandleInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkFenceGetWin32HandleInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkImportMemoryWin32HandleInfoNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkExportMemoryWin32HandleInfoNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkWin32KeyedMutexAcquireReleaseInfoNV& value);
std::ostream&	operator<<	(std::ostream& s, const VkSurfaceFullScreenExclusiveInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkSurfaceCapabilitiesFullScreenExclusiveEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkSurfaceFullScreenExclusiveWin32InfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkXcbSurfaceCreateInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkXlibSurfaceCreateInfoKHR& value);
