Comments (4)
Why do you need to decompress? Surely the point is to select formats the GPU can access natively in hardware.
Q1: Is there any possibility to merge contexts with different block sizes and HDR/LDR settings into a big one?
HDR is a superset of LDR, so you can use a HDR context to decompress LDR images already.
Merging block sizes won't help - you just make the context linearly bigger.
Q2: Starting from #246, are there any opportunities to further reduce memory overhead?
Probably. PR's welcome ...
Q3: Can ASTCENC_BLOCK_MAX_TEXELS be changed to (c++) template?
No - it gets used by the preprocessor.
from astc-encoder.
Templates can be helpful in creating a 5x5 context with a smaller memory footprint
Using templated structures would change the size of the structs used in the context, so you'd need to build N templated versions of the codec, one per block size, so the code size would jump for the N combinations.
The bulk of the memory comes from the decimation tables, and then the partition tables. If you know which decimation modes and partitionings your textures actually use, the fastest way to reduce memory footprint is to filter out the creation of the entries you don't need at context creation time.
from astc-encoder.
Why do you need to decompress?
Not all GPUs implementing ASTC support the HDR profile.
Do you mean I should choose the format supported by the GPU rather than the specific astc block size?
Since the data is a Texture3DArray with dimensions of 5x5x5, there is no spatial continuity between them. So some formats may not be quite suitable, such as the 4x4 block size of BCn/ETC2. Therefore, I have chosen the astc 5x5 and 5x5x5 with a CPU decompressor.
HDR is a superset of LDR, so you can use a HDR context to decompress LDR images already.
👍
No - it gets used by the preprocessor.
Templates can be helpful in creating a 5x5 context with a smaller memory footprint if the ASTCENC_BLOCK_MAX_TEXELS
=5x5x5 build option is enabled. However, it does not adhere to the API style of this library :(
from astc-encoder.
Related Issues (20)
- Questions about ASTC compression in two special cases HOT 12
- Add support for alpha edge extrudes when using `-a` option
- Decoding triggers SIGKILL after a while of processing the input HOT 3
- Investigate making the codec more strict aliasing compliant HOT 3
- retro studios txtr textures HOT 1
- bug checking the ASTCENC_FLG_DECOMPRESS_ONLY flag in astcenc_context_alloc() HOT 2
- Support Windows systems with multiple CPU groups HOT 1
- Completion of error handling HOT 2
- Warnings that become errors on mcst-lcc compiler (-Werror option) HOT 1
- alpha decoding bug when LDR_SRGB is enabled in ASTCENC_PRF_LDR_SRGB profile HOT 18
- Question about bizarre differences between `-ts` vs `-ds` HOT 3
- Compress/decompress progress callback HOT 8
- Crash: Progress Callback not initialized for Single-Threaded alpha-weight-scaling-radius path HOT 1
- Builds for wrong-architecture on M1 macs HOT 3
- How to encode RGB+A with dual weight planes? HOT 4
- Emscripten SAFE_HEAP reports unaligned access in compute_quantized_weights_for_decimation. HOT 13
- The png do not support to load HOT 6
- The alpha channel is painted black during compression HOT 7
- Build fails on i386 with -march=nehalem or newer HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from astc-encoder.