mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu-mainline.git
				synced 2025-03-21 01:53:15 +00:00 
			
		
		
		
	vk_device: Fix driver id check on AMD for VK_EXT_extended_dynamic_state
'driver_id' can only be known on Vulkan 1.1 after creating a logical device. Move the driver id check to disable VK_EXT_extended_dynamic_state after the logical device is successfully initialized. The Vulkan device will have the extension enabled but it will not be used.
This commit is contained in:
		
							parent
							
								
									e9b9fc4674
								
							
						
					
					
						commit
						c573920c01
					
				| @ -380,6 +380,14 @@ bool VKDevice::Create() { | |||||||
| 
 | 
 | ||||||
|     CollectTelemetryParameters(); |     CollectTelemetryParameters(); | ||||||
| 
 | 
 | ||||||
|  |     if (ext_extended_dynamic_state && driver_id == VK_DRIVER_ID_AMD_PROPRIETARY_KHR) { | ||||||
|  |         // AMD's proprietary driver supports VK_EXT_extended_dynamic_state but the <stride> field
 | ||||||
|  |         // seems to be bugged. Blacklisting it for now.
 | ||||||
|  |         LOG_WARNING(Render_Vulkan, | ||||||
|  |                     "Blacklisting AMD proprietary from VK_EXT_extended_dynamic_state"); | ||||||
|  |         ext_extended_dynamic_state = false; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     graphics_queue = logical.GetQueue(graphics_family); |     graphics_queue = logical.GetQueue(graphics_family); | ||||||
|     present_queue = logical.GetQueue(present_family); |     present_queue = logical.GetQueue(present_family); | ||||||
| 
 | 
 | ||||||
| @ -691,12 +699,7 @@ std::vector<const char*> VKDevice::LoadExtensions() { | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     if (has_ext_extended_dynamic_state && driver_id == VK_DRIVER_ID_AMD_PROPRIETARY) { |     if (has_ext_extended_dynamic_state) { | ||||||
|         // AMD's proprietary driver supports VK_EXT_extended_dynamic_state but the <stride> field
 |  | ||||||
|         // seems to be bugged. Blacklisting it for now.
 |  | ||||||
|         LOG_WARNING(Render_Vulkan, |  | ||||||
|                     "Blacklisting AMD proprietary from VK_EXT_extended_dynamic_state"); |  | ||||||
|     } else if (has_ext_extended_dynamic_state) { |  | ||||||
|         VkPhysicalDeviceExtendedDynamicStateFeaturesEXT dynamic_state; |         VkPhysicalDeviceExtendedDynamicStateFeaturesEXT dynamic_state; | ||||||
|         dynamic_state.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT; |         dynamic_state.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT; | ||||||
|         dynamic_state.pNext = nullptr; |         dynamic_state.pNext = nullptr; | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 ReinUsesLisp
						ReinUsesLisp