mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-11-04 00:49:02 -06:00 
			
		
		
		
	Merge pull request #7006 from FernandoS27/a-motherfucking-driver
Vulkan: Blacklist Int8Float16 Extension on AMD on driver 21.9.1
This commit is contained in:
		@@ -243,6 +243,7 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
 | 
			
		||||
    SetupFamilies(surface);
 | 
			
		||||
    SetupFeatures();
 | 
			
		||||
    SetupProperties();
 | 
			
		||||
    CollectTelemetryParameters();
 | 
			
		||||
 | 
			
		||||
    const auto queue_cis = GetDeviceQueueCreateInfos();
 | 
			
		||||
    const std::vector extensions = LoadExtensions(surface != nullptr);
 | 
			
		||||
@@ -368,6 +369,18 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
 | 
			
		||||
    };
 | 
			
		||||
    SetNext(next, demote);
 | 
			
		||||
 | 
			
		||||
    if (driver_id == VK_DRIVER_ID_AMD_PROPRIETARY || driver_id == VK_DRIVER_ID_AMD_OPEN_SOURCE) {
 | 
			
		||||
        const u32 version = properties.driverVersion;
 | 
			
		||||
        // Broken in this driver
 | 
			
		||||
        if (version > VK_MAKE_API_VERSION(0, 2, 0, 193)) {
 | 
			
		||||
            LOG_WARNING(Render_Vulkan, "AMD proprietary driver versions newer than 21.9.1 "
 | 
			
		||||
                                       "(windows) / 0.2.0.194 (amdvlk) have "
 | 
			
		||||
                                       "broken VkPhysicalDeviceFloat16Int8FeaturesKHR");
 | 
			
		||||
            is_int8_supported = false;
 | 
			
		||||
            is_float16_supported = false;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (is_int8_supported || is_float16_supported) {
 | 
			
		||||
        VkPhysicalDeviceFloat16Int8FeaturesKHR float16_int8{
 | 
			
		||||
            .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR,
 | 
			
		||||
@@ -560,7 +573,6 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
 | 
			
		||||
    logical = vk::Device::Create(physical, queue_cis, extensions, first_next, dld);
 | 
			
		||||
 | 
			
		||||
    CollectPhysicalMemoryInfo();
 | 
			
		||||
    CollectTelemetryParameters();
 | 
			
		||||
    CollectToolingInfo();
 | 
			
		||||
 | 
			
		||||
    if (driver_id == VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user