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
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