Quote:what
tell me, whats the point of gpu's if the cpu does all graphical stuff (thats what you said)
EDIT: yes, onboard "gpu"'s are processed by cpu's (thats what makes them more crappy) but god, external gpu's ?
I'll give you two bits of info, in reverse order then. Newsflash: "Offboard" GPUs are also processed by CPUs. All graphics cards use regular old processors to do most of their work. (Albeit, often highly specialized or optimized processors.) The catch is that a graphics card usually has a whole bunch of them. They get their speed boosts from simultaneous processing, not from raw power on one or two threads. And besides, on-board graphics cards (at least the ones I've seen) are still usually on a separate chip. Point being, a "GPU" is really just a processing chip that does graphics and nothing else, so the regular CPU doesn't have to do as much and can worry about other things.
That aside, there's still a lot of work that Dolphin has to do on the CPU before the GPU can ever get that data. The Wii/GC uses a special format for all of its 3D data and textures that isn't natively understood by DirectX or OpenGL libraries. In order for Dolphin to emulate this, it has to translate that 3D data from the Wii/GC format into the DirectX/OpenGL format for the PC graphics card to display. As I understand it, this means translating all of the models for the current frame, point by point, into the correct format. Lather, rinse, repeat for each frame. They can optimize this a lot (and continually do so) but it still takes a good chunk of CPU to do that conversion in realtime. This is why Dual-Thread benefits Dolphin so much, it allows this process to happen at the same time that the CPU is processing the game (in theorey) which is very similar to how the Wii/GC would work anyway-- that is, you do things in the game in three steps. Step 1: calculate logic for frame. Step 2: throw the game's graphics at the GPU. Step 3: Wait for the GPU to finish. Naturally, every game on the market combines step 3 from the previous frame with step 1 of the next frame, so while the hardware is busy drawing frame 1, the game is busy calculating the AI and bone transformations and things for frame 2. Actually getting this all to work in sync in an emulated environment is very time consuming when you realize that you have to emulate the communication between the hardware at the same time that you're emulating the hardware itself.
Edit: For some strange strange reason, Firefox on Ubuntu 9.04 is telling me that "optimized" is misspelled while "optimised" is spelled correctly. According to every other source I have, the reverse is true, "optimized" is the correct spelling. At least, in American English. Weird, seeps to happen for other words using z as well. Quite strange, has anyone else noticed this? Anyway, I appologize for any spelling errors then, since I clearly can't trust my spell checker.
Further Edit: *Kicks self. Several times.* I'm sorry Daco, I should
really really read the postee before making myself out to be a fool. This is the second time that I've argued with someone over something they clearly already know. >_< Regardless, I'll leave it up (again, I did this in another post) in case anyone finds the info useful, and you have all permission to slap me later.