A new benchmarking tool...

Colourless said:
Hyp-X, here's a new ComStreamDump that will let you get past the 86 problem (which was CreateDepthStencilSurface). http://www.users.on.net/triforce/csd.zip

Cool. Everything is dumped correctly now.

Hmm. There's still some redunant state changes I have to kill... ;)

This is an excelent tool now - and not necessarily just for benchmarking.
Btw, tell me if you need the source of a shader disassembler so you can dump the shaders from Create*Shader calls.
 
Shader disassembler... not at this stage. I might want one at some time in the future when things start becoming a bit more featured.

Anyway, it's way past my bedtime so I"m not going to be around for a bit :)
 
Great tool... does not work with FableMark though (should be DX8 IIRC).

Now really great would be some kind of hotkey support so only sections are dumped rather than everything from the start.

K-
 
Armunn said:
I agree with Kristof, maybe you could use scroll lock to start and stop the capture? Great tool though
Very difficult... For example, say a state was set once at the beginning and never again. If you don't capture it that first time you could have a mess.
 
Clourless alot of great work hopefully this will allow benchmarking of none benchmarkable games in the future!

(also will hopefully allow EA games to be properly benched on ati hardware ).
 
woo, the .lcs files are so big, have you try to use any compress tech to reduce the files size ?

lcs.png
 
Colourless, are you recording all the information in each frame even if they don't change in a period? If so, is it possible to reduce the file size by not recording redundant information? That'll make this tool even better, and I'm really looking forward to this feature. :p
 
991060 said:
Colourless, are you recording all the information in each frame even if they don't change in a period? If so, is it possible to reduce the file size by not recording redundant information? That'll make this tool even better, and I'm really looking forward to this feature. :p
But then Hyp-X would not be able to optimize his game by detecting and removing redundant state changes by the help of this tool anymore...
 
OpenGL guy said:
Armunn said:
I agree with Kristof, maybe you could use scroll lock to start and stop the capture? Great tool though
Very difficult... For example, say a state was set once at the beginning and never again. If you don't capture it that first time you could have a mess.

Never said it was easy... but what if a game kicks in with a non-skippable movie... often these movies are stuck to a polygon and streamed to the HW don't want to capture all of that...

You'd need to cache all the state and when the dumping starts write out the current D3D state.

K-
 
First off, very nice Colourless! This kicks D3DSpy's butt. :D

Secondly, I think some sort of "browser" (or for the fancy word fetishists out there an "explorer") for the stream data might be interesting. It could do stuff like disassembling shaders (as Hyp-X mentioned), preview surfaces / textures, visualize vertex data, etc.. Right. /me needs to stop dreaming. If you're interested though, I'd be glad to give you a hand, having done quite a bit of D3D8-9 stuff myself.
The browser could also do some clever post-processing, like marking "static" textures (ones that are rendered directly to screen and not used in any rendertarget operations) and replace those with something generated on the fly (checkerboard) to reduce file size.
 
Firstly answering questisons.

Kristof said:
Great tool... does not work with FableMark though (should be DX8 IIRC).

Now really great would be some kind of hotkey support so only sections are dumped rather than everything from the start.

Kristof said:
Never said it was easy... but what if a game kicks in with a non-skippable movie... often these movies are stuck to a polygon and streamed to the HW don't want to capture all of that...

You'd need to cache all the state and when the dumping starts write out the current D3D state.

Will look at FableMark.

As. OpenGL guy said it's difficult. What I might do is add in hotkeys that will allow you to ignore certain changes (such as the constant updating of a single texture/surface). However, it should be possible to do implement writing a resource to disk when it's used, and ignoring usage of resources.

cho said:
woo, the .lcs files are so big, have you try to use any compress tech to reduce the files size ?

The files already are compressed. I use the LZO Realtime compression library. It's compression ratios are not the best, but it's the decompression speed that really matters for me. At one stage I was using zlib for compression but it was just far far far too slow at decompressing.


991060 said:
Colourless, are you recording all the information in each frame even if they don't change in a period? If so, is it possible to reduce the file size by not recording redundant information? That'll make this tool even better, and I'm really looking forward to this feature.

It all gets recorded.


[maven said:
]Secondly, I think some sort of "browser" (or for the fancy word fetishists out there an "explorer") for the stream data might be interesting. It could do stuff like disassembling shaders (as Hyp-X mentioned), preview surfaces / textures, visualize vertex data, etc.. Right. /me needs to stop dreaming. If you're interested though, I'd be glad to give you a hand, having done quite a bit of D3D8-9 stuff myself.
The browser could also do some clever post-processing, like marking "static" textures (ones that are rendered directly to screen and not used in any rendertarget operations) and replace those with something generated on the fly (checkerboard) to reduce file size.

More advanced features will eventually come. My plans include things like you've suggested.


Now, other things....

I've uploaded a new version. Changes are fairly minor. Just make it now compatible with Windows2000. Same url as before. Also include some 'documentation' which is pretty much just says exactly what my first post says.

Anyway, that's it for now
 
is there any way that you can disable recording unless a key is triggered?

the files become unesseserilly large if you just want to do a short benchmark but it still records all the menus, loading screen etc.

perhaps it could "crop" the file to only include the recorded benchmark part? (sorry if this is a really silly and completely nonsenical idea, I'm treeibly hung over right now and can barely type hehe)

I just tried some far cry recording but the files grew to over 1 GB after just a minute or two
I tried playing it (the recording that is) while only precaching Tex and Com but when I play it back it only shows the first frame and then closes instantly (no error messages or so)
I then tried precaching only Com but then it just gets an error in the player just when the actual 3d part is about to begin (ie after browsing through all menus and when it's loaded my last checkpoint)
 
Ante P said:
is there any way that you can disable recording unless a key is triggered?

the files become unesseserilly large if you just want to do a short benchmark but it still records all the menus, loading screen etc.

perhaps it could "crop" the file to only include the recorded benchmark part? (sorry if this is a really silly and completely nonsenical idea, I'm treeibly hung over right now and can barely type hehe)

I just tried some far cry recording but the files grew to over 1 GB after just a minute or two
I tried playing it (the recording that is) while only precaching Tex and Com but when I play it back it only shows the first frame and then closes instantly (no error messages or so)
I then tried precaching only Com but then it just gets an error in the player just when the actual 3d part is about to begin (ie after browsing through all menus and when it's loaded my last checkpoint)

No, you can't do that at this stage. See OpenGL Guy's comments earlier in the thread. It's not easy to do, but I have some ideas how to do it.

I initially did have a few problem with FarCry but I fixed them. I don't have the retail version though so they could have made a few changes which breaks things.
 
How abut a button that artificially slows down the framerate a lot (just add delays in your wrapper). That way you could minimize the nuber of uninteresting frames while setting up the benchmark.
 
Colourless said:
I've uploaded a new version. Changes are fairly minor. Just make it now compatible with Windows2000. Same url as before. Also include some 'documentation' which is pretty much just says exactly what my first post says.
 
I have seen a tool that can capture D3D streams and be kicked off at any time while playing the game so it is possible. It's not a public tool and it didn't have benchmarking features. I also don't know how it worked so it could have been doing things much differently than Colourless' program.

Has anyone else tried Need For Speed Hot Pursuit 2. It quits after the EA games logo animation. I'm using XP Pro.
 
Back
Top