diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_device.cpp | 43 |
1 files changed, 29 insertions, 14 deletions
diff --git a/src/video_core/renderer_vulkan/vk_device.cpp b/src/video_core/renderer_vulkan/vk_device.cpp index 0f6f68a49..7aafb5e59 100644 --- a/src/video_core/renderer_vulkan/vk_device.cpp +++ b/src/video_core/renderer_vulkan/vk_device.cpp | |||
| @@ -238,15 +238,20 @@ void VKDevice::ReportLoss() const { | |||
| 238 | bool VKDevice::IsOptimalAstcSupported(const vk::PhysicalDeviceFeatures& features, | 238 | bool VKDevice::IsOptimalAstcSupported(const vk::PhysicalDeviceFeatures& features, |
| 239 | const vk::DispatchLoaderDynamic& dldi) const { | 239 | const vk::DispatchLoaderDynamic& dldi) const { |
| 240 | static constexpr std::array astc_formats = { | 240 | static constexpr std::array astc_formats = { |
| 241 | vk::Format::eAstc4x4SrgbBlock, vk::Format::eAstc8x8SrgbBlock, | 241 | vk::Format::eAstc4x4UnormBlock, vk::Format::eAstc4x4SrgbBlock, |
| 242 | vk::Format::eAstc8x5SrgbBlock, vk::Format::eAstc5x4SrgbBlock, | 242 | vk::Format::eAstc5x4UnormBlock, vk::Format::eAstc5x4SrgbBlock, |
| 243 | vk::Format::eAstc5x5UnormBlock, vk::Format::eAstc5x5SrgbBlock, | 243 | vk::Format::eAstc5x5UnormBlock, vk::Format::eAstc5x5SrgbBlock, |
| 244 | vk::Format::eAstc10x8UnormBlock, vk::Format::eAstc10x8SrgbBlock, | 244 | vk::Format::eAstc6x5UnormBlock, vk::Format::eAstc6x5SrgbBlock, |
| 245 | vk::Format::eAstc6x6UnormBlock, vk::Format::eAstc6x6SrgbBlock, | 245 | vk::Format::eAstc6x6UnormBlock, vk::Format::eAstc6x6SrgbBlock, |
| 246 | vk::Format::eAstc10x10UnormBlock, vk::Format::eAstc10x10SrgbBlock, | 246 | vk::Format::eAstc8x5UnormBlock, vk::Format::eAstc8x5SrgbBlock, |
| 247 | vk::Format::eAstc12x12UnormBlock, vk::Format::eAstc12x12SrgbBlock, | ||
| 248 | vk::Format::eAstc8x6UnormBlock, vk::Format::eAstc8x6SrgbBlock, | 247 | vk::Format::eAstc8x6UnormBlock, vk::Format::eAstc8x6SrgbBlock, |
| 249 | vk::Format::eAstc6x5UnormBlock, vk::Format::eAstc6x5SrgbBlock}; | 248 | vk::Format::eAstc8x8UnormBlock, vk::Format::eAstc8x8SrgbBlock, |
| 249 | vk::Format::eAstc10x5UnormBlock, vk::Format::eAstc10x5SrgbBlock, | ||
| 250 | vk::Format::eAstc10x6UnormBlock, vk::Format::eAstc10x6SrgbBlock, | ||
| 251 | vk::Format::eAstc10x8UnormBlock, vk::Format::eAstc10x8SrgbBlock, | ||
| 252 | vk::Format::eAstc10x10UnormBlock, vk::Format::eAstc10x10SrgbBlock, | ||
| 253 | vk::Format::eAstc12x10UnormBlock, vk::Format::eAstc12x10SrgbBlock, | ||
| 254 | vk::Format::eAstc12x12UnormBlock, vk::Format::eAstc12x12SrgbBlock}; | ||
| 250 | if (!features.textureCompressionASTC_LDR) { | 255 | if (!features.textureCompressionASTC_LDR) { |
| 251 | return false; | 256 | return false; |
| 252 | } | 257 | } |
| @@ -570,24 +575,34 @@ std::unordered_map<vk::Format, vk::FormatProperties> VKDevice::GetFormatProperti | |||
| 570 | vk::Format::eBc2SrgbBlock, | 575 | vk::Format::eBc2SrgbBlock, |
| 571 | vk::Format::eBc3SrgbBlock, | 576 | vk::Format::eBc3SrgbBlock, |
| 572 | vk::Format::eBc7SrgbBlock, | 577 | vk::Format::eBc7SrgbBlock, |
| 578 | vk::Format::eAstc4x4UnormBlock, | ||
| 573 | vk::Format::eAstc4x4SrgbBlock, | 579 | vk::Format::eAstc4x4SrgbBlock, |
| 574 | vk::Format::eAstc8x8SrgbBlock, | 580 | vk::Format::eAstc5x4UnormBlock, |
| 575 | vk::Format::eAstc8x5SrgbBlock, | ||
| 576 | vk::Format::eAstc5x4SrgbBlock, | 581 | vk::Format::eAstc5x4SrgbBlock, |
| 577 | vk::Format::eAstc5x5UnormBlock, | 582 | vk::Format::eAstc5x5UnormBlock, |
| 578 | vk::Format::eAstc5x5SrgbBlock, | 583 | vk::Format::eAstc5x5SrgbBlock, |
| 579 | vk::Format::eAstc10x8UnormBlock, | 584 | vk::Format::eAstc6x5UnormBlock, |
| 580 | vk::Format::eAstc10x8SrgbBlock, | 585 | vk::Format::eAstc6x5SrgbBlock, |
| 581 | vk::Format::eAstc6x6UnormBlock, | 586 | vk::Format::eAstc6x6UnormBlock, |
| 582 | vk::Format::eAstc6x6SrgbBlock, | 587 | vk::Format::eAstc6x6SrgbBlock, |
| 588 | vk::Format::eAstc8x5UnormBlock, | ||
| 589 | vk::Format::eAstc8x5SrgbBlock, | ||
| 590 | vk::Format::eAstc8x6UnormBlock, | ||
| 591 | vk::Format::eAstc8x6SrgbBlock, | ||
| 592 | vk::Format::eAstc8x8UnormBlock, | ||
| 593 | vk::Format::eAstc8x8SrgbBlock, | ||
| 594 | vk::Format::eAstc10x5UnormBlock, | ||
| 595 | vk::Format::eAstc10x5SrgbBlock, | ||
| 596 | vk::Format::eAstc10x6UnormBlock, | ||
| 597 | vk::Format::eAstc10x6SrgbBlock, | ||
| 598 | vk::Format::eAstc10x8UnormBlock, | ||
| 599 | vk::Format::eAstc10x8SrgbBlock, | ||
| 583 | vk::Format::eAstc10x10UnormBlock, | 600 | vk::Format::eAstc10x10UnormBlock, |
| 584 | vk::Format::eAstc10x10SrgbBlock, | 601 | vk::Format::eAstc10x10SrgbBlock, |
| 602 | vk::Format::eAstc12x10UnormBlock, | ||
| 603 | vk::Format::eAstc12x10SrgbBlock, | ||
| 585 | vk::Format::eAstc12x12UnormBlock, | 604 | vk::Format::eAstc12x12UnormBlock, |
| 586 | vk::Format::eAstc12x12SrgbBlock, | 605 | vk::Format::eAstc12x12SrgbBlock, |
| 587 | vk::Format::eAstc8x6UnormBlock, | ||
| 588 | vk::Format::eAstc8x6SrgbBlock, | ||
| 589 | vk::Format::eAstc6x5UnormBlock, | ||
| 590 | vk::Format::eAstc6x5SrgbBlock, | ||
| 591 | vk::Format::eE5B9G9R9UfloatPack32}; | 606 | vk::Format::eE5B9G9R9UfloatPack32}; |
| 592 | std::unordered_map<vk::Format, vk::FormatProperties> format_properties; | 607 | std::unordered_map<vk::Format, vk::FormatProperties> format_properties; |
| 593 | for (const auto format : formats) { | 608 | for (const auto format : formats) { |