41554 blogs · [ { "id": "01a08777-c656-7001-840a-c4cba6327010", "title": "Memory ordering in CPUs", "url": "https://fgiesen.wordpress.com/2026/08/25/memory-ordering-in-cpus/", "published_at": "2026-08-25T19:57:14+00:00" }, { "id": "01a08777-c656-7001-840a-c4cba6e68462", "title": "ryg_rans is not a library", "url": "https://fgiesen.wordpress.com/2026/08/03/ryg_rans-is-not-a-library/", "published_at": "2026-08-03T18:10:39+00:00" }, { "id": "01a08777-c656-7001-840a-c4cba79ad936", "title": "PivCo-Huffman “merge” operations", "url": "https://fgiesen.wordpress.com/2026/06/21/pivco-huffman-merge-operations/", "published_at": "2026-06-21T22:33:51+00:00" }, { "id": "01a08777-c656-7001-840a-c4cba81eb984", "title": "Simple batch decoding of unary codes", "url": "https://fgiesen.wordpress.com/2026/05/30/simple-batch-decoding-of-unary-codes/", "published_at": "2026-05-30T23:46:50+00:00" }, { "id": "01a08777-c656-7001-840a-c4cba83615e1", "title": "Why does ASTC use ISE when almost nothing else does?", "url": "https://fgiesen.wordpress.com/2026/05/29/why-does-astc-use-ise-when-almost-nothing-else-does/", "published_at": "2026-05-30T05:56:50+00:00" }, { "id": "01a08777-c656-7001-840a-c4cba9321c81", "title": "Content creator", "url": "https://fgiesen.wordpress.com/2025/07/06/content-creator/", "published_at": "2025-07-07T06:53:55+00:00" }, { "id": "01a08777-c656-7001-840a-c4cba944b477", "title": "Oodle 2.9.14 and Intel 13th/14th gen CPUs", "url": "https://fgiesen.wordpress.com/2025/05/21/oodle-2-9-14-and-intel-13th-14th-gen-cpus/", "published_at": "2025-05-22T06:11:16+00:00" }, { "id": "01a08777-c656-7001-840a-c4cbaa282712", "title": "UNORM and SNORM to float, hardware edition", "url": "https://fgiesen.wordpress.com/2024/12/24/unorm-and-snorm-to-float-hardware-edition/", "published_at": "2024-12-24T15:14:24+00:00" }, { "id": "01a08777-c656-7001-840a-c4cbaa32236f", "title": "MRSSE", "url": "https://fgiesen.wordpress.com/2024/11/14/mrsse/", "published_at": "2024-11-15T00:53:43+00:00" }, { "id": "01a08777-c656-7001-840a-c4cbaaaa3941", "title": "Exact UNORM8 to float", "url": "https://fgiesen.wordpress.com/2024/11/06/exact-unorm8-to-float/", "published_at": "2024-11-07T06:25:27+00:00" }, { "id": "01a0c50c-cc42-7172-9f70-bdc9d2c11b42", "title": "BC7 optimal solid-color blocks", "url": "https://fgiesen.wordpress.com/2024/11/03/bc7-optimal-solid-color-blocks/", "published_at": "2024-11-04T01:59:28+00:00" }, { "id": "01a0c50c-cc42-7172-9f70-bdc9d305c7c6", "title": "Why those particular integer multiplies?", "url": "https://fgiesen.wordpress.com/2024/10/26/why-those-particular-integer-multiplies/", "published_at": "2024-10-26T07:48:53+00:00" }, { "id": "01a0c50c-cc42-7172-9f70-bdc9d3fa31bd", "title": "Inserting a 0 bit in the middle of a value", "url": "https://fgiesen.wordpress.com/2024/10/24/inserting-a-0-bit-in-the-middle-of-a-value/", "published_at": "2024-10-25T05:05:08+00:00" }, { "id": "01a0c50c-cc42-7172-9f70-bdc9d43f2a36", "title": "Zero or sign extend", "url": "https://fgiesen.wordpress.com/2024/10/23/zero-or-sign-extend/", "published_at": "2024-10-24T00:23:21+00:00" }, { "id": "01a0c50c-cc42-7172-9f70-bdc9d4deedd0", "title": "When is a BCn/ASTC endpoints-from-indices solve singular?", "url": "https://fgiesen.wordpress.com/2024/08/29/when-is-a-bcn-astc-endpoints-from-indices-solve-singular/", "published_at": "2024-08-29T23:45:06+00:00" }, { "id": "01a0c50c-cc42-7172-9f70-bdc9d568ee0e", "title": "Oodle, Kraken etc. misconceptions", "url": "https://fgiesen.wordpress.com/2024/08/08/oodle-kraken-etc-misconceptions/", "published_at": "2024-08-08T18:57:28+00:00" }, { "id": "01a0c50c-cc42-7172-9f70-bdc9d5fc172c", "title": "Entropy decoding in Oodle Data: x86-64 6-stream Huffman decoders", "url": "https://fgiesen.wordpress.com/2023/10/29/entropy-decoding-in-oodle-data-x86-64-6-stream-huffman-decoders/", "published_at": "2023-10-30T01:44:01+00:00" }, { "id": "01a0c50c-cc42-7172-9f70-bdc9d63add5f", "title": "Computational complexity of texture encoding", "url": "https://fgiesen.wordpress.com/2023/07/21/computational-complexity-of-texture-encoding/", "published_at": "2023-07-22T00:41:30+00:00" }, { "id": "01a0c50c-cc42-7172-9f70-bdc9d6558fb2", "title": "A very brief BitKnit retrospective", "url": "https://fgiesen.wordpress.com/2023/05/06/a-very-brief-bitknit-retrospective/", "published_at": "2023-05-07T03:34:53+00:00" }, { "id": "01a0c50c-cc42-7172-9f70-bdc9d6d3c3c5", "title": "Notes on FFTs: for implementers", "url": "https://fgiesen.wordpress.com/2023/03/19/notes-on-ffts-for-implementers/", "published_at": "2023-03-20T02:20:37+00:00" }, { "id": "01a0c51b-eb25-7360-b7dd-faa6660e7195", "title": "Notes on FFTs: for users", "url": "https://fgiesen.wordpress.com/2023/03/19/notes-on-ffts-for-users/", "published_at": "2023-03-19T23:11:38+00:00" }, { "id": "01a0c51b-eb25-7360-b7dd-faa6670796d1", "title": "What’s that magic computation in stb__RefineBlock?", "url": "https://fgiesen.wordpress.com/2022/11/08/whats-that-magic-computation-in-stb__refineblock/", "published_at": "2022-11-08T21:20:18+00:00" }, { "id": "01a0c51b-eb25-7360-b7dd-faa6675c35f2", "title": "On AlphaTensor’s new matrix multiplication algorithms", "url": "https://fgiesen.wordpress.com/2022/10/06/on-alphatensors-new-matrix-multiplication-algorithms/", "published_at": "2022-10-07T03:33:31+00:00" }, { "id": "01a0c51b-eb25-7360-b7dd-faa667706160", "title": "Morton codes addendum", "url": "https://fgiesen.wordpress.com/2022/09/09/morton-codes-addendum/", "published_at": "2022-09-09T21:25:17+00:00" }, { "id": "01a0c51b-eb25-7360-b7dd-faa6681b0be1", "title": "Entropy decoding in Oodle Data: x86-64 3-stream Huffman decoders", "url": "https://fgiesen.wordpress.com/2022/09/05/entropy-decoding-in-oodle-data-x86-64-3-stream-huffman-decoders/", "published_at": "2022-09-05T09:10:56+00:00" }, { "id": "01a0c51b-eb25-7360-b7dd-faa668f52dd4", "title": "Entropy decoding in Oodle Data: Huffman decoding on the Jaguar", "url": "https://fgiesen.wordpress.com/2022/04/04/entropy-decoding-in-oodle-data-huffman-decoding-on-the-jaguar/", "published_at": "2022-04-04T09:23:18+00:00" }, { "id": "01a0c51b-eb25-7360-b7dd-faa668f95b2c", "title": "GPU BCn decoding", "url": "https://fgiesen.wordpress.com/2021/10/04/gpu-bcn-decoding/", "published_at": "2021-10-04T07:00:22+00:00" }, { "id": "01a0c51b-eb25-7360-b7dd-faa6697a4f65", "title": "Entropy coding in Oodle Data: Huffman coding", "url": "https://fgiesen.wordpress.com/2021/08/30/entropy-coding-in-oodle-data-huffman-coding/", "published_at": "2021-08-30T08:49:26+00:00" }, { "id": "01a0c51b-eb25-7360-b7dd-faa669ddc27f", "title": "Entropy coding in Oodle Data: the big picture", "url": "https://fgiesen.wordpress.com/2021/07/09/entropy-coding-in-oodle-data-the-big-picture/", "published_at": "2021-07-10T02:41:52+00:00" }, { "id": "01a0c51b-eb25-7360-b7dd-faa66a649ed7", "title": "Frequency responses of half-pel filters", "url": "https://fgiesen.wordpress.com/2019/07/20/frequency-responses-of-half-pel-filters/", "published_at": "2019-07-20T21:58:12+00:00" }, { "id": "01a0c527-2640-7303-8f7c-c7506c607566", "title": "What happens when iterating filters?", "url": "https://fgiesen.wordpress.com/2019/04/08/what-happens-when-iterating-filters/", "published_at": "2019-04-08T07:56:51+00:00" }, { "id": "01a0c527-2640-7303-8f7c-c7506d0c40de", "title": "Cache tables", "url": "https://fgiesen.wordpress.com/2019/02/11/cache-tables/", "published_at": "2019-02-12T01:39:25+00:00" }, { "id": "01a0c527-2640-7303-8f7c-c7506d1f6bf0", "title": "Rotating a single vector using a quaternion", "url": "https://fgiesen.wordpress.com/2019/02/09/rotating-a-single-vector-using-a-quaternion/", "published_at": "2019-02-09T10:15:21+00:00" }, { "id": "01a0c527-2640-7303-8f7c-c7506d72957d", "title": "Rate-distortion optimization", "url": "https://fgiesen.wordpress.com/2018/12/10/rate-distortion-optimization/", "published_at": "2018-12-10T08:44:01+00:00" }, { "id": "01a0c527-2640-7303-8f7c-c7506e2a8b03", "title": "Reading bits in far too many ways (part 3)", "url": "https://fgiesen.wordpress.com/2018/09/27/reading-bits-in-far-too-many-ways-part-3/", "published_at": "2018-09-27T11:50:42+00:00" }, { "id": "01a0c527-2640-7303-8f7c-c7506f12b36a", "title": "A whirlwind introduction to dataflow graphs", "url": "https://fgiesen.wordpress.com/2018/03/05/a-whirlwind-introduction-to-dataflow-graphs/", "published_at": "2018-03-05T10:39:19+00:00" }, { "id": "01a0c527-2640-7303-8f7c-c750700f75ed", "title": "Reading bits in far too many ways (part 2)", "url": "https://fgiesen.wordpress.com/2018/02/20/reading-bits-in-far-too-many-ways-part-2/", "published_at": "2018-02-20T12:02:01+00:00" }, { "id": "01a0c527-2640-7303-8f7c-c75070ea1f6a", "title": "Reading bits in far too many ways (part 1)", "url": "https://fgiesen.wordpress.com/2018/02/19/reading-bits-in-far-too-many-ways-part-1/", "published_at": "2018-02-19T08:37:58+00:00" }, { "id": "01a0c527-2640-7303-8f7c-c750717c26e2", "title": "Network latencies and speed of light", "url": "https://fgiesen.wordpress.com/2018/01/20/network-latencies-and-speed-of-light/", "published_at": "2018-01-20T10:37:09+00:00" }, { "id": "01a0c527-2640-7303-8f7c-c750722fdc5e", "title": "Papers I like (part 7)", "url": "https://fgiesen.wordpress.com/2017/12/21/papers-i-like-part-7/", "published_at": "2017-12-21T11:26:38+00:00" }, { "id": "01a0c532-6926-72ea-950e-d9e3f9d65112", "title": "Papers I like (part 6)", "url": "https://fgiesen.wordpress.com/2017/11/20/papers-i-like-part-6/", "published_at": "2017-11-21T07:00:04+00:00" }, { "id": "01a0c532-6926-72ea-950e-d9e3f9f88cd2", "title": "Papers I like (part 5)", "url": "https://fgiesen.wordpress.com/2017/09/02/papers-i-like-part-5/", "published_at": "2017-09-02T09:03:55+00:00" }, { "id": "01a0c532-6926-72ea-950e-d9e3fa4e5e5f", "title": "Papers I like (part 4)", "url": "https://fgiesen.wordpress.com/2017/08/28/papers-i-like-part-4/", "published_at": "2017-08-28T11:40:00+00:00" }, { "id": "01a0c532-6926-72ea-950e-d9e3fad8171b", "title": "Papers I like (part 3)", "url": "https://fgiesen.wordpress.com/2017/08/27/papers-i-like-part-3/", "published_at": "2017-08-27T11:50:13+00:00" }, { "id": "01a0c532-6926-72ea-950e-d9e3fb95f78d", "title": "Papers I like (part 2)", "url": "https://fgiesen.wordpress.com/2017/08/14/papers-i-like-part-2/", "published_at": "2017-08-14T09:58:04+00:00" }, { "id": "01a0c532-6926-72ea-950e-d9e3fbf2d0ae", "title": "Papers I like (part 1)", "url": "https://fgiesen.wordpress.com/2017/08/12/papers-i-like-part-1/", "published_at": "2017-08-12T10:56:54+00:00" }, { "id": "01a0c532-6926-72ea-950e-d9e3fc1e4269", "title": "Memory bandwidth", "url": "https://fgiesen.wordpress.com/2017/04/11/memory-bandwidth/", "published_at": "2017-04-12T06:14:47+00:00" }, { "id": "01a0c532-6926-72ea-950e-d9e3fd1aefed", "title": "Rounding up to the nearest integer that’s congruent to k mod N", "url": "https://fgiesen.wordpress.com/2016/10/26/rounding-up-to-the-nearest-int-k-mod-n/", "published_at": "2016-10-26T10:51:13+00:00" }, { "id": "01a0c532-6926-72ea-950e-d9e3fd6483d0", "title": "How many x86 instructions are there?", "url": "https://fgiesen.wordpress.com/2016/08/25/how-many-x86-instructions-are-there/", "published_at": "2016-08-25T10:35:00+00:00" }, { "id": "01a0c532-6926-72ea-950e-d9e3fdad0f69", "title": "Why do CPUs have multiple cache levels?", "url": "https://fgiesen.wordpress.com/2016/08/07/why-do-cpus-have-multiple-cache-levels/", "published_at": "2016-08-08T04:05:51+00:00" }, { "id": "01a0c53c-fbdc-72c5-9359-09c78b22af9c", "title": "SSE: mind the gap!", "url": "https://fgiesen.wordpress.com/2016/04/03/sse-mind-the-gap/", "published_at": "2016-04-03T09:35:11+00:00" }, { "id": "01a0c53c-fbdc-72c5-9359-09c78b8a0727", "title": "Repeated match offsets in BitKnit", "url": "https://fgiesen.wordpress.com/2016/03/07/repeated-match-offsets-in-bitknit/", "published_at": "2016-03-07T12:26:56+00:00" }, { "id": "01a0c53c-fbdc-72c5-9359-09c78bddc0f4", "title": "“Smart”", "url": "https://fgiesen.wordpress.com/2016/02/05/smart/", "published_at": "2016-02-05T12:39:51+00:00" }, { "id": "01a0c53c-fbdc-72c5-9359-09c78c2a7499", "title": "Thoughts on The Witness", "url": "https://fgiesen.wordpress.com/2016/01/30/thoughts-on-the-witness/", "published_at": "2016-01-31T03:38:12+00:00" }, { "id": "01a0c53c-fbdc-72c5-9359-09c78cd209fe", "title": "End-of-buffer checks in decompressors", "url": "https://fgiesen.wordpress.com/2016/01/02/end-of-buffer-checks-in-decompressors/", "published_at": "2016-01-02T19:05:45+00:00" }, { "id": "01a0c53c-fbdc-72c5-9359-09c78cfd8711", "title": "rANS in practice", "url": "https://fgiesen.wordpress.com/2015/12/21/rans-in-practice/", "published_at": "2015-12-21T09:10:16+00:00" }, { "id": "01a0c53c-fbdc-72c5-9359-09c78d3fcead", "title": "Reading and writing are less symmetric than you (probably) think", "url": "https://fgiesen.wordpress.com/2015/10/25/reading-and-writing-are-less-symmetric-than-you-probably-think/", "published_at": "2015-10-26T06:36:03+00:00" }, { "id": "01a0c53c-fbdc-72c5-9359-09c78e374823", "title": "Intervals in modular arithmetic", "url": "https://fgiesen.wordpress.com/2015/09/24/intervals-in-modular-arithmetic/", "published_at": "2015-09-24T10:39:44+00:00" }, { "id": "01a0c53c-fbdc-72c5-9359-09c78ec4b7e2", "title": "The Modulith", "url": "https://fgiesen.wordpress.com/2015/07/22/the-modulith/", "published_at": "2015-07-22T10:03:28+00:00" }, { "id": "01a0c53c-fbdc-72c5-9359-09c78fb34421", "title": "Models for adaptive arithmetic coding", "url": "https://fgiesen.wordpress.com/2015/05/26/models-for-adaptive-arithmetic-coding/", "published_at": "2015-05-26T10:17:06+00:00" }, { "id": "01a0c545-8244-731e-859f-090855777b66", "title": "Triangular numbers mod 2^n", "url": "https://fgiesen.wordpress.com/2015/02/22/triangular-numbers-mod-2n/", "published_at": "2015-02-22T09:34:04+00:00" }, { "id": "01a0c545-8244-731e-859f-090855e82677", "title": "Mixing discrete probability distributions", "url": "https://fgiesen.wordpress.com/2015/02/20/mixing-discrete-probability-distributions/", "published_at": "2015-02-20T10:46:23+00:00" }, { "id": "01a0c545-8244-731e-859f-090856440a48", "title": "A small note on SIMD matrix-vector multiplication", "url": "https://fgiesen.wordpress.com/2015/02/05/a-small-note-on-simd-matrix-vector-multiplication/", "published_at": "2015-02-06T07:39:27+00:00" }, { "id": "01a0c545-8244-731e-859f-09085670ea2c", "title": "From the archives: “Alias Huffman coding.”", "url": "https://fgiesen.wordpress.com/2014/12/09/from-the-archives-alias-huffman-coding/", "published_at": "2014-12-09T09:39:31+00:00" }, { "id": "01a0c545-8244-731e-859f-0908573891c0", "title": "Binary alias coding", "url": "https://fgiesen.wordpress.com/2014/12/08/binary-alias-coding/", "published_at": "2014-12-08T09:07:29+00:00" }, { "id": "01a0c545-8244-731e-859f-090857ae372b", "title": "Little-endian vs. big-endian", "url": "https://fgiesen.wordpress.com/2014/10/25/little-endian-vs-big-endian/", "published_at": "2014-10-25T07:10:01+00:00" }, { "id": "01a0c545-8244-731e-859f-090857faed92", "title": "Atomic operations and contention", "url": "https://fgiesen.wordpress.com/2014/08/18/atomics-and-contention/", "published_at": "2014-08-18T08:58:15+00:00" }, { "id": "01a0c545-8244-731e-859f-09085888fc75", "title": "Cache coherency primer", "url": "https://fgiesen.wordpress.com/2014/07/07/cache-coherency/", "published_at": "2014-07-07T09:08:49+00:00" }, { "id": "01a0c545-8244-731e-859f-09085915ebe5", "title": "Bindless chain letter", "url": "https://fgiesen.wordpress.com/2014/06/01/bindless-chain-letter/", "published_at": "2014-06-02T01:31:48+00:00" }, { "id": "01a0c545-8244-731e-859f-09085a019009", "title": "FSE/ANS history correction", "url": "https://fgiesen.wordpress.com/2014/05/05/fseans-history-correction/", "published_at": "2014-05-05T07:03:21+00:00" }, { "id": "01a0c54e-41dc-7276-89d6-658563bca2e5", "title": "Networks all the way down, part 2.", "url": "https://fgiesen.wordpress.com/2014/03/25/networks-all-the-way-down-part-2/", "published_at": "2014-03-25T08:59:47+00:00" }, { "id": "01a0c54e-41dc-7276-89d6-658563cc9716", "title": "Networks all the way down.", "url": "https://fgiesen.wordpress.com/2014/03/23/networks-all-the-way-down/", "published_at": "2014-03-23T09:00:19+00:00" }, { "id": "01a0c54e-41dc-7276-89d6-658564149966", "title": "rANS with static probability distributions", "url": "https://fgiesen.wordpress.com/2014/02/18/rans-with-static-probability-distributions/", "published_at": "2014-02-18T08:13:11+00:00" }, { "id": "01a0c54e-41dc-7276-89d6-658564c2d82b", "title": "rANS notes", "url": "https://fgiesen.wordpress.com/2014/02/02/rans-notes/", "published_at": "2014-02-03T04:39:46+00:00" }, { "id": "01a0c54e-41dc-7276-89d6-658564fa580f", "title": "Index compression follow-up", "url": "https://fgiesen.wordpress.com/2013/12/17/index-compression-follow-up/", "published_at": "2013-12-17T09:49:02+00:00" }, { "id": "01a0c54e-41dc-7276-89d6-658565caffbb", "title": "Simple lossless(*) index buffer compression", "url": "https://fgiesen.wordpress.com/2013/12/14/simple-lossless-index-buffer-compression/", "published_at": "2013-12-14T10:35:22+00:00" }, { "id": "01a0c54e-41dc-7276-89d6-658566490cad", "title": "Symmetry", "url": "https://fgiesen.wordpress.com/2013/12/07/symmetry/", "published_at": "2013-12-08T00:48:04+00:00" }, { "id": "01a0c54e-41dc-7276-89d6-658566ce1fef", "title": "Bink 2.2 integer DCT design, part 2", "url": "https://fgiesen.wordpress.com/2013/11/10/bink-2-2-integer-dct-design-part-2/", "published_at": "2013-11-11T05:57:25+00:00" }, { "id": "01a0c54e-41dc-7276-89d6-658566d71e3a", "title": "Bink 2.2 integer DCT design, part 1", "url": "https://fgiesen.wordpress.com/2013/11/04/bink-2-2-integer-dct-design-part-1/", "published_at": "2013-11-04T08:27:58+00:00" }, { "id": "01a0c54e-41dc-7276-89d6-658567a81844", "title": "Bit scanning equivalencies", "url": "https://fgiesen.wordpress.com/2013/10/18/bit-scanning-equivalencies/", "published_at": "2013-10-19T05:26:41+00:00" }, { "id": "01a0c556-b7df-7062-b500-c1424bc67825", "title": "Tales of Suspense, Adventure and Data Structure Manipulation!", "url": "https://fgiesen.wordpress.com/2013/10/17/tales-of-suspense-adventure-and-data-structure-manipulation/", "published_at": "2013-10-17T19:04:07+00:00" }, { "id": "01a0c556-b7df-7062-b500-c1424c28dbab", "title": "Native debugging on Android", "url": "https://fgiesen.wordpress.com/2013/09/25/native-debugging-on-android/", "published_at": "2013-09-26T06:10:25+00:00" }, { "id": "01a0c556-b7df-7062-b500-c1424caf713c", "title": "Texture uploads on Android", "url": "https://fgiesen.wordpress.com/2013/09/25/texture-uploads-on-android/", "published_at": "2013-09-26T02:45:44+00:00" }, { "id": "01a0c556-b7df-7062-b500-c1424d4729ff", "title": "SIMD transposes 2", "url": "https://fgiesen.wordpress.com/2013/08/29/simd-transposes-2/", "published_at": "2013-08-29T15:18:21+00:00" }, { "id": "01a0c556-b7df-7062-b500-c1424e3c609d", "title": "SIMD transposes 1", "url": "https://fgiesen.wordpress.com/2013/07/09/simd-transposes-1/", "published_at": "2013-07-09T08:25:58+00:00" }, { "id": "01a0c556-b7df-7062-b500-c1424e7837a6", "title": "“It’s just a game”", "url": "https://fgiesen.wordpress.com/2013/06/11/its-just-a-game/", "published_at": "2013-06-11T09:07:19+00:00" }, { "id": "01a0c556-b7df-7062-b500-c1424f0e6fba", "title": "Modified Gram-Schmidt orthogonalization", "url": "https://fgiesen.wordpress.com/2013/06/02/modified-gram-schmidt-orthogonalization/", "published_at": "2013-06-02T23:39:56+00:00" }, { "id": "01a0c556-b7df-7062-b500-c1424f404917", "title": "Trig identities from complex exponentials", "url": "https://fgiesen.wordpress.com/2013/05/13/trig-identities-from-complex/", "published_at": "2013-05-13T07:30:39+00:00" }, { "id": "01a0c556-b7df-7062-b500-c14250131919", "title": "64-bit mode and 3-operand instructions", "url": "https://fgiesen.wordpress.com/2013/03/13/extra-registers-and-3-operand-instructions/", "published_at": "2013-03-13T08:25:50+00:00" }, { "id": "01a0c556-b7df-7062-b500-c14250a40bc2", "title": "On ePub/PDF versions of my posts and licensing", "url": "https://fgiesen.wordpress.com/2013/03/10/on-epubpdf-versions-of-my-posts-and-licensing/", "published_at": "2013-03-10T22:54:33+00:00" }, { "id": "01a0c55e-e225-70c2-9c35-08889fe0cf71", "title": "Optimizing Software Occlusion Culling: The Reckoning", "url": "https://fgiesen.wordpress.com/2013/03/10/optimizing-software-occlusion-culling-the-reckoning/", "published_at": "2013-03-10T09:59:27+00:00" }, { "id": "01a0c55e-e225-70c2-9c35-08889ff8eaee", "title": "Mopping up", "url": "https://fgiesen.wordpress.com/2013/03/05/mopping-up/", "published_at": "2013-03-05T10:10:59+00:00" }, { "id": "01a0c55e-e225-70c2-9c35-0888a0803076", "title": "Speculatively speaking", "url": "https://fgiesen.wordpress.com/2013/03/04/speculatively-speaking/", "published_at": "2013-03-04T11:16:58+00:00" }, { "id": "01a0c55e-e225-70c2-9c35-0888a0b7a36f", "title": "Reshaping dataflows", "url": "https://fgiesen.wordpress.com/2013/02/28/reshaping-dataflows/", "published_at": "2013-02-28T11:12:40+00:00" }, { "id": "01a0c55e-e225-70c2-9c35-0888a189b060", "title": "The care and feeding of worker threads, part 2", "url": "https://fgiesen.wordpress.com/2013/02/25/the-care-and-feeding-of-worker-threads-part-2/", "published_at": "2013-02-25T10:39:45+00:00" }, { "id": "01a0c55e-e225-70c2-9c35-0888a1e74daf", "title": "The care and feeding of worker threads, part 1", "url": "https://fgiesen.wordpress.com/2013/02/17/care-and-feeding-of-worker-threads-part-1/", "published_at": "2013-02-18T07:31:20+00:00" }, { "id": "01a0c55e-e225-70c2-9c35-0888a2ae4f82", "title": "Optimizing Software Occlusion Culling – index", "url": "https://fgiesen.wordpress.com/2013/02/17/optimizing-sw-occlusion-culling-index/", "published_at": "2013-02-17T23:33:57+00:00" }, { "id": "01a0c55e-e225-70c2-9c35-0888a2e1416e", "title": "Depth buffers done quick, part 2", "url": "https://fgiesen.wordpress.com/2013/02/16/depth-buffers-done-quick-part-2/", "published_at": "2013-02-17T03:21:49+00:00" }, { "id": "01a0c55e-e225-70c2-9c35-0888a31ef23a", "title": "Depth buffers done quick, part 1", "url": "https://fgiesen.wordpress.com/2013/02/11/depth-buffers-done-quick-part/", "published_at": "2013-02-11T11:18:26+00:00" }, { "id": "01a0c55e-e225-70c2-9c35-0888a3b56969", "title": "Optimizing the basic rasterizer", "url": "https://fgiesen.wordpress.com/2013/02/10/optimizing-the-basic-rasterizer/", "published_at": "2013-02-10T11:30:16+00:00" } ] posts Claim your blog
Back to The ryg blog | When I grow up I'll be an inventor.
Blog · corpus.blog/blogs/fgiesen.wordpress.com/posts

The ryg blog | When I grow up I'll be an inventor.

fgiesen.wordpress.com

2026

2025

2024

2023

2022

2021

2019

2018

2017

2016

2015

2014

2013