
Fabian Giesen
@rygorous
Followers
15K
Following
4K
Media
3K
Statuses
84K
Abstraction maker, abstraction breaker. @[email protected] he/him
Joined December 2009
New blog post: "UNORM and SNORM to float, hardware edition"
fgiesen.wordpress.com
I mentioned in a previous post that doing exact UNORM or SNORM conversions to float in hardware was not particularly expensive, but didn’t go into detail how. Let’s rectify that! (If yo…
0
21
113
New blog post: "Exact UNORM8 to float" a satisfying solution to a problem that, quite possibly, nobody has.
fgiesen.wordpress.com
GPUs support UNORM formats that represent a number inside [0,1] as an 8-bit unsigned integer. In exact arithmetic, the conversion to a floating-point number is straightforward: take the integer and…
3
21
108
New blog post: "BC7 optimal solid-color blocks" clearing out my "I should write this up" queue, this technique is from. *checks git logs* May 2017. Oh my. (I have quite the backlog.).
fgiesen.wordpress.com
That’s right, it’s another texture compression blog post! I’ll keep it short. By “solid-color block”, I mean a 4×4 block of pixels that all have the same color. A…
0
12
88
New blog post: "Why those particular integer multiplies?" some explanation and some speculation on the integer SIMD multiplies offered in x86, along with some history.
fgiesen.wordpress.com
The x86 instruction set has a somewhat peculiar set of SIMD integer multiply operations, and Intel’s particular implementation of several of these operations in their headline core designs ha…
3
10
96
New blog post: "Inserting a 0 bit in the middle of a value" I guess it's 2-for-1 bit hacks week.
fgiesen.wordpress.com
This one originally came up for me in Oodle Texture’s BC7 decoder. In the BC7 format, each pixel within a 4×4 block can choose from a limited set of between 4 to 16 colors (ignoring some…
7
16
117
New blog post: "Entropy decoding in Oodle Data: x86-64 6-stream Huffman decoders"
fgiesen.wordpress.com
It’s been a while! Last time, I went over how the 3-stream Huffman decoders in Oodle Data work. The 3-stream layout is what we originally went with. It gives near-ideal performance on the las…
1
20
74
RT @revision_party: The world has dimmed for us. With sadness and his loved ones in our hearts, we say farewell to our friend and fellow ma….
0
14
0
New blog post: "A very brief BitKnit retrospective" Small codec for a special-purpose application that was only interesting by itself for a relatively short time, but ended up influencing LZNA, Kraken, Mermaid and Leviathan.
fgiesen.wordpress.com
UPDATE May 7, 2023: I wrote this post yesterday somewhat in a huff (for reasons not worth going into) and the original post contained several inaccuracies. These have been corrected in this version…
0
10
40