/* WARNING: This is auto-generated file. Do not modify, since changes will
 * be lost! Modify the generating script instead.
 */
enum HandleType
{
	HANDLE_TYPE_INSTANCE							= 0,
	HANDLE_TYPE_PHYSICAL_DEVICE,
	HANDLE_TYPE_DEVICE,
	HANDLE_TYPE_QUEUE,
	HANDLE_TYPE_SEMAPHORE,
	HANDLE_TYPE_COMMAND_BUFFER,
	HANDLE_TYPE_FENCE,
	HANDLE_TYPE_DEVICE_MEMORY,
	HANDLE_TYPE_BUFFER,
	HANDLE_TYPE_IMAGE,
	HANDLE_TYPE_EVENT,
	HANDLE_TYPE_QUERY_POOL,
	HANDLE_TYPE_BUFFER_VIEW,
	HANDLE_TYPE_IMAGE_VIEW,
	HANDLE_TYPE_SHADER_MODULE,
	HANDLE_TYPE_PIPELINE_CACHE,
	HANDLE_TYPE_PIPELINE_LAYOUT,
	HANDLE_TYPE_RENDER_PASS,
	HANDLE_TYPE_PIPELINE,
	HANDLE_TYPE_DESCRIPTOR_SET_LAYOUT,
	HANDLE_TYPE_SAMPLER,
	HANDLE_TYPE_DESCRIPTOR_POOL,
	HANDLE_TYPE_DESCRIPTOR_SET,
	HANDLE_TYPE_FRAMEBUFFER,
	HANDLE_TYPE_COMMAND_POOL,
	HANDLE_TYPE_SAMPLER_YCBCR_CONVERSION,
	HANDLE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
	HANDLE_TYPE_SURFACE_KHR,
	HANDLE_TYPE_SWAPCHAIN_KHR,
	HANDLE_TYPE_DISPLAY_KHR,
	HANDLE_TYPE_DISPLAY_MODE_KHR,
	HANDLE_TYPE_DEBUG_REPORT_CALLBACK_EXT,
	HANDLE_TYPE_OBJECT_TABLE_NVX,
	HANDLE_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX,
	HANDLE_TYPE_DEBUG_UTILS_MESSENGER_EXT,
	HANDLE_TYPE_VALIDATION_CACHE_EXT,
	HANDLE_TYPE_ACCELERATION_STRUCTURE_NV,
	HANDLE_TYPE_PERFORMANCE_CONFIGURATION_INTEL,
	HANDLE_TYPE_LAST								= HANDLE_TYPE_PERFORMANCE_CONFIGURATION_INTEL + 1
};

