Disable VBL sync for better performance (if you don't mind tearing..)

psonice's picture

Just tried this out as I have a comp that does offline rendering (yeah.. without quicktime or quartz crystal ;) and it's taking many hours to render. And I'm inpatient.

If you disable VBL sync (it's in the hidden preferences under editor), the rendering now longer has to wait for the screen to refresh before starting the next frame, meaning it can start sooner and doesn't spend any time just waiting around.

This makes QC's rendering quite a bit quicker. My estimated render time for this comp was 2 hours 40 minutes, it's looking like it'll finish in 1 hour 40 with VBL off. That's over 30% faster!

The comp is running at ~35fps on average, so the reason is pretty obvious: with VBL on, it can only render at max. 30fps as it never reaches 60. If it drops below 30fps, the next limit is 20, so it's fluctuating between 20 and 30fps.

The downside is that with VBL turned off it can draw a frame while the screen is refreshing, which causes nasty tearing. If tearing isn't an issue, turn VBL off!

I'll post some details of this project once the video is done. It's kind of a good showcase of what can be done with QC :) Nothing too stunning to look at, but it's handled a tough project extremely well.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

gtoledo3's picture
Re: Disable VBL sync for better performance (if you don't ...

I've tried disabling VBL sync extensively (during realtime playback), and I haven't noticed screen tearing yet. I'm a little leery of using it for a project, but things have been so good with that, that I'm on the edge.

Have you actually seen any tearing?

(note: Any clarification on the offline render method? I guess you're just using terminal to trigger the offline render, using the QC functionality? That's been supported since 10.5 I think.)

psonice's picture
Re: Disable VBL sync for better performance (if you don't ...

I've not seen tearing, but in this case it would be damned hard to see it at all. The screen updates maybe once a second, except for at tiny video thumbnail which plays in one corner.

I did just make a test case (horizontally scrolling black + white stripes), and I could just make out slight tearing, so it does happen. I doubt it would be much of an issue in most cases.

Offline rendering: see my other post: http://kineme.net/forum/Applications/Compositions/TimelapseQC

I'm just stepping through a massive list of images on the left, and dumping an image back to disk with a modified image writer on the right :) It's possible to do offline for anything with this method: you just need to write your own timer with javascript, increment the timer by 1/framerate each frame, and base the rest of the comp's timing on that timer.