Multithreaded Game Engine - Midnight
Hi guys, I'm working on a very early-stage game engine built on top of a fairly optimized renderer. Here's a quick demo!
The furthest-along system I have at my disposal is a multithreaded task graph with work stealing (Chase-Lev, with slight modifications to minimize stealing) which currently supports the terrain streamer.
You can see the ultra low CPU profile at the end of the flight sim. While streaming terrain into existence I'm barely poking 5% utilization! The memory model is also constrained to wrap the necessary demand quite tight, and implements a demand-paging (reserve/commit) approach and both the Windows and Linux system calls are included to do so. Cache coherence is preserved aggressively. Performance first!
Other improvements I've made this year, in regards to better perf:
- "Bindless" descriptor indexing. No more binding descriptors per model draw
- Frame packet construction. Zero pipeline thrashing
- Compute skinning pipeline. Duh
The new MT and memory models are hands down the pride and joy of my achievements so far this year.
I'd like to implement MDI, but that may wait until further down the road, as I seem to have plenty of headroom for the task at hand. Thanks for peepin'