Commit 4da3150
Add gpu compressed decoders (#12237) 195d4fcb25
* feat(renderer): GPU compressed texture support (BC7 / ASTC / ETC2)
- Software decoders for BC, ASTC, ETC2 in the decoders library.
- KTX2 reader extended to parse BC7, ASTC LDR (all footprints), ETC2 RGBA8.
- Ktx2HwSupport + per-backend cap flags; DecodeKtx2 falls back to SW
decode + tight RGBA mip chain when HW lacks the format.
- Native compressed upload in Vulkan, GL, Metal, WebGPU
(D3D11/D3D12 already supported BC7); per-mip uploads, no auto-mipgen
for compressed.
- Texture compressor premultiplies alpha before BC7 encode so output
matches the runtime PNG path.
- Android CMakeLists exposes decoders include directory.
* Android break
* fix(android): always expose decoders/include for renderer sources
* fix(decoders): include <cstdio> for stderr in texture_decoder.cpp
* Clang format
* Update premake5_pls_renderer.lua
* Update render_context_gl_impl.cpp
* Update render_context_vulkan_impl.cpp
* Fix null renderer
* Update decode_ktx2.hpp
* Update astc_footprints.hpp
* Copyright
* Update texture_decoder.cpp
* Comments
* Comments
* Update to ETC
* Update decode_bc_texture.cpp
* Update decode_bc_texture.cpp
* More comments
* Comments
* Bug fix on block sizes
* Clang format
* Fix ASTC
* Fix android
* Update UE and Other platform
* Update render_context_vulkan_impl.cpp
* Josh Comments
Co-authored-by: John White <aliasbinman@gmail.com>1 parent 0ec7f12 commit 4da3150
5 files changed
Lines changed: 14 additions & 5 deletions
File tree
- kotlin/src/main/cpp
- include/models
- src/helpers
- submodules
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
144 | 144 | | |
145 | 145 | | |
146 | 146 | | |
147 | | - | |
| 147 | + | |
| 148 | + | |
148 | 149 | | |
149 | 150 | | |
150 | 151 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
214 | 214 | | |
215 | 215 | | |
216 | 216 | | |
217 | | - | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
218 | 222 | | |
219 | 223 | | |
220 | 224 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
181 | 181 | | |
182 | 182 | | |
183 | 183 | | |
184 | | - | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
185 | 189 | | |
186 | 190 | | |
187 | 191 | | |
| |||
Submodule rive-runtime updated 33 files
- .rive_head+1-1
- decoders/include/rive/decoders/astc_footprints.hpp+61
- decoders/include/rive/decoders/texture_decoder.hpp+36
- decoders/premake5_v2.lua+115
- decoders/src/decode_astc_texture.cpp+83
- decoders/src/decode_bc_texture.cpp+99
- decoders/src/decode_etc_texture.cpp+118
- decoders/src/decode_ktx2.cpp+169-30
- decoders/src/texture_decoder.cpp+91
- include/rive/decoders/decode_ktx2.hpp+35-4
- renderer/include/rive/renderer/d3d11/render_context_d3d_impl.hpp+5-1
- renderer/include/rive/renderer/d3d12/render_context_d3d12_impl.hpp+5-1
- renderer/include/rive/renderer/gl/gles3.hpp+19
- renderer/include/rive/renderer/gl/render_context_gl_impl.hpp+5-1
- renderer/include/rive/renderer/metal/render_context_metal_impl.h+5-1
- renderer/include/rive/renderer/render_context_impl.hpp+15-1
- renderer/include/rive/renderer/vulkan/render_context_vulkan_impl.hpp+5-1
- renderer/include/rive/renderer/vulkan/vkutil.hpp+13
- renderer/include/rive/renderer/webgpu/render_context_webgpu_impl.hpp+5-1
- renderer/premake5_pls_renderer.lua+26-1
- renderer/src/d3d11/render_context_d3d_impl.cpp+50-22
- renderer/src/d3d12/render_context_d3d12_impl.cpp+40-23
- renderer/src/gl/render_context_gl_impl.cpp+106-24
- renderer/src/metal/render_context_metal_impl.mm+92-16
- renderer/src/ore/gl/ore_context_gl.cpp-7
- renderer/src/ore/gl/ore_texture_gl.cpp-7
- renderer/src/render_context.cpp+21-3
- renderer/src/vulkan/render_context_vulkan_impl.cpp+106-14
- renderer/src/vulkan/vkutil.cpp+55-22
- renderer/src/webgpu/render_context_webgpu_impl.cpp+79-16
- tests/common/render_context_null.cpp+5-1
- tests/common/render_context_null.hpp+5-1
- tests/unit_tests/runtime/decode_ktx2_test.cpp+3-3
0 commit comments