From 3b58f2abba10438b619c55fc8c3f37ddc8a812ba Mon Sep 17 00:00:00 2001 From: PavelBARABANOV Date: Sun, 1 Mar 2026 18:20:59 +0300 Subject: [PATCH] [vk] Disable float16 math on all AMD drivers as 2026+ versions are broken --- src/video_core/vulkan_common/vulkan_device.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp index 3d98f2cbf7..2f2d88e05e 100644 --- a/src/video_core/vulkan_common/vulkan_device.cpp +++ b/src/video_core/vulkan_common/vulkan_device.cpp @@ -594,12 +594,20 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR if (is_amd_driver) { // AMD drivers need a higher amount of Sets per Pool in certain circumstances like in XC2. sets_per_pool = 96; + // Disable VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT on AMD GCN4 and lower as it is broken. if (!features.shader_float16_int8.shaderFloat16) { LOG_WARNING(Render_Vulkan, "AMD GCN4 and earlier have broken VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT"); has_broken_cube_compatibility = true; } + + // AMD drivers (2026+) have broken float16 math on DKCR + if (features.shader_float16_int8.shaderFloat16) { + LOG_WARNING(Render_Vulkan, + "AMD drivers (2026+) have broken float16 math"); + features.shader_float16_int8.shaderFloat16 = false; + } } if (is_qualcomm) {