PDA

View Full Version : PIX in Eve Online


wolfotron
10-16-2006, 02:13 PM
Hello everyone.

Has any of you used PIX (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directx9_c/dxsdk_tools_performance_pix.asp)? For those who don't know, it's a great tool for debugging and analysis the performance of Direct3D applications. It allows you to trace all calls to Direct3D library, together with the parameters, and allows you to browse, and even graphically show, your GPU's resources such as textures, vertex and index buffers, surfaces, and so on. While browsing the list of calls, you can select one, and see a preview of how did the rendering look like at a specific call.

Now, to the real point of my post. Out of curiosity, I've used PIX on Eve Online, traced a couple of frames and was stunned... How inoptimized Eve's Trinity Engine is. Beginning with Draw calls for objects that aren't visible on the screen, through repeating SetRenderStates, consecutively enabling and disabling particular RenderStates, calling SetTransform with the same parameters over and over, with no Draw calls in the meantime, and a lot more of similar stuff...

I mean - EVE looks great and all, and my intention wasn't to bitch about its engine, but I'm wondering - are all the commercial game engines unoptimized like this? Is this the result of building a high level engine with a feature bloat syndrome?

I would try PIX on Doom 3 Engine in Quake 4, or even on Oblivion, but I'm afraid these games eat up too much memory themselves, and they wouldn't leave much for the rest of the system. Has any of you tried PIX on other commercial engines? I'm curious about the results.

Cheers

Michael
10-17-2006, 05:38 AM
Doom 3 engine is using OpenGL ;)

wolfotron
10-17-2006, 06:23 AM
Doom 3 engine is using OpenGL ;)

Touché ;)

But you get the general idea, anyway ;)

bladder
10-17-2006, 06:27 AM
havent tried pix on anything really, but this seems like an interesting experiement. I'd try it but I just don't have any pc games, well, hardly any, and the ones (ie: the 2 that are in workable conditions) i do have are not installed... and well I can't bother.

.oisyn
10-17-2006, 06:39 AM
How is PIX nowadays? I used it 2 years ago but it merely provided me with a call graph and some counters, which was better than nothing of course, but it's dogshit compared to PIX for xbox and xbox360 :). Those capture the state of EVERY polygon and pixel drawn. You can click on a pixel in the framebuffer, and then it shows what polygons and respective shaders affected that pixel, and if you open up that shader you'll see the inputs and outputs of EVERY instruction in that shader. It really is graphics programmer's heaven ;).

We use NVPerfHud for debugging our PC renderer, that's a cool tool too but obviously only for nVidia hardware (don't know if ATi has got something similar)

Btw, I don't know Eve that much, but does it really need a state of the art engine? I mean, it's space you're rendering, you won't be able to see many objects anyway so you don't have to cull that drastically.

wolfotron
10-17-2006, 07:14 AM
<snip> ... PIX for xbox and xbox360 :). Those capture the state of EVERY polygon and pixel drawn. You can click on a pixel in the framebuffer, and then it shows what polygons and respective shaders affected that pixel, and if you open up that shader you'll see the inputs and outputs of EVERY instruction in that shader. It really is graphics programmer's heaven ;).

OMG. Programmer's heaven is a right thing to say :D. I haven't tried clicking on the framebuffer output, I'll check that when I get back from work. In PC version, you can click any call in the call tree and see what framebuffer looked like after that call (which isn't that bad either).

We use NVPerfHud for debugging our PC renderer, that's a cool tool too but obviously only for nVidia hardware (don't know if ATi has got something similar)

NVPerfHud - gotta give it a try.

Btw, I don't know Eve that much, but does it really need a state of the art engine? I mean, it's space you're rendering, you won't be able to see many objects anyway so you don't have to cull that drastically.

Ummm... Eve was awarded for the best MMORPG graphics a couple of years ago (seriously I don't see why). It has decent graphics, but it shows a bit of age now - the engine hasn't undergone any major changes for over 3 years, AFAIR. What does amaze me - EVE isn't using shaders, but a fixed-function pipeline, according to PIX output, at least on my graphics card. And now for the best part - I've got GeForce 7800 GTX, which supports SM 3.0. AFAIK EVE is supposed to use shaders in its engine (yep, I've browsed the EXE and looked for the calls it makes). Go figure.

I'll play with PIX a bit more today, try it out under more games, and share my findings.

Kenneth Gorking
10-17-2006, 09:19 AM
don't know if ATi has got something similar

ATI has created a pluging for PIX that will doll out a lot more info, and it is based on the Xbox pix: http://www.ati.com/developer/atipix/index.html

Too bad I'm using OpenGL :sad:

.oisyn
10-17-2006, 10:00 AM
Interesting! But after looking at that page it seems more than an extra set of counters (although very useful nontheless) than full vertex and pixel shader debugging.

kurtmax_0
10-30-2006, 03:38 PM
eVe doesn't use shaders. It is fixed function. They have talked about making a more advanced client when D3D10 is released.

I must say that, you can tell eVe isn't optimized by simply playing the game. No need for PIX. It just runs SLOOOWWWW... even on good hardware. (Like in 100v100 PvP fights, although some of that could be network latency).

Anyways, even though eVe has horrible graphics (the client is rather stable though, at least I never had problems with it) it's the best MMO ever.... (I don't have my account anymore though, I decided to cancel it because it was too addicting :/)