Vincent Benchmarks

Did anyone tried the Vincent implementation and their demo on a real device? If yes - what performance did you get?

on Dell Axim 5. Pocket PC with Windows Mobile 2003. I used regular ARM build, with no Xscale. Got 20-23 FPS

That’s pretty low. On an X3, I used to get ~37.5 frames (sometime between 0.70 and 0.80). Which I considered far from desirable. Once I get those 1.1 features for the competition out of my way, I’ll look into the performance issues again (what I know of is logged in the bug database under the "Performance: category.

Anyway, it would be good to get numbers from users with other devices as well.

  • hm

Hi, guys.

I also had noticed a slow-down of late, and I believe I’ve found at least part of the problem.

I’d noticed that Vincent was creating ‘dumpn.txt’ files even in release builds. Didn’t seem like the thing one would do in release builds, I thought, so I searched the source and found where the files are created. As I expected, they’re in preprocessor blocks of ‘ifndef NDEBUG’. Curious, says I. I checked the project settings for Vincent, the code generator and my project; all had ‘NDEBUG’ defined in release builds. Thinking ‘that’s impossible’, I took another look at the preprocessor code, and voila!

All the preprocessor blocks containing code meant to compile only in debug mode are written ‘ifndef NDEBEUG’.


Hans-Martin - I wasn’t comfortable making a global change like that in the CVS source - I’ll let you. I figured I’d post this here, though, so other interested parties can modify their versions.

PS - I’m still getting around 27-30 fpps running ‘test’ on an X3.

[ August 31, 2004: Message edited by: DaveR ]

That’s almost embarassing. :slight_smile:

Dave, feel free to check the changes in, I am currently working on a different branch (1.1) and would have to set up a new source tree.

In any case, the impact should not be that big because for the example the JIT is only invoked once at the very beginning.

I think the main reason for the slow down is additional instructions that got added to the inner loop to correct the rounding and saturation behavior, and there is probably a smarter way to do this.

  • hm


I’ll take care of it.

BTW, I realized that the main change between 0.7 and 0.8 is the fact that mipmap selection is now done on a per pixel base (rsp. per linearly interpolated sub-span) vs. per triangle base.

I am contemplating with the idea of either abusing the perspective correction hint for doing per-triangle mipmap selection, or by providing a second configuration that will have higher performance at the expende of not passing all individual tests of the conformance test suite. (That configuration would also be a bit more “sloppy” on blending and modulation). Still not sure which approach is better, but adding support for multiple configs has been on the list of planned enhancements for quite a while.

  • hm

Where do I find the benchmark you guys are referring to?

I looked around on the sourceforge site and didn’t find this benchmark app in the samples or binary distros for Vincent.

There is a “test” folder in CVS at the same level as the “redbook” examples. It’s a textured car model (~750 tris).

  • HM

PS: The mipmap strategy is now a configuration parameter for Vincent (0.83).

[ October 18, 2004: Message edited by: Hans-Martin Will ]

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.