diff options
| author | Stenzek <stenzek@gmail.com> | 2016-12-09 22:23:07 +1000 |
|---|---|---|
| committer | Stenzek <stenzek@gmail.com> | 2017-04-01 12:32:57 +1000 |
| commit | 739aced97c954397a1d2a50fd75143a45c3759c5 (patch) | |
| tree | 06d185463328a27e84f9ec6058611849b1b66d43 /Source/Core/VideoBackends/Vulkan/TextureCache.cpp | |
| parent | 5fbc63fbcf15e385f5ff9c4cde16e8c4bdb816c2 (diff) | |
Vulkan: Implement compute-shader based GPU texture decoding
Diffstat (limited to 'Source/Core/VideoBackends/Vulkan/TextureCache.cpp')
| -rw-r--r-- | Source/Core/VideoBackends/Vulkan/TextureCache.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/Source/Core/VideoBackends/Vulkan/TextureCache.cpp b/Source/Core/VideoBackends/Vulkan/TextureCache.cpp index 5a73106476..b951b78aa2 100644 --- a/Source/Core/VideoBackends/Vulkan/TextureCache.cpp +++ b/Source/Core/VideoBackends/Vulkan/TextureCache.cpp @@ -138,6 +138,21 @@ void TextureCache::CopyRectangleFromTexture(TCacheEntry* dst_texture, ScaleTextureRectangle(dst_texture, dst_rect, src_texture, src_rect); } +bool TextureCache::SupportsGPUTextureDecode(TextureFormat format, TlutFormat palette_format) +{ + return m_texture_converter->SupportsTextureDecoding(format, palette_format); +} + +void TextureCache::DecodeTextureOnGPU(TCacheEntryBase* entry, u32 dst_level, const u8* data, + size_t data_size, TextureFormat format, u32 width, u32 height, + u32 aligned_width, u32 aligned_height, u32 row_stride, + const u8* palette, TlutFormat palette_format) +{ + m_texture_converter->DecodeTexture(static_cast<TCacheEntry*>(entry), dst_level, data, data_size, + format, width, height, aligned_width, aligned_height, + row_stride, palette, palette_format); +} + void TextureCache::CopyTextureRectangle(TCacheEntry* dst_texture, const MathUtil::Rectangle<int>& dst_rect, Texture2D* src_texture, |
