Capcom's "Framework" game engine

one

Unruly Member
Veteran
http://www.rbbtoday.com/news/20060904/33625.html

At CEDEC 2006 Capcom spoke about its brand-new game engine called "Framework". Here's my rough translation of the article above.

  • The Framework engine is adopted in games including Dead Rising, Lost Planet, Resident Evil 5, Devil May Cry 4, Monster Hunter 3.
  • The Framework engine has 3 characteristics: multi-platform support, multi-core optimization, tool integration.
  • As for multi-core optimization, the session mainly discussed methods for symmetric multi-core (Xbox 360). Since parallelization per module or loop which are often seen in parallel programming is not suitable for a game engine, parallelization per task including player character, enemy, bullet, camera, effect generator etc. is mainly used in the engine.
  • To suppress parallelization bugs such as dead lock, they made 2 clearly separated rules called "parallel update" which has no dependency and "synchronized update" in which each task can refer to and update other tasks. Task relationships and synchronization update intervals are adjustable on a GUI tool to make it easy to find parallel processes against the rules.
  • The performance for 1 thread vs 6 threads is, 2.6x in Dead Rising, and 2.15x in Lost Planet (under development). The CPU load is 80% for the main thread, 70% for rendering and sound, and 50-60% for other parallelized tasks.
  • There were only a few parallelization-related bugs against the rules in thousands of bug reports in the bug-checking period of the Dead Rising development, which shows totally parallelized application doesn't necessarily equal a bug-hell and they can realize stable parallelization thanks to the parallelization techniques and the strict rules in the Framework engine.
  • As for hi-def graphics, they pointed out "frame rate, fill rate, texture quality and size are more problematic than shader." Because of their estimation that 60fps is impossible for next-gen-esque imagery, they added lightweight 2.5D motion blur to make 30fps look smoother. Besides MSAA mini buffer is used in effect drawing to gain more fill rate (with the premise that GPU can use MSAA mini-buffer without cost). For better texture compression, they do original texture compression which appropriates an alpha channel for an extended information area and decompress it with programmable shaders.
  • The Framework engine can run not only on Xbox 360 but also on PLAYSTATION3 (asymmetric multi-core) and PC (single-core/multi-core). Parameters of its units can be edited to test it on real hardwares for each platform.
Task-update dependency lines
http://www.rbbtoday.com/cgi-bin/news/pict/20060904/33625/jpg/33625-ca02.html
24.2 fps without MSAA mini-buffer, 32.1 fps with MSAA mini-buffer
http://www.rbbtoday.com/cgi-bin/news/pict/20060904/33625/jpg/33625-ca03.html
GUI tool
http://www.rbbtoday.com/cgi-bin/news/pict/20060904/33625/jpg/33625-ca04.html
 
Awesome! Thanks One!!

[*]The performance for 1 thread vs 6 threads is, 2.6x in Dead Rising, and 2.15x in Lost Planet (under development). The CPU load is 80% for the main thread, 70% for rendering and sound, and 50-60% for other parallelized tasks.

So what does this mean? With all 6 threads vs just 1 they only get a bit under 3 times increase in CPU performance??? Will this increase over time?

Besides MSAA mini buffer is used in effect drawing to gain more fill rate (with the premise that GPU can use MSAA mini-buffer without cost).

24.2 fps without MSAA mini-buffer, 32.1 fps with MSAA mini-buffer
http://www.rbbtoday.com/cgi-bin/news/pict/20060904/33625/jpg/33625-ca03.html

Also this. Is this talking about using the Edram for effects besides AA?? I thought this wasn't possible and you could only use it for AA?
 
Last edited by a moderator:
So what does this mean? With all 6 threads vs just 1 they only get almost a 3 times increase in CPU performance??? Will this increase over time?

Most likely. It's called optimization. ;)

Also this. Is this talking about using the Edram for effects besides AA?? I thought this wasn't possible and you could only use it for AA?

You can use it as a high speed buffer for anything you like.
 
Hardknock said:
Is this talking about using the Edram for effects besides AA??
It's talking about rendering effects in low-resolution to save renderingtime/fillrate (using MSAA to reduce effects of lowered resolution).
 
Remember that the X360 threads are not true hardware threads (not fully capable of independent actions), its more like 3 main threads and 3 lightweight threads (iirc the PPE in Cell is more similar to two hardware threads), so a speed up of 2.6 is actually pretty good for a first generation game engine!
 
So what does this mean? With all 6 threads vs just 1 they only get a bit under 3 times increase in CPU performance??? Will this increase over time?
You know they have only 3 real cores! They are pretty good figures for SMP I think.
 
It's talking about rendering effects in low-resolution to save renderingtime/fillrate (using MSAA to reduce effects of lowered resolution).

That's what I had guessed. I knew it wasn't just me that thought the blown-up MSAA screen looked worse than the other one.

Just effects, or are they rendering the whole game this way?
 
Thanks for the info.

[*]As for hi-def graphics, they pointed out "frame rate, fill rate, texture quality and size are more problematic than shader." Because of their estimation that 60fps is impossible for next-gen-esque imagery, they added lightweight 2.5D motion blur to make 30fps look smoother.

This is really bad IMO, this will mean that we will see very few games at 60FPS. They do provide any reason for such estimation?
 
So what does this mean? With all 6 threads vs just 1 they only get a bit under 3 times increase in CPU performance??? Will this increase over time?
The 2.6x sounds like a good figure. You've got 3 cores, so the very most performance gain you could get over 1 core is 3x. The only way you'll get better than 3x increase is if your single thread is poor at using core resources. An efficient thread won't leave much left for a second thread to run off.

I'd be pleased with 2.5x as much performance from 3 cores on an SMP processor. I think typically dual-core processors are around 1.5x the performance of their single core varieties.
 
http://www.rbbtoday.com/news/20060904/33625.html

[*]The performance for 1 thread vs 6 threads is, 2.6x in Dead Rising, and 2.15x in Lost Planet (under development). The CPU load is 80% for the main thread, 70% for rendering and sound, and 50-60% for other parallelized tasks.
[*]There were only a few parallelization-related bugs against the rules in thousands of bug reports in the bug-checking period of the Dead Rising development, which shows totally parallelized application doesn't necessarily equal a bug-hell and they can realize stable parallelization thanks to the parallelization techniques and the strict rules in the Framework engine.
[*]As for hi-def graphics, they pointed out "frame rate, fill rate, texture quality and size are more problematic than shader." Because of their estimation that 60fps is impossible for next-gen-esque imagery, they added lightweight 2.5D motion blur to make 30fps look smoother. Besides MSAA mini buffer is used in effect drawing to gain more fill rate (with the premise that GPU can use MSAA mini-buffer without cost). For better texture compression, they do original texture compression which appropriates an alpha channel for an extended information area and decompress it with programmable shaders.
[*]The Framework engine can run not only on Xbox 360 but also on PLAYSTATION3 (asymmetric multi-core) and PC (single-core/multi-core). Parameters of its units can be edited to test it on real hardwares for each platform

I have read, not sure if it's been discussed here, but this engine stuff from Capcom is a major change for Japanese developers. Previously they had built games from scratch each time, shunning the Western practice of engines such as UE3.0. So I just think that aspect is very interesting.

As to the hardware thread discussion, yes, X360 is 3 main threads and 3 helper threads. I recall a microsoft 360 programming slide that discussed this. It even said if you're not careful, adding the second thread (on a single core) can actually slow things down. So 360 is best though of as 3 main threads and three secondary threads. As already discussed in this topic by others.

The stuff about parallelization sounds very encouraging, that they aren't having too much trouble with it (if we are too believe them anyway).

I dont get the CPU usage figures, as they add up to well more than 100%. Perhaps they refer to the 2.6 figure? (aka 260%=total).


"besides MSAA mini buffer is used in effect drawing to gain more fill rate (with the premise that GPU can use MSAA mini-buffer without cost)."

This is in reference to EDRAM I assume? If so wow, whatever it is they're saying sounds really encouraging.

"For better texture compression, they do original texture compression which appropriates an alpha channel for an extended information area and decompress it with programmable shaders."

Now this doesn't sound as great..using shader power to aid decompression? Anyway, amazing how clever programmers always are about doing stuff like this, on all platforms.

btw just an added note, Capcom is recently in love with the 360, as Dead Rising shipped 500k last I heard, and quite exceeded their sales expectations, causing them to reconsider perhaps much more multi-platform stuff.
________
Aire Vaporizer Review
 
Last edited by a moderator:
60fps impossible?

Seems like DMC4 is not fully using this engine. They just confirmed 60fps in the latest Famitsu.
 
Last edited by a moderator:
This is really bad IMO, this will mean that we will see very few games at 60FPS. They do provide any reason for such estimation?

With new hardware architectures getting more performance in the form of parallelism instead of single-thread speed, getting 60 fps will become harder and harder. Getting good performance from a multicore CPU is one thing; getting it with minimal latency after you've done all the task splitting, waiting for completion and getting your data back from the "other" cores, is another thing completely. There might be games that achieve 60 fps with 30-fps-like user input latencies thanks to deep buffering, but this defeats the purpose of having 60 fps in the first place.

I'm not sure I understand the "MSAA minibuffer for effects" - can anyone clarify?
 
I have read, not sure if it's been discussed here, but this engine stuff from Capcom is a major change for Japanese developers. Previously they had built games from scratch each time, shunning the Western practice of engines such as UE3.0. So I just think that aspect is very interesting.

Not all all of them. I know that Nintendo has had an internal engine codebase which was re-used and modified for different projects since Mario64.
 
Thanks very much One! The RE world has been a bit dry on news lately, and its nice to know the codename and information on the engine RE5 will be using finally.
 
Remember that the X360 threads are not true hardware threads (not fully capable of independent actions), its more like 3 main threads and 3 lightweight threads (iirc the PPE in Cell is more similar to two hardware threads), so a speed up of 2.6 is actually pretty good for a first generation game engine!

I remember that the VMX units have the needed registry space to run parallel task B while its core is busy with a task A
those units can do decompression and others Dx functions without delay main task

I undestood that a main program can do 3 tasks main (one-per-core) and 3 helper tasks, or 3 main tasks while 3 parallel task are busy doing other (decompression is an example)

is this right?
 
There might be games that achieve 60 fps with 30-fps-like user input latencies thanks to deep buffering, but this defeats the purpose of having 60 fps in the first place.
Not at all IMO.

I seriously doubt pretty much anyone would actually be able to feel the difference between 30 and 60fps inputs. Human reaction time - even in the prime of our youth and when we're ready and waiting for it to happen, whatever "it" may be - is on the order of several tenths of a second. That's anywhere from 5-10 frames, maybe more. While we can anticipate things via "feel" and muscle memory (such as when doing combo breakers in a fighting game etc), our mind isn't actually precise enough to notice one extra 1/60th of a second of delay.

60fps vs. 30 is all about visual smoothness of video updates, NOT input latency. IMO.

I'm not sure I understand the "MSAA minibuffer for effects" - can anyone clarify?
I would hazard a guess and say it's a render target that's only large enough to fit entirely within the eDRAM memory space, and thus is smaller than a full 720P frame... If it's something else, then I'm not inventive enough to figure it out with only the vague description given. ;)
 
Well one thing this seems to point to is LP on PS3 and DMC on 360. If theyre building an entire engine and one of its main goals is 'multi platform support', it would seem they are positioning themselves to do this.
 
I seriously doubt pretty much anyone would actually be able to feel the difference between 30 and 60fps inputs. Human reaction time - even in the prime of our youth and when we're ready and waiting for it to happen, whatever "it" may be - is on the order of several tenths of a second. That's anywhere from 5-10 frames, maybe more. While we can anticipate things via "feel" and muscle memory (such as when doing combo breakers in a fighting game etc), our mind isn't actually precise enough to notice one extra 1/60th of a second of delay.

As a ex-pianist and occasional keyboard player on my PC, with a MIDI keyboard and softsynths, I can assure you that a latency of 33 ms (30 Hz) is "almost unplayable", while a latency of 17 ms is "barely tolerable". If you get a decent sound card, you can achieve 4-5 ms of latency, and pro keyboardists still don't like playing with softsynths because of that latency. (Good hardware synths achieve < 1ms.)


I would hazard a guess and say it's a render target that's only large enough to fit entirely within the eDRAM memory space, and thus is smaller than a full 720P frame... If it's something else, then I'm not inventive enough to figure it out with only the vague description given. ;)

But what's the "for effects" part?

one, is there more detailed technical info in the Japanese text?
 
Back
Top