From 655e8449d0194e8482ec25e914ce7dd7fccb4f97 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Wed, 29 Jan 2020 14:40:17 +0100 Subject: [PATCH] radv/llvm: enable 16-bit storage features on GFX6-GFX7 Should allow to play Doom Eternal on GFX6-GFX7 because the driver now supports storageBuffer16BitAccess. It's now supported and all CTS tests pass. Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/857 Cc: 20.0 Signed-off-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen Tested-by: Marge Bot Part-of: --- src/amd/vulkan/radv_device.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c index 7bbc8be9b3f..f45d86bd3f7 100644 --- a/src/amd/vulkan/radv_device.c +++ b/src/amd/vulkan/radv_device.c @@ -1001,11 +1001,10 @@ void radv_GetPhysicalDeviceFeatures2( case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES: { VkPhysicalDevice16BitStorageFeatures *features = (VkPhysicalDevice16BitStorageFeatures*)ext; - bool enabled = pdevice->rad_info.chip_class >= GFX8 && !pdevice->use_aco; - features->storageBuffer16BitAccess = enabled; - features->uniformAndStorageBuffer16BitAccess = enabled; - features->storagePushConstant16 = enabled; - features->storageInputOutput16 = enabled && LLVM_VERSION_MAJOR >= 9; + features->storageBuffer16BitAccess = !pdevice->use_aco; + features->uniformAndStorageBuffer16BitAccess = !pdevice->use_aco; + features->storagePushConstant16 = !pdevice->use_aco; + features->storageInputOutput16 = pdevice->rad_info.chip_class >= GFX8 && !pdevice->use_aco && LLVM_VERSION_MAJOR >= 9; break; } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES: { @@ -1220,9 +1219,9 @@ void radv_GetPhysicalDeviceFeatures2( case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: { VkPhysicalDeviceVulkan11Features *features = (VkPhysicalDeviceVulkan11Features *)ext; - features->storageBuffer16BitAccess = pdevice->rad_info.chip_class >= GFX8 && !pdevice->use_aco; - features->uniformAndStorageBuffer16BitAccess = pdevice->rad_info.chip_class >= GFX8 && !pdevice->use_aco; - features->storagePushConstant16 = pdevice->rad_info.chip_class >= GFX8 && !pdevice->use_aco; + features->storageBuffer16BitAccess = !pdevice->use_aco; + features->uniformAndStorageBuffer16BitAccess = !pdevice->use_aco; + features->storagePushConstant16 = !pdevice->use_aco; features->storageInputOutput16 = pdevice->rad_info.chip_class >= GFX8 && !pdevice->use_aco && LLVM_VERSION_MAJOR >= 9; features->multiview = true; features->multiviewGeometryShader = true; -- 2.30.2