mirror of
				https://github.com/ocornut/imgui.git
				synced 2025-10-26 12:27:30 +00:00 
			
		
		
		
	Backends: Vulkan: Fixed setting VkSwapchainCreateInfoKHR::preTransform for platforms not supporting VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR. (#8222)
This commit is contained in:
		 Mahmood - Zer0xFF
					Mahmood - Zer0xFF
				
			
				
					committed by
					
						 ocornut
						ocornut
					
				
			
			
				
	
			
			
			 ocornut
						ocornut
					
				
			
						parent
						
							f25665f360
						
					
				
				
					commit
					e487eb9da0
				
			| @@ -26,6 +26,7 @@ | |||||||
|  |  | ||||||
| // CHANGELOG | // CHANGELOG | ||||||
| // (minor and older changes stripped away, please see git history for details) | // (minor and older changes stripped away, please see git history for details) | ||||||
|  | //  2024-12-11: Vulkan: Fixed setting VkSwapchainCreateInfoKHR::preTransform for platforms not supporting VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR. (#8222) | ||||||
| //  2024-11-27: Vulkan: Make user-provided descriptor pool optional. As a convenience, when setting init_info->DescriptorPoolSize the backend will create one itself. (#8172, #4867) | //  2024-11-27: Vulkan: Make user-provided descriptor pool optional. As a convenience, when setting init_info->DescriptorPoolSize the backend will create one itself. (#8172, #4867) | ||||||
| //  2024-10-07: Vulkan: Changed default texture sampler to Clamp instead of Repeat/Wrap. | //  2024-10-07: Vulkan: Changed default texture sampler to Clamp instead of Repeat/Wrap. | ||||||
| //  2024-10-07: Vulkan: Expose selected render state in ImGui_ImplVulkan_RenderState, which you can access in 'void* platform_io.Renderer_RenderState' during draw callbacks. | //  2024-10-07: Vulkan: Expose selected render state in ImGui_ImplVulkan_RenderState, which you can access in 'void* platform_io.Renderer_RenderState' during draw callbacks. | ||||||
| @@ -1426,6 +1427,10 @@ void ImGui_ImplVulkanH_CreateWindowSwapChain(VkPhysicalDevice physical_device, V | |||||||
|  |  | ||||||
|     // Create Swapchain |     // Create Swapchain | ||||||
|     { |     { | ||||||
|  |         VkSurfaceCapabilitiesKHR cap; | ||||||
|  |         err = vkGetPhysicalDeviceSurfaceCapabilitiesKHR(physical_device, wd->Surface, &cap); | ||||||
|  |         check_vk_result(err); | ||||||
|  |  | ||||||
|         VkSwapchainCreateInfoKHR info = {}; |         VkSwapchainCreateInfoKHR info = {}; | ||||||
|         info.sType = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR; |         info.sType = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR; | ||||||
|         info.surface = wd->Surface; |         info.surface = wd->Surface; | ||||||
| @@ -1435,19 +1440,15 @@ void ImGui_ImplVulkanH_CreateWindowSwapChain(VkPhysicalDevice physical_device, V | |||||||
|         info.imageArrayLayers = 1; |         info.imageArrayLayers = 1; | ||||||
|         info.imageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; |         info.imageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; | ||||||
|         info.imageSharingMode = VK_SHARING_MODE_EXCLUSIVE;           // Assume that graphics family == present family |         info.imageSharingMode = VK_SHARING_MODE_EXCLUSIVE;           // Assume that graphics family == present family | ||||||
|         info.preTransform = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR; |         info.preTransform = (cap.supportedTransforms & VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR) ? VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR : cap.currentTransform; | ||||||
|         info.compositeAlpha = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR; |         info.compositeAlpha = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR; | ||||||
|         info.presentMode = wd->PresentMode; |         info.presentMode = wd->PresentMode; | ||||||
|         info.clipped = VK_TRUE; |         info.clipped = VK_TRUE; | ||||||
|         info.oldSwapchain = old_swapchain; |         info.oldSwapchain = old_swapchain; | ||||||
|         VkSurfaceCapabilitiesKHR cap; |  | ||||||
|         err = vkGetPhysicalDeviceSurfaceCapabilitiesKHR(physical_device, wd->Surface, &cap); |  | ||||||
|         check_vk_result(err); |  | ||||||
|         if (info.minImageCount < cap.minImageCount) |         if (info.minImageCount < cap.minImageCount) | ||||||
|             info.minImageCount = cap.minImageCount; |             info.minImageCount = cap.minImageCount; | ||||||
|         else if (cap.maxImageCount != 0 && info.minImageCount > cap.maxImageCount) |         else if (cap.maxImageCount != 0 && info.minImageCount > cap.maxImageCount) | ||||||
|             info.minImageCount = cap.maxImageCount; |             info.minImageCount = cap.maxImageCount; | ||||||
|  |  | ||||||
|         if (cap.currentExtent.width == 0xffffffff) |         if (cap.currentExtent.width == 0xffffffff) | ||||||
|         { |         { | ||||||
|             info.imageExtent.width = wd->Width = w; |             info.imageExtent.width = wd->Width = w; | ||||||
|   | |||||||
| @@ -43,6 +43,9 @@ Breaking changes: | |||||||
|  |  | ||||||
| Other changes: | Other changes: | ||||||
|  |  | ||||||
|  | - Backends: Vulkan: Fixed setting VkSwapchainCreateInfoKHR::preTransform for | ||||||
|  |   platforms not supporting VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR. (#8222) [@Zer0xFF] | ||||||
|  |  | ||||||
|  |  | ||||||
| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ||||||
|  VERSION 1.91.6 (Released 2024-12-11) |  VERSION 1.91.6 (Released 2024-12-11) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user