diff options
| -rw-r--r-- | src/video_core/vulkan_common/vulkan_device.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp index 7b2ca8046..58d0c6a93 100644 --- a/src/video_core/vulkan_common/vulkan_device.cpp +++ b/src/video_core/vulkan_common/vulkan_device.cpp | |||
| @@ -566,7 +566,7 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR | |||
| 566 | } | 566 | } |
| 567 | 567 | ||
| 568 | VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR workgroup_layout; | 568 | VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR workgroup_layout; |
| 569 | if (khr_workgroup_memory_explicit_layout) { | 569 | if (khr_workgroup_memory_explicit_layout && is_shader_int16_supported) { |
| 570 | workgroup_layout = { | 570 | workgroup_layout = { |
| 571 | .sType = | 571 | .sType = |
| 572 | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR, | 572 | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR, |
| @@ -577,6 +577,11 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR | |||
| 577 | .workgroupMemoryExplicitLayout16BitAccess = VK_TRUE, | 577 | .workgroupMemoryExplicitLayout16BitAccess = VK_TRUE, |
| 578 | }; | 578 | }; |
| 579 | SetNext(next, workgroup_layout); | 579 | SetNext(next, workgroup_layout); |
| 580 | } else if (khr_workgroup_memory_explicit_layout) { | ||
| 581 | // TODO(lat9nq): Find a proper fix for this | ||
| 582 | LOG_WARNING(Render_Vulkan, "Disabling VK_KHR_workgroup_memory_explicit_layout due to a " | ||
| 583 | "yuzu bug when host driver does not support 16-bit integers"); | ||
| 584 | khr_workgroup_memory_explicit_layout = false; | ||
| 580 | } | 585 | } |
| 581 | 586 | ||
| 582 | VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR executable_properties; | 587 | VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR executable_properties; |