mach: add blessed texture format(s) #1107
Labels
No labels
CI
all
basisu
blog
bug
build
contributor-friendly
core
correctness
deferred
dev
direct3d-headers
docs
driver-os-issue
duplicate
dxcompiler
editor
examples
experiment
feature-idea
feedback
flac
freetype
gamemode
gkurve
glfw
gpu
gpu-dawn
harfbuzz
help welcome
in-progress
infrastructure
invalid
libmach
linux-audio-headers
long-term
mach
mach.gfx
mach.math
mach.physics
mach.testing
model3d
needs-triage
object
opengl-headers
opus
os/linux
os/macos
os/wasm
os/windows
package-manager
priority
proposal
proposal-accepted
question
roadmap
slipped
stability
sysaudio
sysgpu
sysjs
validating-fix
vulkan-zig-generated
wayland-headers
website
wontfix
wrench
www
x11-headers
xcode-frameworks
zig-update
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
hexops/mach#1107
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
.basisor.KTX2format: https://github.com/BinomialLLC/basis_universal.ktx2format is quite nasty, if you look at the file format it is pretty convoluted..basisis fairly nice and simple.Perhaps we can use that with just
.basisfiles?In the future it could be useful to have platform optimized formats. Having a universal solution is important though and the thinking here sounds good.
KTX2, WebP, JPEG XL are solid options IMO.
PNG
Pros:
wuffslibrary, usable with Zig.Cons:
libjxl's fast_lossless implementation.WebP
Pros:
cwebp -z 9 -o. Great at pixel art.Cons:
AVIF is way better at lossy, although the best GPU compressed format it can do is YUV420.
JPEG XL
Pros:
cjxl -e 1 -d 0) is extremely fast to encode and decode on my machine, optimized for multiple cores.It loves to beat QOI in speed and resulting compression.
Cons:
Consider looking at the Rust
zunelibrary for assessing complexity?QOI
Pros:
cjxl -d 0 -e 1is still king.Cons:
KTX2
Pros:
May benefit wasm32 for code size :)
libzstd, however not in the Zig standard library.Artists can work with existing glTF exporters.
Cons:
Can be improved in the future if Mach were to push for it.
However, a format that can quickly be decoded on a single thread could in theory be helpful for a game loading many images at once, one image per thread.
PNG, WebP, JPEG, and others are non-options because they are only disk-compressed.
KTX2 is likely a non-option because the spec for it is nasty.