@ -255,21 +255,6 @@ static void list_context_extensions(int client, int major, int minor) 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    }   
					 
					 
					 
					    }   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					}  
					 
					 
					 
					}  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					static  void  list_vulkan_instance_extensions ( void )  
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					{  
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    printf ( " Vulkan instance extensions: \n " ) ;   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    uint32_t  ep_count ;   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    vkEnumerateInstanceExtensionProperties ( NULL ,  & ep_count ,  NULL ) ;   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    VkExtensionProperties *  ep  =  calloc ( ep_count ,  sizeof ( VkExtensionProperties ) ) ;   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    vkEnumerateInstanceExtensionProperties ( NULL ,  & ep_count ,  ep ) ;   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    for  ( uint32_t  i  =  0 ;   i  <  ep_count ;   i + + )   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        printf ( "  %s (spec version %u) \n " ,  ep [ i ] . extensionName ,  ep [ i ] . specVersion ) ;   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    free ( ep ) ;   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					}  
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					static  void  list_vulkan_instance_layers ( void )  
					 
					 
					 
					static  void  list_vulkan_instance_layers ( void )  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					{  
					 
					 
					 
					{  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    printf ( " Vulkan instance layers: \n " ) ;   
					 
					 
					 
					    printf ( " Vulkan instance layers: \n " ) ;   
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -290,21 +275,6 @@ static void list_vulkan_instance_layers(void) 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    free ( lp ) ;   
					 
					 
					 
					    free ( lp ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					}  
					 
					 
					 
					}  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					static  void  list_vulkan_device_extensions ( VkInstance  instance ,  VkPhysicalDevice  device )  
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					{  
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    printf ( " Vulkan device extensions: \n " ) ;   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    uint32_t  ep_count ;   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    vkEnumerateDeviceExtensionProperties ( device ,  NULL ,  & ep_count ,  NULL ) ;   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    VkExtensionProperties *  ep  =  calloc ( ep_count ,  sizeof ( VkExtensionProperties ) ) ;   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    vkEnumerateDeviceExtensionProperties ( device ,  NULL ,  & ep_count ,  ep ) ;   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    for  ( uint32_t  i  =  0 ;   i  <  ep_count ;   i + + )   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        printf ( "  %s (spec version %u) \n " ,  ep [ i ] . extensionName ,  ep [ i ] . specVersion ) ;   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    free ( ep ) ;   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					}  
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					static  void  list_vulkan_device_layers ( VkInstance  instance ,  VkPhysicalDevice  device )  
					 
					 
					 
					static  void  list_vulkan_device_layers ( VkInstance  instance ,  VkPhysicalDevice  device )  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					{  
					 
					 
					 
					{  
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					    printf ( " Vulkan device layers: \n " ) ;   
					 
					 
					 
					    printf ( " Vulkan device layers: \n " ) ;   
				
			 
			
		
	
	
		
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
					 
					@ -953,20 +923,51 @@ int main(int argc, char** argv) 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					               VK_VERSION_MAJOR ( loader_version ) ,   
					 
					 
					 
					               VK_VERSION_MAJOR ( loader_version ) ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					               VK_VERSION_MINOR ( loader_version ) ) ;   
					 
					 
					 
					               VK_VERSION_MINOR ( loader_version ) ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        uint32_t  re_count ;   
					 
					 
					 
					        uint32_t  glfw_re_count ;   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					        const  char * *  re  =  glfwGetRequiredInstanceExtensions ( & re_count ) ;   
					 
					 
					 
					        const  char * *  glfw_re  =  glfwGetRequiredInstanceExtensions ( & glfw_re_count ) ;   
				
			 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					        uint32_t  re_count  =  glfw_re_count ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					        const  char * *  re  =  calloc ( glfw_re_count ,  sizeof ( char * ) ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        if  ( re )   
					 
					 
					 
					        if  ( glfw_ re)   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					        {   
					 
					 
					 
					        {   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            printf ( " Vulkan window surface required instance extensions: \n " ) ;   
					 
					 
					 
					            printf ( " Vulkan window surface required instance extensions: \n " ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            for  ( uint32_t  i  =  0 ;   i  <  re_count ;   i + + )   
					 
					 
					 
					            for  ( uint32_t  i  =  0 ;   i  <  glfw_re_count ;   i + + )   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					                printf ( "  %s \n " ,  re [ i ] ) ;   
					 
					 
					 
					            {   
				
			 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					                printf ( "  %s \n " ,  glfw_re [ i ] ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					                re [ i ]  =  glfw_re [ i ] ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					            }   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        }   
					 
					 
					 
					        }   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        else   
					 
					 
					 
					        else   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            printf ( " Vulkan window surface extensions missing \n " ) ;   
					 
					 
					 
					            printf ( " Vulkan window surface extensions missing \n " ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					        uint32_t  ep_count ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					        vkEnumerateInstanceExtensionProperties ( NULL ,  & ep_count ,  NULL ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					        VkExtensionProperties *  ep  =  calloc ( ep_count ,  sizeof ( VkExtensionProperties ) ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					        vkEnumerateInstanceExtensionProperties ( NULL ,  & ep_count ,  ep ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        if  ( list_extensions )   
					 
					 
					 
					        if  ( list_extensions )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            list_vulkan_instance_extensions ( ) ;   
					 
					 
					 
					        {   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					            printf ( " Vulkan instance extensions: \n " ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					            for  ( uint32_t  i  =  0 ;   i  <  ep_count ;   i + + )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					                printf ( "  %s (spec version %u) \n " ,  ep [ i ] . extensionName ,  ep [ i ] . specVersion ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					        }   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					        bool  portability_enumeration  =  false ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					        for  ( uint32_t  i  =  0 ;   i  <  ep_count ;   i + + )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					        {   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					            if  ( strcmp ( ep [ i ] . extensionName ,  " VK_KHR_portability_enumeration " )  ! =  0 )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					                continue ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					            re_count + + ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					            re  =  realloc ( re ,  sizeof ( char * )  *  re_count ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					            re [ re_count  -  1 ]  =  " VK_KHR_portability_enumeration " ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					            portability_enumeration  =  true ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					        }   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					        free ( ep ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        if  ( list_layers )   
					 
					 
					 
					        if  ( list_layers )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            list_vulkan_instance_layers ( ) ;   
					 
					 
					 
					            list_vulkan_instance_layers ( ) ;   
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -987,6 +988,9 @@ int main(int argc, char** argv) 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        ici . enabledExtensionCount  =  re_count ;   
					 
					 
					 
					        ici . enabledExtensionCount  =  re_count ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        ici . ppEnabledExtensionNames  =  re ;   
					 
					 
					 
					        ici . ppEnabledExtensionNames  =  re ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					        if  ( portability_enumeration )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					            ici . flags  | =  VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        VkInstance  instance  =  VK_NULL_HANDLE ;   
					 
					 
					 
					        VkInstance  instance  =  VK_NULL_HANDLE ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        if  ( vkCreateInstance ( & ici ,  NULL ,  & instance )  ! =  VK_SUCCESS )   
					 
					 
					 
					        if  ( vkCreateInstance ( & ici ,  NULL ,  & instance )  ! =  VK_SUCCESS )   
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -995,9 +999,11 @@ int main(int argc, char** argv) 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            exit ( EXIT_FAILURE ) ;   
					 
					 
					 
					            exit ( EXIT_FAILURE ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        }   
					 
					 
					 
					        }   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					        free ( re ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        gladLoadVulkanUserPtr ( NULL ,  ( GLADuserptrloadfunc )  glfwGetInstanceProcAddress ,  instance ) ;   
					 
					 
					 
					        gladLoadVulkanUserPtr ( NULL ,  ( GLADuserptrloadfunc )  glfwGetInstanceProcAddress ,  instance ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					        if  ( re )   
					 
					 
					 
					        if  ( glfw_ re_count )   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					        {   
					 
					 
					 
					        {   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            VkSurfaceKHR  surface  =  VK_NULL_HANDLE ;   
					 
					 
					 
					            VkSurfaceKHR  surface  =  VK_NULL_HANDLE ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -1020,16 +1026,44 @@ int main(int argc, char** argv) 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            VkPhysicalDeviceProperties  pdp ;   
					 
					 
					 
					            VkPhysicalDeviceProperties  pdp ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            vkGetPhysicalDeviceProperties ( pd [ i ] ,  & pdp ) ;   
					 
					 
					 
					            vkGetPhysicalDeviceProperties ( pd [ i ] ,  & pdp ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            printf ( " Vulkan %s device:  \" %s \"  (API version %i.%i) \n " ,   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					                   get_device_type_name ( pdp . deviceType ) ,   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					                   pdp . deviceName ,   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					                   VK_VERSION_MAJOR ( pdp . apiVersion ) ,   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					                   VK_VERSION_MINOR ( pdp . apiVersion ) ) ;   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            uint32_t  qfp_count ;   
					 
					 
					 
					            uint32_t  qfp_count ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            vkGetPhysicalDeviceQueueFamilyProperties ( pd [ i ] ,  & qfp_count ,  NULL ) ;   
					 
					 
					 
					            vkGetPhysicalDeviceQueueFamilyProperties ( pd [ i ] ,  & qfp_count ,  NULL ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            if  ( re )   
					 
					 
					 
					            uint32_t  ep_count ;   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					            vkEnumerateDeviceExtensionProperties ( pd [ i ] ,  NULL ,  & ep_count ,  NULL ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					            VkExtensionProperties *  ep  =  calloc ( ep_count ,  sizeof ( VkExtensionProperties ) ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					            vkEnumerateDeviceExtensionProperties ( pd [ i ] ,  NULL ,  & ep_count ,  ep ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					            if  ( portability_enumeration )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					            {   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					                bool  conformant  =  true ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					                for  ( uint32_t  j  =  0 ;  j  <  ep_count ;  j + + )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					                {   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					                    if  ( strcmp ( ep [ j ] . extensionName ,  " VK_KHR_portability_subset " )  = =  0 )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					                    {   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					                        conformant  =  false ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					                        break ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					                    }   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					                }   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					                printf ( " Vulkan %s %s device:  \" %s \"  (API version %i.%i) \n " ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					                       conformant  ?  " conformant "  :  " non-conformant " ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					                       get_device_type_name ( pdp . deviceType ) ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					                       pdp . deviceName ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					                       VK_VERSION_MAJOR ( pdp . apiVersion ) ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					                       VK_VERSION_MINOR ( pdp . apiVersion ) ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					            }   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					            else   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					            {   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					                printf ( " Vulkan %s device:  \" %s \"  (API version %i.%i) \n " ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					                       get_device_type_name ( pdp . deviceType ) ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					                       pdp . deviceName ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					                       VK_VERSION_MAJOR ( pdp . apiVersion ) ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					                       VK_VERSION_MINOR ( pdp . apiVersion ) ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					            }   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					            if  ( glfw_re_count )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            {   
					 
					 
					 
					            {   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					                printf ( " Vulkan device queue family presentation support: \n " ) ;   
					 
					 
					 
					                printf ( " Vulkan device queue family presentation support: \n " ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					                for  ( uint32_t  j  =  0 ;   j  <  qfp_count ;   j + + )   
					 
					 
					 
					                for  ( uint32_t  j  =  0 ;   j  <  qfp_count ;   j + + )   
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -1043,7 +1077,13 @@ int main(int argc, char** argv) 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            }   
					 
					 
					 
					            }   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            if  ( list_extensions )   
					 
					 
					 
					            if  ( list_extensions )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					                list_vulkan_device_extensions ( instance ,  pd [ i ] ) ;   
					 
					 
					 
					            {   
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					                printf ( " Vulkan device extensions: \n " ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					                for  ( uint32_t  j  =  0 ;   j  <  ep_count ;   j + + )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					                    printf ( "  %s (spec version %u) \n " ,  ep [ j ] . extensionName ,  ep [ j ] . specVersion ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					            }   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					            free ( ep ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					            if  ( list_layers )   
					 
					 
					 
					            if  ( list_layers )   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					                list_vulkan_device_layers ( instance ,  pd [ i ] ) ;   
					 
					 
					 
					                list_vulkan_device_layers ( instance ,  pd [ i ] ) ;