/* 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*	getColorSpaceKHRName					(VkColorSpaceKHR value);
const char*	getPresentModeKHRName					(VkPresentModeKHR value);
const char*	getDescriptorUpdateTemplateTypeKHRName	(VkDescriptorUpdateTemplateTypeKHR value);
const char*	getPointClippingBehaviorKHRName			(VkPointClippingBehaviorKHR value);
const char*	getTessellationDomainOriginKHRName		(VkTessellationDomainOriginKHR value);
const char*	getSamplerYcbcrModelConversionKHRName	(VkSamplerYcbcrModelConversionKHR value);
const char*	getSamplerYcbcrRangeKHRName				(VkSamplerYcbcrRangeKHR value);
const char*	getChromaLocationKHRName				(VkChromaLocationKHR value);
const char*	getDebugReportObjectTypeEXTName			(VkDebugReportObjectTypeEXT value);
const char*	getDebugReportErrorEXTName				(VkDebugReportErrorEXT 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<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<VkDescriptorUpdateTemplateTypeKHR>	getDescriptorUpdateTemplateTypeKHRStr	(VkDescriptorUpdateTemplateTypeKHR value)	{ return tcu::Format::Enum<VkDescriptorUpdateTemplateTypeKHR>(getDescriptorUpdateTemplateTypeKHRName, value);	}
inline tcu::Format::Enum<VkPointClippingBehaviorKHR>		getPointClippingBehaviorKHRStr			(VkPointClippingBehaviorKHR value)			{ return tcu::Format::Enum<VkPointClippingBehaviorKHR>(getPointClippingBehaviorKHRName, value);					}
inline tcu::Format::Enum<VkTessellationDomainOriginKHR>		getTessellationDomainOriginKHRStr		(VkTessellationDomainOriginKHR value)		{ return tcu::Format::Enum<VkTessellationDomainOriginKHR>(getTessellationDomainOriginKHRName, value);			}
inline tcu::Format::Enum<VkSamplerYcbcrModelConversionKHR>	getSamplerYcbcrModelConversionKHRStr	(VkSamplerYcbcrModelConversionKHR value)	{ return tcu::Format::Enum<VkSamplerYcbcrModelConversionKHR>(getSamplerYcbcrModelConversionKHRName, value);		}
inline tcu::Format::Enum<VkSamplerYcbcrRangeKHR>			getSamplerYcbcrRangeKHRStr				(VkSamplerYcbcrRangeKHR value)				{ return tcu::Format::Enum<VkSamplerYcbcrRangeKHR>(getSamplerYcbcrRangeKHRName, value);							}
inline tcu::Format::Enum<VkChromaLocationKHR>				getChromaLocationKHRStr					(VkChromaLocationKHR value)					{ return tcu::Format::Enum<VkChromaLocationKHR>(getChromaLocationKHRName, value);								}
inline tcu::Format::Enum<VkDebugReportObjectTypeEXT>		getDebugReportObjectTypeEXTStr			(VkDebugReportObjectTypeEXT value)			{ return tcu::Format::Enum<VkDebugReportObjectTypeEXT>(getDebugReportObjectTypeEXTName, value);					}
inline tcu::Format::Enum<VkDebugReportErrorEXT>				getDebugReportErrorEXTStr				(VkDebugReportErrorEXT value)				{ return tcu::Format::Enum<VkDebugReportErrorEXT>(getDebugReportErrorEXTName, 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, 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, VkDescriptorUpdateTemplateTypeKHR value)	{ return s << getDescriptorUpdateTemplateTypeKHRStr(value);	}
inline std::ostream&	operator<<	(std::ostream& s, VkPointClippingBehaviorKHR value)			{ return s << getPointClippingBehaviorKHRStr(value);		}
inline std::ostream&	operator<<	(std::ostream& s, VkTessellationDomainOriginKHR value)		{ return s << getTessellationDomainOriginKHRStr(value);		}
inline std::ostream&	operator<<	(std::ostream& s, VkSamplerYcbcrModelConversionKHR value)	{ return s << getSamplerYcbcrModelConversionKHRStr(value);	}
inline std::ostream&	operator<<	(std::ostream& s, VkSamplerYcbcrRangeKHR value)				{ return s << getSamplerYcbcrRangeKHRStr(value);			}
inline std::ostream&	operator<<	(std::ostream& s, VkChromaLocationKHR value)				{ return s << getChromaLocationKHRStr(value);				}
inline std::ostream&	operator<<	(std::ostream& s, VkDebugReportObjectTypeEXT value)			{ return s << getDebugReportObjectTypeEXTStr(value);		}
inline std::ostream&	operator<<	(std::ostream& s, VkDebugReportErrorEXT value)				{ return s << getDebugReportErrorEXTStr(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>	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>	getPipelineCreateFlagsStr						(VkPipelineCreateFlags 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>	getDescriptorSetLayoutCreateFlagsStr			(VkDescriptorSetLayoutCreateFlags value);
tcu::Format::Bitfield<32>	getDescriptorPoolCreateFlagsStr					(VkDescriptorPoolCreateFlags 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>	getSurfaceTransformFlagsKHRStr					(VkSurfaceTransformFlagsKHR value);
tcu::Format::Bitfield<32>	getCompositeAlphaFlagsKHRStr					(VkCompositeAlphaFlagsKHR value);
tcu::Format::Bitfield<32>	getSwapchainCreateFlagsKHRStr					(VkSwapchainCreateFlagsKHR value);
tcu::Format::Bitfield<32>	getDisplayPlaneAlphaFlagsKHRStr					(VkDisplayPlaneAlphaFlagsKHR value);
tcu::Format::Bitfield<32>	getExternalFenceHandleTypeFlagsKHRStr			(VkExternalFenceHandleTypeFlagsKHR value);
tcu::Format::Bitfield<32>	getExternalFenceFeatureFlagsKHRStr				(VkExternalFenceFeatureFlagsKHR value);
tcu::Format::Bitfield<32>	getFenceImportFlagsKHRStr						(VkFenceImportFlagsKHR value);
tcu::Format::Bitfield<32>	getDebugReportFlagsEXTStr						(VkDebugReportFlagsEXT value);
tcu::Format::Bitfield<32>	getExternalMemoryHandleTypeFlagsKHRStr			(VkExternalMemoryHandleTypeFlagsKHR value);
tcu::Format::Bitfield<32>	getExternalMemoryFeatureFlagsKHRStr				(VkExternalMemoryFeatureFlagsKHR value);
tcu::Format::Bitfield<32>	getExternalSemaphoreHandleTypeFlagsKHRStr		(VkExternalSemaphoreHandleTypeFlagsKHR value);
tcu::Format::Bitfield<32>	getExternalSemaphoreFeatureFlagsKHRStr			(VkExternalSemaphoreFeatureFlagsKHR value);
tcu::Format::Bitfield<32>	getSemaphoreImportFlagsKHRStr					(VkSemaphoreImportFlagsKHR value);
tcu::Format::Bitfield<32>	getInstanceCreateFlagsStr						(VkInstanceCreateFlags value);
tcu::Format::Bitfield<32>	getDeviceCreateFlagsStr							(VkDeviceCreateFlags value);
tcu::Format::Bitfield<32>	getDeviceQueueCreateFlagsStr					(VkDeviceQueueCreateFlags 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>	getImageViewCreateFlagsStr						(VkImageViewCreateFlags value);
tcu::Format::Bitfield<32>	getShaderModuleCreateFlagsStr					(VkShaderModuleCreateFlags value);
tcu::Format::Bitfield<32>	getPipelineCacheCreateFlagsStr					(VkPipelineCacheCreateFlags value);
tcu::Format::Bitfield<32>	getPipelineShaderStageCreateFlagsStr			(VkPipelineShaderStageCreateFlags 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>	getSamplerCreateFlagsStr						(VkSamplerCreateFlags value);
tcu::Format::Bitfield<32>	getDescriptorPoolResetFlagsStr					(VkDescriptorPoolResetFlags value);
tcu::Format::Bitfield<32>	getFramebufferCreateFlagsStr					(VkFramebufferCreateFlags value);
tcu::Format::Bitfield<32>	getRenderPassCreateFlagsStr						(VkRenderPassCreateFlags value);
tcu::Format::Bitfield<32>	getDisplayModeCreateFlagsKHRStr					(VkDisplayModeCreateFlagsKHR value);
tcu::Format::Bitfield<32>	getDisplaySurfaceCreateFlagsKHRStr				(VkDisplaySurfaceCreateFlagsKHR value);
tcu::Format::Bitfield<32>	getXlibSurfaceCreateFlagsKHRStr					(VkXlibSurfaceCreateFlagsKHR value);
tcu::Format::Bitfield<32>	getXcbSurfaceCreateFlagsKHRStr					(VkXcbSurfaceCreateFlagsKHR value);
tcu::Format::Bitfield<32>	getWaylandSurfaceCreateFlagsKHRStr				(VkWaylandSurfaceCreateFlagsKHR value);
tcu::Format::Bitfield<32>	getMirSurfaceCreateFlagsKHRStr					(VkMirSurfaceCreateFlagsKHR value);
tcu::Format::Bitfield<32>	getAndroidSurfaceCreateFlagsKHRStr				(VkAndroidSurfaceCreateFlagsKHR value);
tcu::Format::Bitfield<32>	getWin32SurfaceCreateFlagsKHRStr				(VkWin32SurfaceCreateFlagsKHR value);
tcu::Format::Bitfield<32>	getCommandPoolTrimFlagsKHRStr					(VkCommandPoolTrimFlagsKHR value);
tcu::Format::Bitfield<32>	getDescriptorUpdateTemplateCreateFlagsKHRStr	(VkDescriptorUpdateTemplateCreateFlagsKHR 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 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 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 VkXlibSurfaceCreateInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkXcbSurfaceCreateInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkWaylandSurfaceCreateInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkMirSurfaceCreateInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkAndroidSurfaceCreateInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkWin32SurfaceCreateInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceFeatures2KHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceProperties2KHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkFormatProperties2KHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkImageFormatProperties2KHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceImageFormatInfo2KHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkQueueFamilyProperties2KHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceMemoryProperties2KHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkSparseImageFormatProperties2KHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceSparseImageFormatInfo2KHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDevicePushDescriptorPropertiesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDevice16BitStorageFeaturesKHR& 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 VkDescriptorUpdateTemplateEntryKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkDescriptorUpdateTemplateCreateInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkSharedPresentSurfaceCapabilitiesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDevicePointClippingPropertiesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkInputAttachmentAspectReferenceKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkRenderPassInputAttachmentAspectCreateInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkImageViewUsageCreateInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPipelineTessellationDomainOriginStateCreateInfoKHR& 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 VkPhysicalDeviceExternalFenceInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkExternalFencePropertiesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkExportFenceCreateInfoKHR& 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 VkImportFenceFdInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkFenceGetFdInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkMemoryDedicatedRequirementsKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkMemoryDedicatedAllocateInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkBufferMemoryRequirementsInfo2KHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkImageMemoryRequirementsInfo2KHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkImageSparseMemoryRequirementsInfo2KHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkMemoryRequirements2KHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkSparseImageMemoryRequirements2KHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkImageFormatListCreateInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkSamplerYcbcrConversionCreateInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkSamplerYcbcrConversionInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkBindImagePlaneMemoryInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkImagePlaneMemoryRequirementsInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkSamplerYcbcrConversionImageFormatPropertiesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkDebugReportCallbackCreateInfoEXT& value);
std::ostream&	operator<<	(std::ostream& s, const VkRenderPassMultiviewCreateInfoKHX& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceMultiviewFeaturesKHX& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceMultiviewPropertiesKHX& value);
std::ostream&	operator<<	(std::ostream& s, const VkExternalMemoryPropertiesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceExternalImageFormatInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkExternalImageFormatPropertiesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceExternalBufferInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkExternalBufferPropertiesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceIDPropertiesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkExternalMemoryImageCreateInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkExternalMemoryBufferCreateInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkExportMemoryAllocateInfoKHR& 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 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 VkWin32KeyedMutexAcquireReleaseInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceExternalSemaphoreInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkExternalSemaphorePropertiesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkExportSemaphoreCreateInfoKHR& 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 VkImportSemaphoreFdInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkSemaphoreGetFdInfoKHR& 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 VkPhysicalDeviceVariablePointerFeaturesKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkBindBufferMemoryInfoKHR& value);
std::ostream&	operator<<	(std::ostream& s, const VkBindImageMemoryInfoKHR& value);
