suddenly getting very poor performance on a mbp retina 2012. opening a blank window gets me around 64fps, as soon as i create a simple patch the framerate drops to ~20fps. any clue what could be the problem? how could i test if my hardware is ok or is there a quick way to test directx performance in another application?
Just a hunch, but have you tried enabling Increase Timing Precision on MainLoop (VVVV)?
Wow that helped, what is this setting? Why is it relevant? Thank you!
According to @joreg it is calling this method
Please ask him why it isn’t enabled by default :)
@@joreg feature request: please enable by default. thx
yes default would be nice.
- most ppl have to do it every new patch (i guess)
- hard to explain to my students why they have to set depthbuffer and increase timing precision just to have a working 3D patch
@timer: the vendor/bios of your computer has a default setting for the timer precision. laptops usually have a high setting because it saves energy and increases performance. as this is a system wide setting which has to be reset when the application closes (oh, and what if vvvv crashes), we decided not to set it by default when we implemented the feature. but many programs do so, true… we’ll see.
@depthbuffer: open a serious project and count the renderers which actually have depthbuffer enabled… vvvv is for pros, not beginners… ;)
Why does it hurt to have dephtbuffer on? Does it eat GFX/CPU power or memory?
Like you said “enable” it on start up and “disable” it when closing vvvv (crashes may also happen when the setting is done manually via mainloop).
here is a good read: Windows Timer Resolution: Megawatts Wasted
For DepthBuffer, two things:
A depth buffer enabled of course costs memory,since it’s a separate “texture”, so depth buffer enabled increase memory (generally you more or less double it if you depth is d24s8 or d32). Each renderer costs you twice the mem.
Performance wise, no depth buffer bound / depth bound with disabled state gives equivalent performances, even tho I prefer to not bind something that is not needed ;)
Do you think it’s possible to make vvvv run at appropriate fps without increasing the timer freq (and thus power consumption)?
not really, did some tests today on different machines and a value around 2ms seems to be a good trade off between timer resolution and mainloop precision. we are working on a solution.
you can use this tool to test it on your machine and see which software changes it if you open or close it. for example skype sets the value to 10 on my machine and chrome to 1.
ok, now there is a new pin to adjust the timer resolution and the old pin only defines whether a busy wait should be used for the last part the wait cycle.
default is now 1ms for timer resolution and true for increased precision. this is as if the old pin would be on.
might be off topic but patch as example
I could get my 120fps only if I do fullscreen.
is there some reasons why windows mode limit the speed?
CocoonWaveGenerator.zip (63.3 kB)
vvvv syncs the framerate to the screen. there is no need to calculate faster than the images are shown in the renderer. if you want to run faster you have to set the renderer to immediately. this disables the synchronization. why you have 120fps in fullscreen might be a bug, or your system is actually capable of rendering in 120fps.
in the random-ascii-article it stated that chrome is affecting the timer precission, i recently had the same problem, but funny to know that chrome is fast but not energy friendly…