|  |  |  | @ -340,25 +340,16 @@ void vulkan_format_props_query(struct wlr_vk_device *dev, | 
			
		
	
		
			
				
					|  |  |  |  | 		format_name ? format_name : "<unknown>", format->drm); | 
			
		
	
		
			
				
					|  |  |  |  | 	free(format_name); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	// get general features and modifiers
 | 
			
		
	
		
			
				
					|  |  |  |  | 	VkFormatProperties2 fmtp = {0}; | 
			
		
	
		
			
				
					|  |  |  |  | 	fmtp.sType = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	VkDrmFormatModifierPropertiesListEXT modp = {0}; | 
			
		
	
		
			
				
					|  |  |  |  | 	modp.sType = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT; | 
			
		
	
		
			
				
					|  |  |  |  | 	fmtp.pNext = &modp; | 
			
		
	
		
			
				
					|  |  |  |  | 	VkDrmFormatModifierPropertiesListEXT modp = { | 
			
		
	
		
			
				
					|  |  |  |  | 		.sType = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT, | 
			
		
	
		
			
				
					|  |  |  |  | 	}; | 
			
		
	
		
			
				
					|  |  |  |  | 	VkFormatProperties2 fmtp = { | 
			
		
	
		
			
				
					|  |  |  |  | 		.sType = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2, | 
			
		
	
		
			
				
					|  |  |  |  | 		.pNext = &modp, | 
			
		
	
		
			
				
					|  |  |  |  | 	}; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	vkGetPhysicalDeviceFormatProperties2(dev->phdev, format->vk, &fmtp); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	// detailed check
 | 
			
		
	
		
			
				
					|  |  |  |  | 	VkPhysicalDeviceImageFormatInfo2 fmti = {0}; | 
			
		
	
		
			
				
					|  |  |  |  | 	fmti.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2; | 
			
		
	
		
			
				
					|  |  |  |  | 	fmti.type = VK_IMAGE_TYPE_2D; | 
			
		
	
		
			
				
					|  |  |  |  | 	fmti.format = format->vk; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	VkImageFormatProperties2 ifmtp = {0}; | 
			
		
	
		
			
				
					|  |  |  |  | 	ifmtp.sType = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	bool add_fmt_props = false; | 
			
		
	
		
			
				
					|  |  |  |  | 	struct wlr_vk_format_props props = {0}; | 
			
		
	
		
			
				
					|  |  |  |  | 	props.format = *format; | 
			
		
	
	
		
			
				
					|  |  |  | @ -366,13 +357,18 @@ void vulkan_format_props_query(struct wlr_vk_device *dev, | 
			
		
	
		
			
				
					|  |  |  |  | 	// non-dmabuf texture properties
 | 
			
		
	
		
			
				
					|  |  |  |  | 	const char *shm_texture_status; | 
			
		
	
		
			
				
					|  |  |  |  | 	if ((fmtp.formatProperties.optimalTilingFeatures & tex_features) == tex_features) { | 
			
		
	
		
			
				
					|  |  |  |  | 		fmti.pNext = NULL; | 
			
		
	
		
			
				
					|  |  |  |  | 		ifmtp.pNext = NULL; | 
			
		
	
		
			
				
					|  |  |  |  | 		fmti.tiling = VK_IMAGE_TILING_OPTIMAL; | 
			
		
	
		
			
				
					|  |  |  |  | 		fmti.usage = tex_usage; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		res = vkGetPhysicalDeviceImageFormatProperties2( | 
			
		
	
		
			
				
					|  |  |  |  | 			dev->phdev, &fmti, &ifmtp); | 
			
		
	
		
			
				
					|  |  |  |  | 		VkPhysicalDeviceImageFormatInfo2 fmti = { | 
			
		
	
		
			
				
					|  |  |  |  | 			.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2, | 
			
		
	
		
			
				
					|  |  |  |  | 			.type = VK_IMAGE_TYPE_2D, | 
			
		
	
		
			
				
					|  |  |  |  | 			.format = format->vk, | 
			
		
	
		
			
				
					|  |  |  |  | 			.tiling = VK_IMAGE_TILING_OPTIMAL, | 
			
		
	
		
			
				
					|  |  |  |  | 			.usage = tex_usage, | 
			
		
	
		
			
				
					|  |  |  |  | 		}; | 
			
		
	
		
			
				
					|  |  |  |  | 		VkImageFormatProperties2 ifmtp = { | 
			
		
	
		
			
				
					|  |  |  |  | 			.sType = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2, | 
			
		
	
		
			
				
					|  |  |  |  | 		}; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		res = vkGetPhysicalDeviceImageFormatProperties2(dev->phdev, &fmti, &ifmtp); | 
			
		
	
		
			
				
					|  |  |  |  | 		if (res != VK_SUCCESS) { | 
			
		
	
		
			
				
					|  |  |  |  | 			if (res != VK_ERROR_FORMAT_NOT_SUPPORTED) { | 
			
		
	
		
			
				
					|  |  |  |  | 				wlr_vk_error("vkGetPhysicalDeviceImageFormatProperties2", | 
			
		
	
	
		
			
				
					|  |  |  | 
 |