diff options
| author | 2018-07-04 17:22:48 -0500 | |
|---|---|---|
| committer | 2018-07-07 09:17:48 -0500 | |
| commit | 4633dd9505e69fe03d6e1c704a53fa7a7d15b391 (patch) | |
| tree | 4571c9577674aadb70f2bb0fad90f18581751f13 /src/video_core/textures/decoders.cpp | |
| parent | Merge pull request #631 from lioncash/dynarmic (diff) | |
| download | yuzu-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.cpp | 3 |
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: |