Superluminal

@superluminal@mastodon.gamedev.place
569 Followers
1 Following
59 Posts
Superluminal (https://www.superluminal.eu) is a user-friendly CPU sampling profiler for C/C++, Rust & .NET on Windows, Xbox One, Xbox Series X, PlayStation 4, and PlayStation 5.
Websitehttps://www.superluminal.eu
Twitter@SuperluminalSft

RE: https://mastodon.gamedev.place/@rovarma/115701190276602989

Check out this new article by Ritesh, in which profiling the in-development Linux version of Superluminal led to finding and fixing a performance issue in the Linux kernelšŸ‘‡

Ever wondered how to store millions of call stacks efficiently? So did we. Many times.

Check out this new article by Jelle about designing a data structure to efficiently compress and store large amounts of call stack data!

https://superluminal.eu/compressing-callstacks/

Compressing callstacks: a bitpacked DAG powered by a keyless hashmap - Superluminal %

In Superluminal we need to store potentially millions of callstacks very efficiently. This article describes how we went from naive storage taking up gigabytes of memory in the worst case, to a very compact data structure that efficiently compresses and stores large amounts of stack data in a fraction of the memory.

Superluminal

Had a great time talking with Dennis Gustafsson and Łukasz about profiling and profilers on the Wookash podcast a few weeks ago!

In case you missed it live, the recording is now available: https://youtu.be/7oXgik7Kn90?si=QwnxTjWd5OOAdz5F

Profilers! | Dennis (Telemetry) & Ritesh (Superluminal)

YouTube

I've been wanting to start a blog for a while, and finally decided to bite the bullet.

The first article of hopefully many more to come is about, you guessed it, profiling & optimization.

Boosts appreciated!

https://rovarma.com/articles/optimizing-libdwarf-eh-frame-enumeration/

Optimizing libdwarf .eh_frame enumeration | Ritesh Oedayrajsingh Varma

For the Linux version of Superluminal we rely on unwind information stored in the .eh_frame section in a binary to perform stack unwinding. We’ll go over optimizations we made to libdwarf that greatly improve the performance of retrieving this information.

Heading to the Graphics Programming Conference @gpc!

Come say hi if you’re there too :-)

I’ll be on the Wookash Podcast together with Dennis Gustafsson, original author of RAD Telemetry, for a live discussion about profilers.

Really looking forward to it. Tune in! :-)

Tomorrow (Tuesday) at 7pm CET / 10am PT.

https://youtube.com/@wookashpodcast

Wookash Podcast

Share your videos with friends, family, and the world

YouTube

New blog post! In "Billions of triangles in minutes" we'll walk through hierarchical cluster level of detail generation of, well, billions of triangles in minutes. Retoots welcome!

https://zeux.io/2025/09/30/billions-of-triangles-in-minutes/

My new blog post is there, and it's a bit different from usual: Fixing performance issues in your own code is hard enough, but this time I'm trying to fix performance issues in a closed-source game. No source code access or debug symbols, but a lot of guesswork.
https://larstofus.com/2025/07/27/profiling-without-source-code-how-i-diagnosed-trackmania-stuttering/

#Gamedev
#Optimization
#Superluminal

Profiling without Source code – how I diagnosed Trackmania stuttering

A very common side effect of working as a programmer is the constant frustration of not having source code access to all the software you use. Bugs, problems or missing features in your own work ca…

Larst Of Us

We've just released a new update with many fixes and QoL improvements, including the much-requested support for using the horizontal mouse wheel to navigate the timeline.

Go check it out!

@rovarma Just trialed Superluminal here for a thing. Really love the system wide record. I needed to profile something that's in multiple separately spawned processes, and just getting them in a timelined list saved me a lot of annoying setup!

(Pretty please could it be possible to make the thread expand/collapse animation faster though? :D)

Ɨ

New blog post! In "Billions of triangles in minutes" we'll walk through hierarchical cluster level of detail generation of, well, billions of triangles in minutes. Retoots welcome!

https://zeux.io/2025/09/30/billions-of-triangles-in-minutes/

@zeux This is impressive.

@zeux impressive!

btw Blenders glTF importer is Python, which I guess explains why it is much slower to crash than UE5 :)

@aras C++ proudly holds the crown of fastest-to-crash-language indeed.
@zeux @aras Hardly! With the right linker script I can get a process to crash before it even runs any code in the executable image
@rygorous @zeux @aras true, but C++ gives you an opportunity to crash your whole workstation even before it gets to linking
@zeux impressive work! one thing I've been wondering with nanite like tech, would it still look ok if you set the LOD switching point at larger than single pixels? as in, you accept tiny pops, but basically render, IDK, half the geometry for example .. would that look acceptable? or would it look like a mess of pops everywhere?
@logicalerror You can set the error to be higher in theory. I think it depends on the particulars of your TAA; and also because actual Nanite does micropoly rasterization in compute for small triangles, I would imagine the performance depends on rendered triangle count in a non-trivial way. Note that unlike discrete LOD, under camera motion you’d expect many cluster transitions every frame in different parts of the screen… so single pixel cutoff is much safer.
@logicalerror @zeux the threshold value can be controlled in the vk_lod_clusters sample under "Traversal". The sample should run with just EXT_mesh_shader support.

@zeux @superluminal have a look folks!

and uuuugh, that utterly poor allocation... was that with MSVC STL? does using (Microsoft or MinGW) Clang make any difference?

@zeux wait! Superluminal works on linux now?

@nical @zeux for some definition of working!

(it’s in alpha testing, and Arseny is one of the people kind enough to subject themselves to our early bugs ;-)

@rovarma @zeux exciting! Holler at me if you need more beta testers!