diff options
| author | bunnei <bunneidev@gmail.com> | 2019-05-09 13:23:14 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-05-09 13:23:14 -0400 |
| commit | 50d2f8bd8181c9031e88f2fa2b7c7b3b5d4e7232 (patch) | |
| tree | bff14ff6953fc40d2a197c64a0f51ce5584e407c /src | |
| parent | dbf25d12b6e1138d0ded7e9928cdd9fe30fdabe5 (diff) | |
| parent | aebe67fac703fc71b9f5675b73d404b867b5a305 (diff) | |
Merge pull request #2442 from FernandoS27/astc-fix
Fix Layered ASTC Textures
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/textures/astc.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/video_core/textures/astc.cpp b/src/video_core/textures/astc.cpp index b508d64e92..eafb6b73a8 100644 --- a/src/video_core/textures/astc.cpp +++ b/src/video_core/textures/astc.cpp @@ -1616,6 +1616,7 @@ namespace Tegra::Texture::ASTC { std::vector<uint8_t> Decompress(const uint8_t* data, uint32_t width, uint32_t height, uint32_t depth, uint32_t block_width, uint32_t block_height) { uint32_t blockIdx = 0; + std::size_t depth_offset = 0; std::vector<uint8_t> outData(height * width * depth * 4); for (uint32_t k = 0; k < depth; k++) { for (uint32_t j = 0; j < height; j += block_height) { @@ -1630,7 +1631,7 @@ std::vector<uint8_t> Decompress(const uint8_t* data, uint32_t width, uint32_t he uint32_t decompWidth = std::min(block_width, width - i); uint32_t decompHeight = std::min(block_height, height - j); - uint8_t* outRow = outData.data() + (j * width + i) * 4; + uint8_t* outRow = depth_offset + outData.data() + (j * width + i) * 4; for (uint32_t jj = 0; jj < decompHeight; jj++) { memcpy(outRow + jj * width * 4, uncompData + jj * block_width, decompWidth * 4); } @@ -1638,6 +1639,7 @@ std::vector<uint8_t> Decompress(const uint8_t* data, uint32_t width, uint32_t he blockIdx++; } } + depth_offset += height * width * 4; } return outData; |
