Vertex packing
21 July 2022
This blog started out as one of those interesting Twitter discussions that really needed a bit more space to explain properly. The basic question was relatively simple:
read moreASTC runtime compression
18 May 2022
This is a bit of a brain dump on what a BC7 equivalent in ASTC would look like for targeting runtime compression for virtual texturing - “astcenc-rt”. This is an evening thought experiment over a beer, so beware I’ve not tried to actually build this (yet) …
read moreFuture astcenc ideas
01 May 2022
It’s taken a couple of years, but the current astcenc release (3.7) has been pretty well dialled in for both x86 and Arm implementations. Nearly every path has been vectorized, and the heuristics have been tuned up to give a good performance-quality return.
read moreOptimizing astcenc
22 April 2022
After two years of incremental improvement the astcenc 3.6 release is around 20 to 25 times faster than the 1.7 release I started with. This blog is a look at some of the techniques I used, and a few that I tried but found didn’t work.
read moreAndroid Vulkan layers
20 April 2022
I’ve seen a few developers struggling to get Vulkan validation layers working for Android applications, so here is quick recipe to do it with the fewest moving parts.
read moreTexture sampling tips
27 March 2022
Shader texture sampling is a really interesting area of graphics technology, and one of the areas where there are some nicely hidden gotchas in terms of performance. This blog explores some of the issues …
read moreBranches in mobile shaders
09 December 2021
Shader branch performance is one of the topics that is most misunderstood by new developers, mostly due to an abundance of rehashed “branches are bad” information that is now years out of date. This blog is a rummage around the topic, looking at branches and loops.
read moreFloating-point in mobile shaders
23 November 2021
Computer floating-point maths is the evil twin of sensible real-world maths. It provides great flexibility, being capable of high precision and high dynamic range (although not both simultaneously), but comes with some nasty boundary conditions that can cause major issues with algorithmic stability.
read moreASTC codecs compared II
06 March 2021
The upcoming astcenc 2.5 release is the last major release in the 2.x series, although we will be supporting it as an ongoing LTS branch and back-porting any bug fixes. Now that the release is stable and in beta, this felt like a good time to pull together some benchmark data and look at the progress thus far.
read moreInvariant float accumulators
25 February 2021
One of the requirements we have for astcenc is ensuring that the output of the codec is consistent across instruction sets. Users quite like having the choice of SSE4.1 or AVX2 when their machine supports it – faster compression is always good – but no dev team wants game builds that look different just because a different machine was used to build it.
read moreASTC codecs compared
02 March 2020
We’ve just released astcenc 2.0 alpha, which is 2-3 times faster than the last release of the 1.x series (1.7). One question which has come up in a few conversations with developers since we announced the 2.x series is …
read more