radv/aco: enable VK_KHR_memory_model
[mesa.git] / src / amd / vulkan / radv_device.c
index c52fbad8f68c3d744d9500c704f41f014b6a0910..e572891d731c5770f9ba20bddd267cf08af46831 100644 (file)
@@ -1041,8 +1041,8 @@ radv_get_physical_device_features_1_2(struct radv_physical_device *pdevice,
        f->bufferDeviceAddress = true;
        f->bufferDeviceAddressCaptureReplay = false;
        f->bufferDeviceAddressMultiDevice = false;
-       f->vulkanMemoryModel = false;
-       f->vulkanMemoryModelDeviceScope = false;
+       f->vulkanMemoryModel = !pdevice->use_llvm;
+       f->vulkanMemoryModelDeviceScope = !pdevice->use_llvm;
        f->vulkanMemoryModelAvailabilityVisibilityChains = false;
        f->shaderOutputViewportIndex = true;
        f->shaderOutputLayer = true;
@@ -1366,6 +1366,14 @@ void radv_GetPhysicalDeviceFeatures2(
                        features-> pipelineCreationCacheControl = true;
                        break;
                }
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR: {
+                       VkPhysicalDeviceVulkanMemoryModelFeaturesKHR *features =
+                               (VkPhysicalDeviceVulkanMemoryModelFeaturesKHR *)ext;
+                       CORE_FEATURE(1, 2, vulkanMemoryModel);
+                       CORE_FEATURE(1, 2, vulkanMemoryModelDeviceScope);
+                       CORE_FEATURE(1, 2, vulkanMemoryModelAvailabilityVisibilityChains);
+                       break;
+               }
                case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: {
                        VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *features =
                                (VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *) ext;