summaryrefslogtreecommitdiff
path: root/src/video_core/textures/decoders.cpp
diff options
context:
space:
mode:
authorGravatar Subv2018-07-04 17:22:48 -0500
committerGravatar Subv2018-07-07 09:17:48 -0500
commit4633dd9505e69fe03d6e1c704a53fa7a7d15b391 (patch)
tree4571c9577674aadb70f2bb0fad90f18581751f13 /src/video_core/textures/decoders.cpp
parentMerge pull request #631 from lioncash/dynarmic (diff)
downloadyuzu-4633dd9505e69fe03d6e1c704a53fa7a7d15b391.tar.gz
yuzu-4633dd9505e69fe03d6e1c704a53fa7a7d15b391.tar.xz
yuzu-4633dd9505e69fe03d6e1c704a53fa7a7d15b391.zip
GPU: Implemented the BC7U texture format.
Note: Our version of glad exports GL_COMPRESSED_RGBA_BPTC_UNORM as GL_COMPRESSED_RGBA_BPTC_UNORM_ARB, maybe it's time we update it.
Diffstat (limited to 'src/video_core/textures/decoders.cpp')
-rw-r--r--src/video_core/textures/decoders.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/video_core/textures/decoders.cpp b/src/video_core/textures/decoders.cpp
index d5ab4e4f9..b3937b2fe 100644
--- a/src/video_core/textures/decoders.cpp
+++ b/src/video_core/textures/decoders.cpp
@@ -52,6 +52,7 @@ u32 BytesPerPixel(TextureFormat format) {
52 return 8; 52 return 8;
53 case TextureFormat::DXT23: 53 case TextureFormat::DXT23:
54 case TextureFormat::DXT45: 54 case TextureFormat::DXT45:
55 case TextureFormat::BC7U:
55 // In this case a 'pixel' actually refers to a 4x4 tile. 56 // In this case a 'pixel' actually refers to a 4x4 tile.
56 return 16; 57 return 16;
57 case TextureFormat::ASTC_2D_4X4: 58 case TextureFormat::ASTC_2D_4X4:
@@ -98,6 +99,7 @@ std::vector<u8> UnswizzleTexture(VAddr address, TextureFormat format, u32 width,
98 case TextureFormat::DXT23: 99 case TextureFormat::DXT23:
99 case TextureFormat::DXT45: 100 case TextureFormat::DXT45:
100 case TextureFormat::DXN1: 101 case TextureFormat::DXN1:
102 case TextureFormat::BC7U:
101 // In the DXT and DXN formats, each 4x4 tile is swizzled instead of just individual pixel 103 // In the DXT and DXN formats, each 4x4 tile is swizzled instead of just individual pixel
102 // values. 104 // values.
103 CopySwizzledData(width / 4, height / 4, bytes_per_pixel, bytes_per_pixel, data, 105 CopySwizzledData(width / 4, height / 4, bytes_per_pixel, bytes_per_pixel, data,
@@ -155,6 +157,7 @@ std::vector<u8> DecodeTexture(const std::vector<u8>& texture_data, TextureFormat
155 case TextureFormat::DXT23: 157 case TextureFormat::DXT23:
156 case TextureFormat::DXT45: 158 case TextureFormat::DXT45:
157 case TextureFormat::DXN1: 159 case TextureFormat::DXN1:
160 case TextureFormat::BC7U:
158 case TextureFormat::ASTC_2D_4X4: 161 case TextureFormat::ASTC_2D_4X4:
159 case TextureFormat::A8R8G8B8: 162 case TextureFormat::A8R8G8B8:
160 case TextureFormat::A2B10G10R10: 163 case TextureFormat::A2B10G10R10: