DX Performance

Hey everyone

I’ve got some general discussion points about DX performance in VVVV:

1. Which should be better:

  • Geforce 8800 - Monitor 1680x1050, DualHeadToGo 768x2048, or
  • Geforce 8800 - 768x1024,768x1024, Geforce 8400 - Monitor 1680x1050

So in this situation we’ve got 3d objects with shaders running on the 2*786x1024 heads (being fed to projectors).
And similar things being rendered to the monitor, but with different shaders.

Essentially, what’s the associated performance hit of

  • Splitting worlds across graphics cards
  • Using abnormally large render windows (as seen in Tirple/DualHeadToGo usage)?

2. Is the preparegraph done by the CPU or the GPU?
The preparegraph seems to refer to creating the transformation matrices to be fed into the shader. When this becomes a significant performance hog, it should in principle be possible to move some transformations over to the shader, so they can be performed on the graphics card.

Can anybody confirm that the preparegraph refers to making the transformation matrices? i presume it will include other activities as well.

3. What is “present”??
The “Timing (Debug)” node has an output named “Present Time”. What does this refer to? I seem to be loosing 1/3 of my time to the present

1. Which should be better:

Geforce 8800 - Monitor 1680x1050, DualHeadToGo 768x2048, or

Geforce 8800 - 768x1024,768x1024, Geforce 8400 - Monitor 1680x1050

i’d rather go for the second option. as soon as you have different resolutions out of the 2 heads of a single card 2 directx-devices are used internally, which means that memory isn’t shared between the heads anyway.

Essentially, what’s the associated performance hit of

Splitting worlds across graphics cards

Using abnormally large render windows (as seen in Tirple/DualHeadToGo usage)?

i’d say splitting across graphiccards should be similar to using the 2 outputs of a single cards in dualview mode, ie. using two fullscreen renderers.

2. Is the preparegraph done by the CPU or the GPU?
The preparegraph seems to refer to creating the transformation matrices to be fed into the shader. When this becomes a significant performance hog, it should in principle be possible to move some transformations over to the shader, so they can be performed on the graphics card.
preparegraph is on the CPU.

Can anybody confirm that the preparegraph refers to making the transformation matrices? i presume it will include other activities as well.
it includes all computations done on the CPU, including transformation. and yes you can do some things in a shader which you can also do in a patch.

3. What is “present”??
The “Timing (Debug)” node has an output named “Present Time”. What does this refer to? I seem to be loosing 1/3 of my time to the present
this is present. present is by default tied to the monitors refreshrate (typically 60fps on tfts). in the Renderer (EX9) try Presentation Interval you can change it to “immediately” to get higher framerates and less time spent for present. but you’ll also get undesired tearing.

thus long present times can be a good sign. telling you that your patch is not yet on its limits.

thanks joreg for the in depth reply