Xbox 360: Anyone confirm if this is true

at the fall processor forum, Microsoft's Vole said all Xbox 360 first generation games were single threaded, all of them. and multithreading would only come in second generation.

http://www.theinquirer.net/?article=27249


If this is true does this mean its because of shifting from a single core G5 to multicore machines which were still single threaded, to final hardware whcih was multithreaded?
 
Looks old to me, as COD2 is already confirmed running on all cores.

Edit - which can also mean they are using 3 single threads of course...
 
Alpha kits were dual-core. An MS have said repeatedly that it's a doddle for developers to move code from one core onto another due to the SMP architecture. I don't believe the Vole. I believe the games, maybe not all, will use the other cores for something even if not 100% efficiently. Either that or MS are talking wafflepip about the ease of their SMP system...
 
Infinity Ward has explicitly stated they are using all 3 cores. End of story.

The also say it took them only 6 weeks to crack the multi-core approach, and after that is was simply implementation.

Shifty - Having symmetrical cores without question makes it easier to port code from one core to another, I don't see how that's up for debate. But, the larger issue is still synchronizing your code, and splitting your game engine over 3 cores, and that has little to do with whether the cores are symetrical or assymetrical.
 
scooby_dooby said:
Infinity Ward has explicitly stated they are using all 3 cores. End of story.

The also say it took them only 6 weeks to crack the multi-core approach, and after that is was simply implementation.

but the topic is not about multicores, its about multithreading
 
Generally people expect use of multiple cores = use of multiple threads, rather than distributing one thread over several cores. I think that's a fair assumption.
 
So they are breaking down tasks and running them in parallel on cores instead of multi-threading.

-aldo
 
> "The also say it took them only 6 weeks to crack the multi-core approach, and after that is was simply implementation."

Right, and we don't know anything about the effective utilization of each core. They could have some minor routines running off two of the cores, and 90 percent of their code running on the main core.

Yes the thread is about multi-threading, but multi-core is easily 10 times more important than any multi-threaded code, considering multi-threaded routines only provide about 10 to 15 percent efficiency increase per core, will 3 cores can provide 300 percent efficiency (theoretical max.) increase over a single core.
 
Last edited by a moderator:
Shifty Geezer said:
Generally people expect use of multiple cores = use of multiple threads, rather than distributing one thread over several cores. I think that's a fair assumption.

Please explain how you can do this? A process can be distributed over several cores because it consists of threads but threads are discretely scheduled blocks. You put a thread on one processor and leave it run, yes you can move it over processors (logical and physical) but you cannot go "split yourself in two and run on 2 cores". If it were that simple there would be no problem with going multicore.

Also, a lot of the threading that is used (which after lurking I haven't seen mentioned) is for OS services (Live etc.) and sound. Sound is actually processed on a core and simply piped to a DAC, neither PS3 or Xbox have specialist sound chips now.

Again I stick by the claim that a lot of developers are moaning due to the pardigam shift forced upon them. Game code can easily be broken into threads if you think about it properly - AI can be removed from the render thread, physics can be removed also (though some objects will require locks with the AI thread to process critical events i.e walls breaking), sound can be seperated (via a linked-list structure), streaming/decompression can be done seperately also (the game thread will need to pass on what to do via a linked-list structure also) and you have one game thread handling input/passing messages to these things. It does require engine re-writing though compared to PC/older consoles but if development kits contained dual core processors and the OS can schedule threads there is no excuse for not doing this long long ago in development.
 
Edge said:
>
Right, and we don't know anything about the effective utilization of each core. They could have some minor routines running off two of the cores, and 90 percent of their code running on the main core..

Actually we do know, they said 1 core for special effects, 1 core for AI, and 1 for the game engine.
 
aldo said:
So they are breaking down tasks and running them in parallel on cores instead of multi-threading.

-aldo
Umm... that is multithreading.

Shifty, you don't know what you're talking about.
 
Shifty, you don't know what you're talking about.
You're right, I'm a know-nothing doofus. But seeing as you won't bother to contribute a correction as to where I'm going wrong and just want to levy unconstructive criticism I'll just keep talking :p

aldo : There's two approaches to using multiple cores. You can run different processes on each core, or the same process spread across all the cores. eg. You can run physics on one core and audio on another, or the physics running on both cores and then follow that up with the audio when it's finished. I don't think anyone's said how they're using XB360's cores. We do know that something like 5% of each of two cores are reserved for system functions and audio. I think it's 5% of each. Might be more.
 
so *if* all the current Xbox360 games are only using 1 core (COD2 being an exception ?) then Xbox 360 should have quite a bit more 'legs' than Xbox. more software generations to see improvement. I think Xbox360 should last 5 years at least, before we see its successor.
 
> "Actually we do know, they said 1 core for special effects, 1 core for AI, and 1 for the game engine."

So if there are no special effects in the scene, the core is doing nothing. There is different levels of utilization, and as you can see with my example, can mean the core is doing nothing. Saying it does this or this, does not mean the three cores are being used effectively. In other words, what is the frame-rate benefit, if one core is doing "special effects"? How optimized is the code for the main core?

What's the frame-rate of this game? How does it compare to the PC version? Should be superior if using three cores?
 
Last edited by a moderator:
It's locked at 60FPS.

Also, good luck finding any scenes that don't have extensive AI and Special Effects going on this game.

Have you seen the smoke? The Dynamic Weather? You NEVER play alone, always with a squad which means AI is always functioning.

Anyways, I don't get your point. You put out that the 2 cores might jyst be doing tiny amounts of code, leaving 90% on the main core. Well, that's completely false, they are using 1 core for all AI, the other for all special effects, one for the main game engine.

Seems to me your "theory" was obviously wrong and you should just let it go...
 
Edge said:
In other words, what is the frame-rate benefit, if one core is doing "special effects"?

What is the frame-rate benefit if the one core has to run other code that could have been left to one of the other two remaining?

Let's put it this way: A squire has to run 100 meters at 6 m/s while also carrying 50lbs of armour. This does not count the load of the long sword and shield. We can give this load to another squire who would otherwise have nothing else to do but stick his thumb up his ___. ;)

So, who cares if the core isn't being utilized all the time? The point is that they are making use of multicore to spread the work. It's also a first gen title.
 
If they have more than one thread running, it is transparent (or should be) as to whether the OS sticks that thread on one core or multiple cores. You can sometimes force a thread to have an affinity to a certain core (I'd be surprised if MS didn't have this in their IDE/OS), but it isn't as if you can (unless you're trying) to make more than one thread but leave all but one core untouched.

I'd actually be surprised if any game launched just using one thread. If it uses more than one thread, than it will indefinately use more than one core. And devs have had plenty of time to at least split the game into a 2-3 threads -- that shouldn't be too difficult, especially considering every dev should have planned on it being multithreaded (to some extent) from the get-go.

Inquirer, yet again, is clueless.
 
Edge said:
So if there are no special effects in the scene, the core is doing nothing. There is different levels of utilization, and as you can see with my example, can mean the core is doing nothing.
Your reasoning is very strange, and almost certainly logically flawed. So what if some core is doing nothing when there's nothing to do: there's nothing to do!

Saying it does this or this, does not mean the three cores are being used effectively.
Again you make little to no sense. The cores are certainly better used than if one or more are never used, right? I don't really understand what it is you want. Isn't it enough the cores run code when there's actual work to do, do they somehow have to invent stuff to do even when there's nothing to do?

In other words, what is the frame-rate benefit, if one core is doing "special effects"? How optimized is the code for the main core?
Certainly you must know those questions are impossible to answer for anyone except the developers themselves. You can assume that the SFX load off-loaded to a different core will result in better framerates than if one core would have had to handle the work along with something else.
 
It's extremely easy to use 2 cores, seperating rendering and gameplay logic, can be done in most codebases over a weekend.
tick audio on a 3rd and your "using all three".

Not a particularly efficient way to do it though.
 
Back
Top