Просмотр исходного кода

vk_device: Add missing ASTC queries

ReinUsesLisp 6 лет назад
Родитель
Сommit
2f0da10dc3
1 измененных файлов с 29 добавлено и 14 удалено
  1. 29 14
      src/video_core/renderer_vulkan/vk_device.cpp

+ 29 - 14
src/video_core/renderer_vulkan/vk_device.cpp

@@ -238,15 +238,20 @@ void VKDevice::ReportLoss() const {
 bool VKDevice::IsOptimalAstcSupported(const vk::PhysicalDeviceFeatures& features,
                                       const vk::DispatchLoaderDynamic& dldi) const {
     static constexpr std::array astc_formats = {
-        vk::Format::eAstc4x4SrgbBlock,    vk::Format::eAstc8x8SrgbBlock,
-        vk::Format::eAstc8x5SrgbBlock,    vk::Format::eAstc5x4SrgbBlock,
+        vk::Format::eAstc4x4UnormBlock,   vk::Format::eAstc4x4SrgbBlock,
+        vk::Format::eAstc5x4UnormBlock,   vk::Format::eAstc5x4SrgbBlock,
         vk::Format::eAstc5x5UnormBlock,   vk::Format::eAstc5x5SrgbBlock,
-        vk::Format::eAstc10x8UnormBlock,  vk::Format::eAstc10x8SrgbBlock,
+        vk::Format::eAstc6x5UnormBlock,   vk::Format::eAstc6x5SrgbBlock,
         vk::Format::eAstc6x6UnormBlock,   vk::Format::eAstc6x6SrgbBlock,
-        vk::Format::eAstc10x10UnormBlock, vk::Format::eAstc10x10SrgbBlock,
-        vk::Format::eAstc12x12UnormBlock, vk::Format::eAstc12x12SrgbBlock,
+        vk::Format::eAstc8x5UnormBlock,   vk::Format::eAstc8x5SrgbBlock,
         vk::Format::eAstc8x6UnormBlock,   vk::Format::eAstc8x6SrgbBlock,
-        vk::Format::eAstc6x5UnormBlock,   vk::Format::eAstc6x5SrgbBlock};
+        vk::Format::eAstc8x8UnormBlock,   vk::Format::eAstc8x8SrgbBlock,
+        vk::Format::eAstc10x5UnormBlock,  vk::Format::eAstc10x5SrgbBlock,
+        vk::Format::eAstc10x6UnormBlock,  vk::Format::eAstc10x6SrgbBlock,
+        vk::Format::eAstc10x8UnormBlock,  vk::Format::eAstc10x8SrgbBlock,
+        vk::Format::eAstc10x10UnormBlock, vk::Format::eAstc10x10SrgbBlock,
+        vk::Format::eAstc12x10UnormBlock, vk::Format::eAstc12x10SrgbBlock,
+        vk::Format::eAstc12x12UnormBlock, vk::Format::eAstc12x12SrgbBlock};
     if (!features.textureCompressionASTC_LDR) {
         return false;
     }
@@ -570,24 +575,34 @@ std::unordered_map<vk::Format, vk::FormatProperties> VKDevice::GetFormatProperti
                                         vk::Format::eBc2SrgbBlock,
                                         vk::Format::eBc3SrgbBlock,
                                         vk::Format::eBc7SrgbBlock,
+                                        vk::Format::eAstc4x4UnormBlock,
                                         vk::Format::eAstc4x4SrgbBlock,
-                                        vk::Format::eAstc8x8SrgbBlock,
-                                        vk::Format::eAstc8x5SrgbBlock,
+                                        vk::Format::eAstc5x4UnormBlock,
                                         vk::Format::eAstc5x4SrgbBlock,
                                         vk::Format::eAstc5x5UnormBlock,
                                         vk::Format::eAstc5x5SrgbBlock,
-                                        vk::Format::eAstc10x8UnormBlock,
-                                        vk::Format::eAstc10x8SrgbBlock,
+                                        vk::Format::eAstc6x5UnormBlock,
+                                        vk::Format::eAstc6x5SrgbBlock,
                                         vk::Format::eAstc6x6UnormBlock,
                                         vk::Format::eAstc6x6SrgbBlock,
+                                        vk::Format::eAstc8x5UnormBlock,
+                                        vk::Format::eAstc8x5SrgbBlock,
+                                        vk::Format::eAstc8x6UnormBlock,
+                                        vk::Format::eAstc8x6SrgbBlock,
+                                        vk::Format::eAstc8x8UnormBlock,
+                                        vk::Format::eAstc8x8SrgbBlock,
+                                        vk::Format::eAstc10x5UnormBlock,
+                                        vk::Format::eAstc10x5SrgbBlock,
+                                        vk::Format::eAstc10x6UnormBlock,
+                                        vk::Format::eAstc10x6SrgbBlock,
+                                        vk::Format::eAstc10x8UnormBlock,
+                                        vk::Format::eAstc10x8SrgbBlock,
                                         vk::Format::eAstc10x10UnormBlock,
                                         vk::Format::eAstc10x10SrgbBlock,
+                                        vk::Format::eAstc12x10UnormBlock,
+                                        vk::Format::eAstc12x10SrgbBlock,
                                         vk::Format::eAstc12x12UnormBlock,
                                         vk::Format::eAstc12x12SrgbBlock,
-                                        vk::Format::eAstc8x6UnormBlock,
-                                        vk::Format::eAstc8x6SrgbBlock,
-                                        vk::Format::eAstc6x5UnormBlock,
-                                        vk::Format::eAstc6x5SrgbBlock,
                                         vk::Format::eE5B9G9R9UfloatPack32};
     std::unordered_map<vk::Format, vk::FormatProperties> format_properties;
     for (const auto format : formats) {