diff options
author | Zephyron <zephyron@citron-emu.org> | 2025-02-04 16:12:07 +1000 |
---|---|---|
committer | Zephyron <zephyron@citron-emu.org> | 2025-02-04 16:12:07 +1000 |
commit | 3857e6afe974c0751ff45ce168c531570d075f65 (patch) | |
tree | 10aad8f4b1b1774f2bd2e1d2213e4c8497dd609b /src | |
parent | 42f44a0c09ec68a17a6dd59579a8ac558bfd3684 (diff) |
vulkan: Add Samsung driver workarounds
Add workarounds for Samsung Xclipse GPUs:
- Disable extendedDynamicState3ColorBlendEquation as it is broken in Samsung
drivers, similar to AMD drivers
- Add Samsung's proprietary driver to the validated driver list for clock
boosting
- Fix log message to indicate both AMD and Samsung drivers have broken
color blend equation support
Remove stray logical OR operator from validated_driver condition.
Diffstat (limited to 'src')
-rw-r--r-- | src/video_core/vulkan_common/vulkan_device.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp index 491c0661b..d45ed8741 100644 --- a/src/video_core/vulkan_common/vulkan_device.cpp +++ b/src/video_core/vulkan_common/vulkan_device.cpp @@ -594,9 +594,10 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR dynamic_state3_enables = false; } } - if (extensions.extended_dynamic_state3 && is_amd_driver) { + if (extensions.extended_dynamic_state3 && (is_amd_driver || driver_id == VK_DRIVER_ID_SAMSUNG_PROPRIETARY)) { + // AMD and Samsung drivers have broken extendedDynamicState3ColorBlendEquation LOG_WARNING(Render_Vulkan, - "AMD drivers have broken extendedDynamicState3ColorBlendEquation"); + "AMD and Samsung drivers have broken extendedDynamicState3ColorBlendEquation"); features.extended_dynamic_state3.extendedDynamicState3ColorBlendEnable = false; features.extended_dynamic_state3.extendedDynamicState3ColorBlendEquation = false; dynamic_state3_blending = false; @@ -919,7 +920,8 @@ bool Device::ShouldBoostClocks() const { driver_id == VK_DRIVER_ID_MESA_RADV || driver_id == VK_DRIVER_ID_NVIDIA_PROPRIETARY || driver_id == VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS || driver_id == VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA || - driver_id == VK_DRIVER_ID_QUALCOMM_PROPRIETARY || driver_id == VK_DRIVER_ID_MESA_TURNIP; + driver_id == VK_DRIVER_ID_QUALCOMM_PROPRIETARY || driver_id == VK_DRIVER_ID_MESA_TURNIP || + driver_id == VK_DRIVER_ID_SAMSUNG_PROPRIETARY; const bool is_steam_deck = (vendor_id == 0x1002 && device_id == 0x163F) || (vendor_id == 0x1002 && device_id == 0x1435); |