diff options
| author | Zephyron <zephyron@citron-emu.org> | 2025-02-04 16:12:07 +1000 |
|---|---|---|
| committer | MrPurple666 <antoniosacramento666usa@gmail.com> | 2025-04-14 12:17:19 -0300 |
| commit | 389327d3f0f2da078820b3959e8ebdd0760b2f44 (patch) | |
| tree | e0e6bbfd2db947943fcebe135d41afb11437edd1 /src/video_core/vulkan_common/vulkan_device.cpp | |
| parent | cae9d9b9e89d1e4a9af3c3190a2592a4cea4371d (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/video_core/vulkan_common/vulkan_device.cpp')
| -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 5e2c5c645f..f2d554a65a 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); |
