diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp index 2c1fe7ccaa..a68fce040f 100644 --- a/src/video_core/vulkan_common/vulkan_device.cpp +++ b/src/video_core/vulkan_common/vulkan_device.cpp @@ -527,6 +527,10 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR RemoveExtensionFeature(extensions.workgroup_memory_explicit_layout, features.workgroup_memory_explicit_layout, VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME); + LOG_WARNING(Render_Vulkan, "Qualcomm drivers have broken conservative rasterization."); + RemoveExtensionFeature(extensions.conservative_rasterization, + features.conservative_rasterization, + VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME); #if defined(__ANDROID__) && defined(ARCHITECTURE_arm64) // BCn patching only safe on Android 9+ (API 28+). Older versions crash on driver load. @@ -1245,7 +1249,7 @@ void Device::RemoveUnsuitableExtensions() { extensions.line_rasterization && features.line_rasterization.rectangularLines; const bool supports_conservative_raster_mode = features.extended_dynamic_state3.extendedDynamicState3ConservativeRasterizationMode && - ENABLE_CONSERVATIVE_RASTER && extensions.conservative_rasterization; + extensions.conservative_rasterization; const bool supports_line_stipple_enable = features.extended_dynamic_state3.extendedDynamicState3LineStippleEnable && extensions.line_rasterization && features.line_rasterization.stippledRectangularLines; diff --git a/src/video_core/vulkan_common/vulkan_device.h b/src/video_core/vulkan_common/vulkan_device.h index d2d9838ca9..c449f60324 100644 --- a/src/video_core/vulkan_common/vulkan_device.h +++ b/src/video_core/vulkan_common/vulkan_device.h @@ -776,11 +776,9 @@ FN_MAX_LIMIT_LIST return extensions.shader_demote_to_helper_invocation; } - static constexpr bool ENABLE_CONSERVATIVE_RASTER = false; - /// Returns true if the device supports VK_EXT_conservative_rasterization. bool IsExtConservativeRasterizationSupported() const { - return ENABLE_CONSERVATIVE_RASTER && extensions.conservative_rasterization; + return extensions.conservative_rasterization; } /// Returns true if the device supports VK_EXT_provoking_vertex.