aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/vulkan_common/vulkan_device.h
diff options
context:
space:
mode:
authorCamilleLaVey <camillelavey99@gmail.com>2026-08-05 09:24:35 +0200
committercrueter <crueter@eden-emu.dev>2026-08-05 09:24:35 +0200
commit5e1d5e82dcc98627c769b7ca32384ded16bc5e1d (patch)
tree33870dec16238459232e492552989d438c02b2f3 /src/video_core/vulkan_common/vulkan_device.h
parentba9130fbf974e7a529f5507e4cb530986c5d0859 (diff)
[vulkan] Re-adjusting ASTC resolve (#4250)
This is an adjustment made due to problems caused by my ASTC changes some pr's earlier; added sanity to decoded blocks, removes the inconditional storage view for ASTC formats (verified against MaxwellToVk logic), added support to VK_EXT_astc_decode_mode which will ensure a better way to resolve RGFA16/RGFA32 on tilers, simplified ASTC HDR decoding into LDR valid formats. This fixes some issues with SteamDeck, Fire Emblem: Engage washed colors and other problems related to ASTC. _Special Thanks_ 1.- Meowly The Smol (@Gidoly) 2.- @simply0001 for the actual idea on the redundant storage views on the transcoded ASTC path. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4250
Diffstat (limited to 'src/video_core/vulkan_common/vulkan_device.h')
-rw-r--r--src/video_core/vulkan_common/vulkan_device.h12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/video_core/vulkan_common/vulkan_device.h b/src/video_core/vulkan_common/vulkan_device.h
index c449f60324..0ba852f183 100644
--- a/src/video_core/vulkan_common/vulkan_device.h
+++ b/src/video_core/vulkan_common/vulkan_device.h
@@ -72,13 +72,12 @@ VK_DEFINE_HANDLE(VmaAllocator)
FEATURE(KHR, PipelineExecutableProperties, PIPELINE_EXECUTABLE_PROPERTIES, \
pipeline_executable_properties) \
FEATURE(KHR, WorkgroupMemoryExplicitLayout, WORKGROUP_MEMORY_EXPLICIT_LAYOUT, \
- workgroup_memory_explicit_layout) \
- FEATURE(EXT, TextureCompressionASTCHDR, TEXTURE_COMPRESSION_ASTC_HDR, \
- texture_compression_astc_hdr)
+ workgroup_memory_explicit_layout)
// Define miscellaneous extensions which may be used by the implementation here.
#define FOR_EACH_VK_EXTENSION(EXTENSION) \
+ EXTENSION(EXT, ASTC_DECODE_MODE, astc_decode_mode) \
EXTENSION(EXT, CONDITIONAL_RENDERING, conditional_rendering) \
EXTENSION(EXT, CONSERVATIVE_RASTERIZATION, conservative_rasterization) \
EXTENSION(EXT, DEPTH_RANGE_UNRESTRICTED, depth_range_unrestricted) \
@@ -369,8 +368,7 @@ FN_MAX_LIMIT_LIST
}
bool IsOptimalAstcSupported() const {
- return features.features.textureCompressionASTC_LDR &&
- features.texture_compression_astc_hdr.textureCompressionASTC_HDR;
+ return is_optimal_astc_supported;
}
/// Returns true if BCn is natively supported.
@@ -816,6 +814,10 @@ FN_MAX_LIMIT_LIST
return extensions.conditional_rendering;
}
+ bool IsExtAstcDecodeModeSupported() const {
+ return extensions.astc_decode_mode;
+ }
+
bool HasTimelineSemaphore() const;
/// Returns true if the device supports VK_KHR_synchronization2.