Working on EmberGen and more.
Discord: vassvik @vassvik@mastodon.gamedev.place
Hi I'm Morten. I work at JangaFX, where I primarily work on EmberGen, but I occasionally work on our other tools as well.
I hope to eventually start posting more fluid sim and graphics content, hopefully even blogposts and some code too.
Since 2014 I've been using Excel to create math art. Post-processing in Krita.
Since 2014 I've been using Excel to create math art. Post-processing in Krita.
I've never been more upset than trying (and failing) to get one of the CUB examples to build
Massive failure of a trillion dollar company simply where it's a pain and a chore to use their thing
I've never been more upset than trying (and failing) to get one of the CUB examples to build
Massive failure of a trillion dollar company simply where it's a pain and a chore to use their thing
The current state summerized in the images below for a 7900 XTX for the red team and a 4090 for the green team.
For once the former handedly beats the latter across the board!
The current state summerized in the images below for a 7900 XTX for the red team and a 4090 for the green team.
For once the former handedly beats the latter across the board!
Me: I'm very proud of this 1µs optimization, it was definitely worth it to spend a day on it.
Me: I'm very proud of this 1µs optimization, it was definitely worth it to spend a day on it.
Hello everyone!
I am available for work (full time position/internship) anywhere in the world with priority going to the EU, starting June 2026. 🧵
Hello everyone!
I am available for work (full time position/internship) anywhere in the world with priority going to the EU, starting June 2026. 🧵
This is a so-called Bitonic sorting network, and the illustrations show the two common ways to implement them. From an implementation point of view the two methods are effectively the same, so which one you pick just comes down to preference.
This is a so-called Bitonic sorting network, and the illustrations show the two common ways to implement them. From an implementation point of view the two methods are effectively the same, so which one you pick just comes down to preference.
Getting motivated to do a full deep dive into Bitonic sorting networks and how to use them well on the GPU now. Maybe it'll happen over the christmas holidays.
Getting motivated to do a full deep dive into Bitonic sorting networks and how to use them well on the GPU now. Maybe it'll happen over the christmas holidays.
A quick look at the current performance state of the solver.
A previous retrospective thread from a couple years ago on that other place: x.com/vassvik/stat...
A quick look at the current performance state of the solver.
A previous retrospective thread from a couple years ago on that other place: x.com/vassvik/stat...
This release focuses on improvements in clusterization and simplification as well as stabilization. Here's a release announcement with more details on past, present and future; please RT!
meshoptimizer.org/v1
This release focuses on improvements in clusterization and simplification as well as stabilization. Here's a release announcement with more details on past, present and future; please RT!
meshoptimizer.org/v1
A 64-bit version should be easy enough to produce, by just using the 32-bit version twice and combining the results.
A 64-bit version should be easy enough to produce, by just using the 32-bit version twice and combining the results.
Anything that isn't explicitly "mine" is really hard to focus on
Anything that isn't explicitly "mine" is really hard to focus on
This simple program does the trick:
github.com/milkru/gpu_c...
This should even work when profiling, e.g., WebGPU apps in browser!
[cont]
This simple program does the trick:
github.com/milkru/gpu_c...
This should even work when profiling, e.g., WebGPU apps in browser!
[cont]
If you've worked with Morton codes you've probably seen something like the this GLSL code to decode a Morton code, which end up at roughly 27 integer operations to generate the equivalent 2D position.
Code transcribed from fgiesen.wordpress.com/2009/12/13/d...
If you've worked with Morton codes you've probably seen something like the this GLSL code to decode a Morton code, which end up at roughly 27 integer operations to generate the equivalent 2D position.
Code transcribed from fgiesen.wordpress.com/2009/12/13/d...
Curse of awful laptops broken?
Curse of awful laptops broken?
momentsingraphics.de/SiggraphAsia...
momentsingraphics.de/SiggraphAsia...
Includes an analysis of NVIDIA’s wireframe paper & fixes its issues.
fauder.github.io/posts/2025/1...
#GraphicsProgramming #Rendering #OpenGL #ShaderDev #GameDev
Includes an analysis of NVIDIA’s wireframe paper & fixes its issues.
fauder.github.io/posts/2025/1...
#GraphicsProgramming #Rendering #OpenGL #ShaderDev #GameDev
Realtime capture in the viewport on 4090.
The projection struggles a bit on this scale, so I brute forced it a bit, so it's a bit slower than it has to be. FMG to initialize should help a lot here.
Realtime capture in the viewport on 4090.
The projection struggles a bit on this scale, so I brute forced it a bit, so it's a bit slower than it has to be. FMG to initialize should help a lot here.