is presently its sole maintainer,
You can support him:
Owl of Shame: Single producer/Multiple consumer issue
Fixing our shame
Simplifying more with the API change
Implementing the multithreading API
Piping the work queue through
Global defines for AddEntry and CompleteAllWork
Typedefs for the work queue types
Smoothing out the multithreading API
Getting compiling again
Initializing pointers on game startup
GetCurrentThreadID for our test code
Reviewing/Checking for bugs
Problem: Queue never resets
Temporary Fix: Reset queue when all work is done
Turning the queue into a circular buffer
Blackboard: Circular FIFO
Implementing the FIFO queue
Testing the FIFO queue
Debugging the FIFO wrapping
Fixing the completion goal code
Working multithreaded rendering!
andsz_ Q: Since the workloads don't complete in order what if one workload takes very long while the other threads wrap around in the queue such that a new workload overwrites the slot with the one that is still running?
miblo Q: Now that we're multithreaded, could we compile in debug mode and have the game run at a reasonable framerate? (!quote 109)
powerc9k Q: Can we tell how much faster it is now that it's multithreaded?
60 FPS test
robotchocolatedino Q: Instead of asserting that the queue doesn't overflow when adding an entry would it be better to just wait for an entry to be read if there's no space to write
braincruser Q: Would you call this a thread pool?
soysaucethekid Q: When stepping through multithreaded code all the other threads stop as well, I take it?
vellyx Q: Can you make the number of threads an in-game configuration option?
ttbjm Q: How long until the renderer is sorted?
pragmascrypt Q: Is the WeShouldSleep still right after you changed the if condition?
manicthenobody Q: Why do you use #if 0 instead of // or /*?
nightbasilisk Q: Can you show 4k?
gasto5 Q: Is multithreaded code less reliable than singlethreaded code?
noxy_key Q: So is the circular buffer recycling threads after they're done processing a tile? I wasn't clear on why a circular buffer was chosen.
Power cord bumped, computer shut down
noxy_key Q: (once more) So is the circular buffer recycling threads after they're done processing a tile? I wasn't clear on why a circular buffer was chosen.
Blackboard: Circular buffers
kyaii Q: I just saw where you're sleeping threads if there's no work, are you still using semaphores to block and wake up threads or are you sleeping threads?
powerc9k Q: Is the archive going to save this correctly?
robotchocolatedino Q: Would it be easier to implement the queue as a linked list so it has no maximum size? Since we never need to traverse the list it should still be fast.
robrobby Q: In the rolling buffer you check each entry to be filled before writing a new one in and otherwise skip to the next slot?
Done for the day.