#5
Valve Dev Wiki says so.
#8
AsecI have to disagree with 3 because we do most likely NOT have the same implementation for the TF2 Source engine, we (presumably) have the one that Gmod used to have prior to the afformentioned July update.
That was my point for 1.
The way that Source handles multithreading hasn't changed in the different branches. It's still the same old queued multithreading (mat_queue_mode 2).
2 doesn't contradict anything. Even if someone implemented the holy grail of multithreading in Gmod Valve would not port it. It's just way too much work. Task based threading is already implemented (and not doing much) and you can't just slap data based threading onto completely different data and hope the locks still work. They won't.
Like I said, this is the same multithreading that gets you about 35% in TF2 because all the new particle effects etc were dumped in the main thread iirc.
The main problem is that Source 2 was supposed to and should solve that problem by having better multithreading and semi-automated porting, but has been delayed for so many years.
#11
It already does that, but most jobs depend on each other so you can't run them out of order. That leads to the problem that it can easily utilize 8 threads at the same time but most jobs are so benign that they are finished almost instantly and we're back to 2 threads. It's about 70% in the main thread, 25% for the 2nd thread (mostly rendering) and <5% for everything else.
Iirc Source doesn't even support locks so that (a lot of work, not much improvement) is not even an option but while their preferred approach of lock-free algorithms (shit ton of work, more improvement) is more or less delayed until Source 2.
You know things like cl_threaded_bone_setup? They've caused crashes for years because that shit is really that complicated.
Could they improve it? Absolutely. But even I would rather see that work go into Source 2 than improve an engine they want to get rid of because it's such a pain in the ass. It's not like Valve has an infinite number of programmers available. If it was your choice would you rather improve Multithreading in Source 1 or Source 2?