Sign in

Clément Grégoire

@lectem.bsky.social
130 followers 234 following 139 posts

French C++ developer, consultant & co-founder @ siliceum. Performance optimization, multithreading, rendering APIs and game engines. I know too much about Webkit and JS for my own good. I do reverse engineering for fun!

PostsRepliesMedia
Clément Grégoire @lectem.bsky.social · 22/09/2026
Me trying Linux again this year. "disable secure boot" "use manual partinionning" "installer crashed" Year of Linux desktop my ass
030
Clément Grégoire @lectem.bsky.social · 25/05/2026
Wtf @anthropic.com
000
Clément Grégoire @lectem.bsky.social · 06/05/2026
Given how bad and slow Opus results are lately, I wouldn't be surprised if @anthropic.com pulled the old mechanical turk trick on us and hired an army of Indian devs to prompt smaller models to save on costs.
000
Clément Grégoire @lectem.bsky.social · 20/03/2026
I keep seeing `if(file_exists(path)) do_something(path)` and similar. This infuriates me. STOP FUCKING DOING 2 SYSCALLS THIS IS BOTH SLOW AND NON ATOMIC. FFS please... I've even seen it in teaching materials, do everyone a favor and read en.wikipedia.org/wiki/Time-of...
en.wikipedia.org
Time-of-check to time-of-use - Wikipedia
130
Clément Grégoire @lectem.bsky.social · 17/03/2026
Oh mah! Look, spinlocks are at it again (this time in the kernel, there's no escape!)
120
Clément Grégoire @lectem.bsky.social · 30/01/2026
Dear frontend developers: Stop fucking using buttons instead of links! I want to be able to copy, open in new tab,... Well, have links be links and not buttons. Thanks.
010
Clément Grégoire @lectem.bsky.social · 27/01/2026
Ever wrote spin-locks or had to debug them? I have, and I got tired of seeing (and writing) crappy ones, so I did a real investigation this time. Spoiler: trust your OS. siliceum.com/en/blog/post...
siliceum.com
Spinning around: Please don't! - siliceum
Embark on a journey about why you should sometimes trust your OS more than yourself.
1239
Clément Grégoire @lectem.bsky.social · 04/01/2026
Can we all agree that OpenSSL sucks by requiring perl to build in 2026? I'm not even asking for CMake support, just no stupid dependencies!
010
Clément Grégoire @lectem.bsky.social · 23/12/2025
Cup arrived right before Christmas, thanks @matt.godbolt.org
010
Reposted by Clément Grégoire
Sebastian Aaltonen @sebaaltonen.bsky.social · 16/12/2025
My "No Graphics API" blog post is live! Please repost :) www.sebastianaaltonen.com/blog/no-grap... I spend 1.5 years doing this. Full rewrite last summer and another partial rewrite last month. As Hemingway said: "First draft of everything is always shit".
sebastianaaltonen.com
No Graphics API — Sebastian Aaltonen
Graphics APIs and shader languages have significantly increased in complexity over the past decade. It’s time to start discussing how to strip down the abstractions to simplify development, improve pe...
19475194
Clément Grégoire @lectem.bsky.social · 10/12/2025
Did I mention I hate the webdev ecosystem ?
010
Clément Grégoire @lectem.bsky.social · 09/12/2025
Today a new episode of "Web sucks"! When handling import of an external library, ESBuild generates some kind of import table for the whole library. But since it needs to mimick ESM modules, it creates the "exports" object using Getters instead of properties.
100
Clément Grégoire @lectem.bsky.social · 08/12/2025
Movie you’ve watched more than six times with a gif. Hard mode: no Stars (Wars nor Trek), LOTR, or Marvel, Disney Animated or Pixar.
media.tenor.com
a man is petting a small black dog in his arms .
ALT: a man is petting a small black dog in his arms .
020
Clément Grégoire @lectem.bsky.social · 13/10/2025
So UE5 has a tool that generates perf reports, with a whole Metadata generation thing (in XML) that allows to customize reports. But it still displays averages for timings everywhere. Oh, and their perf bench tool is implemented using 3layers of different technologies.
110
Clément Grégoire @lectem.bsky.social · 23/09/2025
Finally took the time to buy a licence for Fork. Truly the best UI for git, as it's the only one that never disappointed me. It's only missing Linux support but otherwise well worth its price. @fork_dev@mastodon.social
000
Clément Grégoire @lectem.bsky.social · 07/08/2025
New blog post about my journey into the ETW depths, I had long wanted to look into it, now I'm starting to regret it (just a bit). But this is great if you want to write your own tools for profiling! www.siliceum.com/en/blog/post...
siliceum.com
ETW Events and thread names - siliceum
Thread names are one of the most crucial information one can get system activity. However Windows ETW does not make it easy to retrieve!
021
Clément Grégoire @lectem.bsky.social · 11/07/2025
@openvibe.social the app is really great except for one thing killing the experience for me on android: No way to copy a link or open it on your browser because you hide the webview toolbar!
120
Clément Grégoire @lectem.bsky.social · 26/06/2025
While writing test code for an article on sampling profilers, I ended up in analyzing methods for high resolution sleeps on Windows. Follow me into the rabbit-hole of high resolution timers! www.siliceum.com/en/blog/post...
siliceum.com
Windows and high resolution timers - siliceum
While writing test code for an article on sampling profilers, I ended up in analyzing methods for high resolution sleeps on Windows. Follow me into the rabbit-hole of high resolution thread sleeps and...
194
Clément Grégoire @lectem.bsky.social · 12/06/2025
Visiting Nvidia GTC today, if you're there let's meet! #GTCParis
020
Clément Grégoire @lectem.bsky.social · 03/06/2025
Tracy 0.12 was just released with thread wake-up visualization, added by yours truly! Check it out github.com/wolfpld/trac...
github.com
Release Tracy Profiler 0.12 · wolfpld/tracy
For a more detailed change list, see https://github.com/wolfpld/tracy/blob/v0.12.0/NEWS. CPU topology includes die To enable better insight into potential performance pitfalls the profiler will now...
060
Clément Grégoire @lectem.bsky.social · 27/05/2025
Just discovered @ap.brid.gy that let's you interact with Mastodon users! But it requires people from there to enable it too so... A bit limited?
000
Clément Grégoire @lectem.bsky.social · 13/05/2025
Implemented a simple String Interning class for a client last week. Physical memory usage: Before: 1.9GB After: 1.5GB Using a preloaded cache: 1.3GB I might be on to something here...
100
Reposted by Clément Grégoire
Arseny Kapoulkine @zeux.io · 04/05/2025
New blog post! "Load store conflicts", in which we look at some performance sensitive code that has surprisingly dramatic performance swings based on the compiler and the microarchitecture used. Reposts appreciated! zeux.io/2025/05/03/l...
zeux.io
Load-store conflicts
meshoptimizer implements several geometry compression algorithms that are designed to take advantage of redundancies common in mesh data and decompress quickly - targeting many gigabytes per second in...
15923
Clément Grégoire @lectem.bsky.social · 22/04/2025
This is the third time I find issues due to codebases using rpmalloc this year... Spinlocking without any kind of pause/yield is such a bad idea. One of my threads got stuck for 4.5s !!!! At this point, I can only advise to stop using rpmalloc.
120
Clément Grégoire @lectem.bsky.social · 08/04/2025
Really @microsoft.com ? 850MB for a godamn photo viewer that is slower and has a worse UX than the one shipped with Windows XP ?!
160
Reposted by Clément Grégoire
Ritesh Oedayrajsingh Varma @rovarma.bsky.social · 04/04/2025
One thing people really like about Superluminal is that it Just Works, and we’re trying hard to get that same experience on Linux. But this platform sometimes really feels like it’s actively fighting against anything “just working” and it would really prefer you Do The Work tyvm.
0121
Reposted by Clément Grégoire
Jendrik Illner @jendrikillner.bsky.social · 01/04/2025
Graphics Programming weekly - Issue 385 - March 30th, 2025 www.jendrikillner.com/post/graphic...
05822
Clément Grégoire @lectem.bsky.social · 28/03/2025
Following my article from yesterday, this link was shared on the DirectX discord. It's a community ran database of information about GPUs and their features. Pretty awesome and very useful to check compatibility!
d3d12infodb.boolka.dev
D3d12infoDB
290
Clément Grégoire @lectem.bsky.social · 27/03/2025
Finally published an article I wrote eons ago about D3D12 descriptors and easy optimisations that you can do. This can save you both CPU time and memory! www.siliceum.com/en/blog/post...
siliceum.com
Optimizing copy of null descriptors in D3D12 - siliceum
Discover how a few simple tweaks can help save CPU time and memory when using Direct3D12 desciptors.
081
Clément Grégoire @lectem.bsky.social · 12/03/2025
I'm always surprised by the fact that the first answer to "we have perf problems" is to change the language. I mean, going native is obvious. But why didn't they start by using a proper profiler with instrumentation is beyond me.
230
Clément Grégoire @lectem.bsky.social · 17/02/2025
Lost almost a day due to newer DbgHelp versions suddenly failing to load my .pdb files... Turns out they changed a small check that now requires all sizes to be 8bytes aligned. The intent was clearly to check that alignment of array entries was correct, but it ended up checking the size too...
100
Clément Grégoire @lectem.bsky.social · 13/02/2025
I open-sourced a library to help you find race conditions! Great for those of you rewriting containers ( @pagghiu.bsky.social @jeremy.laumon.name ?) or people like me who work on codebases with a lot of people and you suspect things to be racy... Feedback is welcome! github.com/Lectem/BadAc...
github.com
GitHub - Lectem/BadAccessGuards: Find race conditions at low cost by instrumenting containers
Find race conditions at low cost by instrumenting containers - Lectem/BadAccessGuards
392
Clément Grégoire @lectem.bsky.social · 10/02/2025
C++ committee : still fighting about serialization Gamedev industry: Uses pdb to do hot reloading (live++), runtime visualisation and perf analysis (D0), runtime memory edit (playerunknownproductions.net/news/run-tim...)
playerunknownproductions.net
PLAYERUNKNOWN Productions - Run-time memory editing with PDB files
This blog post describes the use of PDB files to automatically generate type descriptions.
0131
Reposted by Clément Grégoire
Armin Ronacher @mitsuhiko.at · 24/01/2025
“Celebrated are the minimal dependencies, the humble function that just quietly does the job, the code that doesn't need to be touched for years because it was done right once.” lucumr.pocoo.org/2025/1/24/bu...
lucumr.pocoo.org
Build It Yourself
We need a vibe shift on dependencies in programming.
1811522
Clément Grégoire @lectem.bsky.social · 23/01/2025
Whoever said linux API/design is better than Win32 never tried to retrieve stack information for a thread (well, task) given its TID. You may start parsing `/proc/self/task/tid/maps` until you realize per-thread stack info were removed (too slow, obviously since there's no dedicated API).
210
Clément Grégoire @lectem.bsky.social · 19/01/2025
Apple platforms support when writing low level code really is a pain. - Requires a MacOS machine to even compile - C docs are pretty much inexistant - pthread_*_np require reading impl to know what is available ("hard" to find but available at least)
110
Reposted by Clément Grégoire
Brendan Keogh @brkeogh.bsky.social · 18/01/2025
Okay, Matthew Ball's The State of Video Gaming in 2025 is a really monumental achievement and an absolute gold mine of stats that put the current game industry into its economic context. Strongly recommend. www.matthewball.co/all/stateofv...
matthewball.co
PRESENTATION: The State of Video Gaming in 2025 — MatthewBall.co
A (free) 220 page presentation on the past, present and potential future of the video game industry.
415845
Reposted by Clément Grégoire
Sebastian Schöner @sschoener.bsky.social · 18/01/2025
Unity Burst and zero-cost: blog.s-schoener.com/2025-01-18-b...
blog.s-schoener.com
Burst and zero cost
Hey! You can find me on Mastodon, Bluesky, or Twitter! First of, let me apologize for the title. This is not about “zero cost” abstractions, but the title still holds. To set the scene, note that Unit...
083
Clément Grégoire @lectem.bsky.social · 01/01/2025
Yearly reminder that virtual memory is not free, even if it looks like it is. That's true even if you only reserve it and don't commit. Everything has a cost.
000
Clément Grégoire @lectem.bsky.social · 16/12/2024
So I was thinking "Let's finish writing this series of CMake articles". And then I saw this: Scary how time flies.
040
Clément Grégoire @lectem.bsky.social · 24/11/2024
In languages with garbage collectors you need to watch out for memory usage and special constructs that may be taxing during the GC steps. The more memory is allocated, the more the GC may eat up CPU time you'd need for something else.
110
Clément Grégoire @lectem.bsky.social · 18/11/2024
I came to BlueSky out of curiosity but didn't expect to find so many familiar faces (well, avatars/accounts). Including a lot that I didn't see for ages! Kind of liking it.
060