Disable double buffering entirely or render cursor without double buffering in OS X?

2

1

Currently, in OS X, the entire system is drawn using double buffering through Quartz. The purpose of this is, as far as I know, to eliminate screen tearing.

The reason I would like double buffering to be disabled is because of the mouse lag that it creates, and I am absolutely certain that double buffering is the root cause of all mouse lag in OS X (other than mouse acceleration, which I have disabled by using Razer's proprietary mouse drivers with my Razer DeathAdder).

If I boot OS X with an unsupported video card, the entire OS becomes very laggy, because QE/CI is not supported on the video card and is therefore disabled. However, double buffering is also disabled when I do this, as I can see screen tearing when I shake windows or move the mouse quickly. When boot this way, and double buffering is disabled, the mouse is perfect, just like it is on Windows. No input delay, no acceleration, just raw mouse movement.

I want to know how either double-buffering can be disabled across the entire system, or maybe even if there is a way to draw the mouse outside of Quartz, so that it is not double buffered.

Kale Muscarella

Posted 2012-07-30T19:24:46.423

Reputation: 1 080

I've never seen mouse lag of any kind on any graphics system Apple has shipped. Which exact model Mac is this on? (Include your "MacProX,Y" model identifier from System Profiler / System Information). What happens when you use the graphics card that Apple built into your Mac? – Spiff – 2012-08-02T01:42:03.007

This is the strange thing. Most people who have used a Mac for a while say "no, I don't notice any mouse lag." Yet, anyone I know who's coming from Windows and plays a lot of FPS games (and therefore would notice the input delay) and tries a Mac, they notice it right away. I absolutely assure you that there is input delay. Not lag as in framerate lag, but delay. 32 milliseconds, to be exact. I have a MacPro3,1. Read more about this here: http://d43.me/blog/1205/the-cause-for-all-your-mac-os-x-mouse-annoyances/ . I'm not the only one.

– Kale Muscarella – 2012-08-02T02:39:23.357

Mouse pointers are usually hardware based and rendered kinda like an old school sprite. So the problem might be in how/when the registers/memory for the hardware mouse pointer are being updated when Quartz is active. – Brian – 2012-08-03T22:22:08.727

Answers

2

I think what you want to disable is Beam Sync. This can be disabled through Quartz Debugger, an application that is part of the Xcode Developer Tools.

More information can be found here: http://forums.macrumors.com/showthread.php?t=779950

(Note: Take the above with a grain of salt. I do not own a Mac and found that nearly 3 year old forum thread with Google. There are more recent threads though, just none as detailed).

Rain

Posted 2012-07-30T19:24:46.423

Reputation: 2 238

Almost! Disabling Beam Sync did seem to disable double buffering for everything... except the cursor (which is the problem for me). This is still very helpful though! If there's a way to disable double buffering for the cursor as well, then this would be awesome. – Kale Muscarella – 2012-08-01T21:33:04.137

@Huskehn: I don't think the cursor is separately double-buffered. I'm not even sure what that means :D – Der Hochstapler – 2012-08-04T18:14:22.000

1

It seems Pro Tools starting with version 8 has an issue with Beam Sync. Basically it's a form of double buffering that OSX uses when drawing Quartz windows.

  • Get a preferences pane called Secrets.
  • Open Secrets and go to the System settings.
  • Look for Beam Sync and set it to disable.
  • Set Enable Quartz Extreme to On.
  • Reboot.

While running Pro Tools (and having the screen redraw slowly), you open this app, press Cmd+1, and disable Beam Sync and ensure that Quartz Extreme is On. You will immediately notice a perfectly smoove and beautifully working Pro Tools.

Rather than having to open Quartz Debug every time you run Pro Tools however, Secrets is the easiest way to set the OSX preference for this semi-permanently. For some reason however, the preference for Beam Sync occasionally gets set back to Automatic and you need to reset it.

Hope it helps.

Ahmed Bilfaqih

Posted 2012-07-30T19:24:46.423

Reputation: 1 844

This doesn't seem to work like it does with Quartz Debugger. The settings revert once I restart (I did press "Update Secrets"). Note that I'm on Mountain Lion. – Kale Muscarella – 2012-08-04T20:27:38.193