PCSX2's bottleneck?
#1
Just out of curiosity, what's the main bottleneck as far as PS2 emulation goes (i.e. floating point, integer, memory bandwidth, etc.)? I'm assuming I/O isn't a huge deal, since actual PS2 disk read speeds are hella slow, and most games are only reading the disk during loading anyway. Rendering probably isn't a big problem either, especially since shaders are mostly nonexistent and poly counts are fairly low. I'm guessing floating point...?

Thanks,
fraserofthenight
Reply

Sponsored links

#2
PCSX2 needs fast SSE, GSdx an nvidia card.
Intel cpus have fast SSE units, especially with DaZ. That's why they rock with pcsx2 Tongue2
Reply
#3
Sweet, thanks. SSE integer of float (or is that mostly game-dependent)?
Reply
#4
(05-19-2009, 10:35 PM)rama Wrote: Intel cpus have fast SSE units, especially with DaZ.

which is locked in the release builds.. thanks for rubbin it in Angry I don't even think it's enabled in dev either...
Reply
#5
(05-19-2009, 09:52 PM)fraserofthenight Wrote: Just out of curiosity, what's the main bottleneck as far as PS2 emulation goes (i.e. floating point, integer, memory bandwidth, etc.)?

The biggest bottleneck is actually just the generally high cycle rates for the multiple CPUs under the hood of the PS2. That is, updating the program counter, handling events, and branching to new locations in the code (jump instructions, exception handlers, etc). And when you have four CPUs running in parallel all needing to have their register and banching states updated continuously, they can just be running :

while( true ) { i++; }

.. and emulation will be pretty slow. In fact many of our speedhack optimizations are designed specifically to target those kind of loops.

The second bottleneck is the VU, as Rama described. SSE and VU's SIMD are fairly incompatible, so we have to do a lot of work to keep VU emulation accurate. The VUs have less overhead from branching and more "doing real work™" overhead.

Bottleneck #3 is the GS. This includes both the GS interface and the job the GS plugins must do to render scenes. The problem is that the PS2 uses a fairly low-level design to synthesizing graphics, one which DirectX nor OpenGL were designed to accommodate. That greatly limits the amount of work that can be done using hardware acceleration, and complicates the parts that can be used. Additionally, the GS was designed such that many games will "swizzle" textures in and out of GS ram per-frame, resulting in 600-800 megs of data transferred to the GS per second. Optimizing for that can often be very tricky, since PCs are designed more on the premise of "upload once and use forever" texturing (this being the difference of a GS with 4MB of ram and a typical PC video card with 512Mb to 1gb).
Jake Stine (Air) - Programmer - PCSX2 Dev Team
Reply
#6
hope the intel larrabee platform will solve most of the bottlenecks,,,,

then it will be like: intel=emu king
If you download the PS2 bios illegally, you are breaking the law. Courts around the world have ruled that businesses and individuals can be prosecuted for illegal downloading.
[Image: makemydaynow.jpg]


Reply
#7
What exactly does this larrabee stuff do?
www.twitch.tv/krazytrumpeter05
Want to stream your games? Let me know and I can help you get set up with Open Broadcaster Software.
Reply
#8
(05-20-2009, 04:48 AM)KrazyTrumpeter05 Wrote: What exactly does this larrabee stuff do?

http://en.wikipedia.org/wiki/Larrabee_(GPU)
If you download the PS2 bios illegally, you are breaking the law. Courts around the world have ruled that businesses and individuals can be prosecuted for illegal downloading.
[Image: makemydaynow.jpg]


Reply
#9
It's SSE except at 512 or 1024 bits instead of 64/128.

There are a couple of new additions to the Larrabee instruction set which are compelling to the Pcsx2-side of emulation, but on whole they're useless for that. They might very well be useful for the GS though, since they could (I assume) improve on the software renderer considerably. I'm not sure how well it can be applied to hardware acceleration since I'm not familiar enough with intel's video architecture (just the instruction set itself).
Jake Stine (Air) - Programmer - PCSX2 Dev Team
Reply
#10
Oh, so it adds more rendering capabilities to the processor? That's pretty neat.

Ok, after actually thoroughly reading that wikipedia article...is it a processor or is it a GPU?
www.twitch.tv/krazytrumpeter05
Want to stream your games? Let me know and I can help you get set up with Open Broadcaster Software.
Reply




Users browsing this thread: 1 Guest(s)