From 8fa7b068b8e4baccaef12366317d5f5b3f420ec9 Mon Sep 17 00:00:00 2001 From: CamilleLaVey Date: Thu, 27 Nov 2025 22:10:10 -0400 Subject: [PATCH] [vk, qcom] Returned subgroups functions to QCOM --- .../vulkan_common/vulkan_device.cpp | 20 +------------------ src/video_core/vulkan_common/vulkan_device.h | 1 - 2 files changed, 1 insertion(+), 20 deletions(-) diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp index 035ec4838d..f8db023331 100644 --- a/src/video_core/vulkan_common/vulkan_device.cpp +++ b/src/video_core/vulkan_common/vulkan_device.cpp @@ -500,9 +500,6 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR CollectToolingInfo(); if (is_qualcomm) { - disable_graphics_subgroups = true; - LOG_WARNING(Render_Vulkan, - "Qualcomm drivers force subgroup emulation; disabling graphics warp intrinsics"); // Qualcomm Adreno GPUs doesn't handle scaled vertex attributes; keep emulation enabled must_emulate_scaled_formats = true; LOG_WARNING(Render_Vulkan, @@ -1556,23 +1553,8 @@ bool Device::SupportsSubgroupStage(VkShaderStageFlags stage_mask) const { if (stage_mask == 0) { return true; } - if (disable_graphics_subgroups && (stage_mask & GraphicsStageMask) != 0) { - return false; - } const VkShaderStageFlags supported = properties.subgroup_properties.supportedStages; - if ((supported & stage_mask) == stage_mask) { - return true; - } - if ((stage_mask & GraphicsStageMask) != 0 && - ((supported & VK_SHADER_STAGE_ALL_GRAPHICS) == VK_SHADER_STAGE_ALL_GRAPHICS || - (supported & VK_SHADER_STAGE_ALL) == VK_SHADER_STAGE_ALL)) { - return true; - } - if ((stage_mask & VK_SHADER_STAGE_COMPUTE_BIT) != 0 && - (supported & VK_SHADER_STAGE_ALL) == VK_SHADER_STAGE_ALL) { - return true; - } - return false; + return (supported & stage_mask) == stage_mask; } bool Device::IsSubgroupFeatureSupported(VkSubgroupFeatureFlagBits feature, diff --git a/src/video_core/vulkan_common/vulkan_device.h b/src/video_core/vulkan_common/vulkan_device.h index 084232f782..f1674e32a1 100644 --- a/src/video_core/vulkan_common/vulkan_device.h +++ b/src/video_core/vulkan_common/vulkan_device.h @@ -1100,7 +1100,6 @@ private: bool dynamic_state3_alpha_to_coverage{}; bool dynamic_state3_alpha_to_one{}; bool supports_conditional_barriers{}; ///< Allows barriers in conditional control flow. - bool disable_graphics_subgroups{}; ///< Forces subgroup emulation on graphics stages. size_t sampler_heap_budget{}; ///< Sampler budget for buggy drivers (0 = unlimited). VkDeviceSize uniform_buffer_alignment_minimum{}; ///< Minimum enforced UBO alignment. VkDeviceSize storage_buffer_alignment_minimum{}; ///< Minimum enforced SSBO alignment.