The cause for all your Mac OS X mouse annoyances

…is 32 milliseconds.

The main problem of mouse movement in Mac OS X is not acceleration — it’s lag.

By that I mean a delay between receiving movement data from the mouse device and rendering the on-screen cursor. The lag of a Mac OS X cursor is at least twice bigger than Windows’ cursor and yes, a human eye can surely notice that.

I mentioned acceleration because a lot of people often confuse it with lag. The truth is, in Mac OS X you can change acceleration to whatever you want using many programs and techniques. In ControllerMate, for instance, you can manually draw your own acceleration curve.

But it’s all pretty much useless as long as mouse movement is literally retarded, because it takes a lot of time for your brain to get used to it.

The problem I’m talking about affects all mouse and touchpads since at least Mac OS X 10.4 Tiger. It still exists in Snow Leopard and Lion.

The problem is caused by a bug somewhere at the windowserver level of Mac OS X, and not by a mouse driver. You can supposedly avoid the issue by disabling QuartzExtreme.

The problem is as well closely related to the cursor jumping issue that has alone been fixed in Lion thanks to all our bug reports.

The problem has been confirmed by an Apple engineer. I’ve also heard that they are supposedly working on a solution. The timeframe is unknown though.

More information to follow.

* * *

Update. To put it short:

  • Yes, Mac OS X (any version) is less suited for gaming and design.
  • Lag gives “floating” feeling which is often confused with acceleration.
  • No, you can’t do anything about it other than switch to Windows or Linux.

* * *

We’re in need of C++ programmers interested in solving the problem. We already have a solid codebase but we encounter tons of bugs with Apple’s cursor movement API’s, and that is the reason why the fix takes so long to develop. Right now we’re looking for someone willing to experiment and invent workarounds. If you know someone who could be interested, please email me at dae@cyberic.eu.

* * *

This entry was posted in Bugs and tagged , . Bookmark the permalink.

74 Responses to The cause for all your Mac OS X mouse annoyances

  1. radomeer says:

    thankfully, somebody else noticed this lag. other mac users thinks i’m insane when always complaining about mouse cursor but i don’t understand how they can’t see it.

    thanks for your job in cursor jumping issue and hoping to solve this one as well.

  2. Igor says:

    Logitech also has acknowledged than as a problem,but seems like Apple just doesn’t care.Looks like also the Mac users are not bothered with this.
    I dont think they will change this.

  3. chris says:

    This is the only reason I don’t use Mac for photoshop… common Apple what the heck.

  4. Martin Williams says:

    I have a macbook air running Mac OSX 10.7.2 and Adobe Reader X v 10.1.1. When moving the cursor over the page using the touchpad or mighty mouse the logic is offset by a couple of centimetres to the left at an angle of 4 o’clock. If the visible cursor is moved to the top of the page it disappears and reappears where the true position is. This is extremely frustrating, has anyone else reported this problem?
    best regards

  5. Stephane Bouvet says:

    This cursor lag drives me crazy since years. But I discovered something interesting. When I use Synergy between my Mac and my PC at work (Synergy server on the PC), the lag completely disappears.

  6. Ian says:

    Hey all,

    I noticed the problem still persist till today…

    I use a Razer Mamba 4G.

    The frustrating thing happens a lot during games and being a RTS player where some elements of the game require certain “micro-management” i notice the glaring jibber-jabbering of the mouse cursor even more~~ Cursseess~~

    In any case hope some one does fix it.

  7. Gustavo says:

    Just installed Mac os x Lion on a PC and the my Logitech mx revolution cursor (which works flawlessly in windows) was driving me crazy! Thanks God I found this post!! Although I really liked os x, I’m now going back to windows because of that, which i consider totally unacceptable…

  8. CHNinUSA says:

    I just bought the Logitech mx in Amazon, it’s said a perfect mouse, but it turned out to drive me crazy, even worse than my old mouse, I didn’t have the lag problem with Logitech M305 previously. It seems has a very low priority for the mouse driver that whenever there is a intense program running (open a new tab in Chrome) the mouse then drags! do you think Logitech or Apple will fix this? or I will consider return this “perfect” mouse. Thank you!

    • Dae says:

      You will have the windowserver level lag with any mouse in Mac OS X.

      Do you have Logitech Control Center installed? If so, uninstall it and see if it gets any better.

  9. Moa says:

    I’m also experiencing this bug with my new Logitech Anywhere MX. Seems like the best option is to just return it. I’ve got an older, really cheap Logitech mouse that works like a charm, guess I’ll have to stick to that.

    Thanks for your post about this issue, probably saved me a lot of headache! :)

  10. Stephane says:

    A question for Dae:
    how did you do to find the 32 milliseconds ? This is a very accurate result !!

  11. Andreas says:

    Dae,

    Could you provide some links or articles about how the lag was recognized as 32 ms?

    Is there a bug report somewhere? Where does the Apple engineer confirm the problem?

    Information like that would be helpful, thanks.

    • Dae says:

      Hi Andreas,
      I will provide more information in the future, a lot is being done towards that day.

      To put it short, initially it was my theory based primarily on strangeness revealed by a program that we wrote, and then — not long ago — it was confirmed by one of the engineering team leads at Apple in a private email correspondence with me. He also provided the exact value of 32ms, although I thought the lag was smaller.

      I’m sure it’s possible to write a program which would prove the theory, but instead we chose to focus on finding ways to fix the actual issue.

      I filed a bug report #10175417 in September. It’s still open and I haven’t received any response, which is actually a good sign.

      If you’ve more questions, you’re welcome to email at dae@cyberic.eu

      We’re also in dire need of C++ programmers.

  12. Dae says:

    I updated the post.

    Quick facts:

    Yes, Mac OS X is less suited for gaming and design.

    — Lag gives “floating” feeling which is often confused with acceleration.

    — No, you can’t do anything about it other than switch to Windows or Linux.

    We’re in need of C++ programmers interested in solving the problem. We already have a solid codebase but we encounter tons of bugs with Apple’s cursor movement API’s, and that is the reason why the fix takes so long to develop. Right now we’re looking for someone willing to experiment and invent workarounds. If you know someone who could be interested, please email me at dae@cyberic.eu.

  13. Nick F. says:

    My experience is different and yet the same. Specifically – the lag of the mouse is painfully obvious only when using a bluetooth mouse. My MacBook (2008) track pad and my _bluetooth_ magic trackpad both are highly responsive feeling and precise. I have an older USB Microsoft optical mouse … works great on my Mac Pro. But the bluetooth mighty mouse I got with the Mac Pro was simply too laggy to use. I also thought it was an acceleration issue at first, but slowly realized that it was not something resolveable by altering acceleration curves. I thought maybe it was just that mouse. But I have tried other bluetooth mice, including my current Logitech bluetooth travel mouse, and they are all painfully laggy. If I bootcamp into Windows 7, the bluetooth mice work just perfectly fine, so I know it is OS X and not Windows. Ultra-lame issue.

    • Ryan says:

      Bingo! You nailed it right on the head. I’ve tried 3 bluetooth mice too.

    • w0uter says:

      I have a similar experience. When I was still using the Apple Magic Mouse, it drove me crazy for various reasons. Never paid too much attention to the lag because I simply concluded the magic mouse sucks in too many ways (which it does), so I bought a Magic Trackpad (it works better with my cramped workspace anyway). With the trackpad, response is simply perfect, I’d say its much better than using a mouse under linux or windows.

      I have no idea what the technical reasons behind this mouse lag are, but the Magic Trackpad shows it isn’t some fundamental issue with OS X input handling or bluetooth.

  14. Apfeleimer says:

    Even if my curser lagged 3,2 sec. I would NEVER even think of using WinDOS! :D
    Or are the slightly smearing wipers on your new Bentley a reason to buy a Dacia instead? :-P
    Seriously, I never noticed that lag and I spend A LOT of time w. my Macs.

    • Dae says:

      Or are the slightly smearing wipers on your new Bentley

      “Slightly inert steering wheel” would be a more precise metaphor.

      In fact a lot of people don’t notice the problem. Some don’t even notice the jumping bug which makes almost all gaming, high-precise mice useless for OS X.

      Well… I’m happy for them.

      • Antony says:

        When you say a lot of people don’t notice it, I guess you can count me in, because I honestly don’t know what I am looking for that 32ms delay. Personally, I have bigger issue where after connecting to an external display (especially one that has much higher resolution than the 15″ Macbook pro), my mouse cursor would sometimes disappear. I would then have to move my fingers on the touchpad like a mad man, before it magically shows up again. Maybe that’s related to the lag? or simply a case of cursor getting stuck in the bottom of the bigger resolution display.

        Furthermore, when I do connect the Microsoft Wireless Mobile Mouse 6000 (it is a pretty good mouse by the way) to my iMac, I do notice an occasional lag or cursor stuck, but I blame it on nearby wireless interference to the signal from the mouse to its USB dongle.

        Maybe you can update the article with a short experiment for everyone to try it out to notice that 32ms lag?

        • Dae says:

          I think it’s not easy to start noticing the lag out of sudden if you haven’t noticed it before. It’d be interesting to see, however, the reaction of people who don’t notice the lag when they try the fix that we’re currently developing.

  15. Matthijs says:

    32ms… that sounds like the time taken to display two screen frames at 60 Hz.

    Observation: when I quickly select text using the mouse, there is no lag between the mouse cursor and the selection of text.

    I’m assuming Mac OS X uses double buffering for graphics. Here’s what I think is happening in the worst case:
    1. A frame is drawn onto the back buffer. (current time: 0ms)
    2. You move the mouse just after this is done. (current time: 0ms)
    3. After the next vsync, the back buffer is drawn. (current time: 16ms)
    4. A new frame is drawn onto the back buffer, with the new mouse position. (current time: 16ms)
    5. After the next vsync, the back buffer is drawn. (current time: 32ms)

    If the assumption is correct, this leads to the following conclusions:
    1. The mouse itself does not lag, but merely the graphical representation of it.
    2. Your statement “Yes, Mac OS X is less suited for gaming and design.” is false. All games and design apps use double buffering (or in some cases, triple buffering), otherwise incomplete frames would be shown.

    Regarding Windows: I suspect Windows uses a different, ancient technique to draw the mouse cursor: sprites. With active sprites, the GPU draws them on top of the displayed frame without having to manually draw them into the back buffer. If this is true, selecting text (like the observation above) will result in the selection lagging after the mouse cursor.

    Note: if you have access to a display with a faster refresh rate than 60Hz, you will notice less mouse lag if you use that display. If my assumption is correct, of course.

    • Sean says:

      Precisely correct. All graphics driven by Quartz (OS X’s native rendering engine) are double-buffered, which is why you don’t see the tearing artifacts you generally do in Windows when working with video.

      That said, I believe the cursor drawing happens in hardware, outside of the Quartz pipeline, so maybe the anonymous Apple engineer believes it possible to work around the issue. But the putative 16ms difference between Windows and OS X is half the length of a NTSC frame, well within the threshold of persistence of vision, and no, it’s not noticeable without far more precise equipment than the human eye.

      The more likely reason why Windows users have “some sort of a gut feeling” that the mouse isn’t as snappy on OS X has to do with clicking: OS X sends click events slightly after mouse-up, not on mouse-down.

      • Eugene says:

        Clicking is on mouse up on windows as well. Well, a useful action usually happens on a mouse up. This is a basic UI paradigm and it behaves very similar on any OS. Software gets both mouse up and mouse down events.

      • Dae says:

        it’s not noticeable without far more precise equipment than the human eye.

        The difference could be larger than that.

        But surely I can notice it the next few seconds after I start using the OS.

        OS X has to do with clicking:

        I’m talking about movement lag here.

  16. alex says:

    “Yes, Mac OS X (any version) is less suited for gaming and design.”

    What does this have to do with design work?

    “No, you can’t do anything about it other than switch to Windows or Linux.” … “Right now we’re looking for someone willing to experiment and invent workarounds.”

    So it sounds like you think there *is* something one can do.

    • Dae says:

      Design obviously involves a lot of precise mouse-work. Browsing Facebook and listening to music doesn’t.

      So it sounds like you think there *is* something one can do.

      What I meant to say is that if you have work to do and you can’t stand the lag, you’d be better off switching to Windows or Linux temporarily until a stable fix is found.

      But yes, yesterday we finished the first generally useable version of our fix and I’m using it right now. It feels good, but not completely perfect.

  17. Aaron Jackson says:

    I’ve never noticed this, but now it’s been pointed out it seems fairly obvious. I’ve always enjoyed using the touchpad on MacBook Pros, and no longer do I like an ordinary mouse. I always miss the swipes and two/three finger things. The most annoying thing I have found is in web browsers where it takes you back pages if you swipe with two fingers.

  18. mac user says:

    I’ve used Macs for 20+ years. Never noticed a mouse lag. I never play computer games.

    Can you please explain in detail how this lag manifests itself?

    • Dae says:

      Well… It’s some sort of a gut feeling. You move a mouse and you already expect your cursor to be in desired place but instead it reaches a tiny bit late. It’s annoying.

      I’m sure if I had used Macs all my life I’d have never noticed this.

      • Rob T says:

        Bingo.
        Ive heard from other people who migrate from linux/win that the mouse feels toolatent or mushy in osx. Sounda like you juat need to get used to our new overlords.

      • John Adams says:

        First off, where did your timings come from? How did you calculate this delta and land on the 32mS number?

        As someone who spends an incredible amount of time dealing with audio and video work (on macs, primarily), I have to say that while you may have discovered an apparent ‘lag’ in the mouse motion, going as far as to say that it renders the system useless for “design and gaming” is pretty specious to say the least.

        Around 7-10mS is the threshold for people identifying differences in audio. The human eye is far slower. We’re able to perceive changes at very fast speeds (say, 200fps) but at that rates we’re only able to see extremely high contrast changes in images.

        At 32mS you’re talking around 3 frames of video, so that should basically be imperceptible. Maybe you’re using a bluetooth mouse which is adding additional transmission lag, or you’re not accounting for the acceleration algorithm used for mouse movement.

        WRT to switching to linux or windows – it’s possible the defaults for that OS have the mouse acceleration set faster than (IMHO) the slow mac default speed.

        • Dae says:

          My timings come from an Apple engineer who confirmed that the mice in OS X “tend to lag behind the screen by a full refresh” and also said that he’s working on a fix.

          renders the system useless

          Where did I say that? I said that it is less suited, but certainly not useless.

          but at that rates we’re only able to see extremely high contrast changes in images.

          Great — it looks like we’re also approaching a biological breakthrough here.

        • Alejandro says:

          I’m a professional designer. This lag is very noticeable and makes precise design work very tedious. I’d be mucho more productive were it not for this lag.

          Thanks Dae for posting and going on a quest to fix this.

  19. Terlisimo says:

    I hate you.

    I did notice something diFFerent about Mac’s mouse feel, couldn’t really put my finger on it.

    Now that I know it’s a technical issue it will annoy me to no end.

  20. Stuart says:

    I’ve noticed this lag as well, however I’ve always chalked it up to ‘blutooth’ overhead/lag.
    I’ve been using the Logitech Anywhere MX, that comes with it’s own proprietary transceiver, which seems to perform much smoother for me.

  21. aristidesfl says:

    fix this please

  22. Eugene says:

    Finally! Every mac user I complained to about this looked at me like I was crazy. (I thought it was acceleration problem too.) I am vindicated!

    I exclusively use macs through VNC because of this.

    • w0uter says:

      You’re kidding right? Please tell me you are not actually using macs through VNC because of a 30 something millisecond mouse lag, because that sounds like taking your bike to work, because your car takes longer to accelerate from 0 to 10 mph :-/

      • Dae says:

        I have been using Synergy for months because of this issue.

      • Eugene says:

        Nope, not kidding. The mouse thing is very annoying (for me). I constantly work on windows/linux machines and switching to mac is jarring. I was suspecting my KVM is at fault, but connecting directly has the same feel.

        Actually my problem still might be with acceleration (or rather deceleration): no matter what I tried with acceleration settings I couldn’t stop cursor from slowing down considerably at some threshold. Normally I can move mouse across 2 monitors from side to side in one movement. And the speed is not very different if I move fast or slow. On mac I would be forced to _lift_ the mouse (the horror!) to do some precision moves, because I run out of surface to navigate some 20 damn pixels! Moving cursor at average speeds felt just fine though.

  23. Yehat says:

    Initially the mouse handling in OS X was very confusing (for a guy coming from Linux and Windows), but found how to deal with, however my setup is very un-Apple, in order to guess how this replicates.
    I’m on a hackintosh, using Logitech MX620 (wireless) and before using USB Overdrive, the mouse handling was driving me crazy – acceleration, cursor jumps… Tuning the speed and acceleration in USB Overdrive – now works as I expect.

  24. ElricVIII says:

    Is this why when I tried giving Starcraft II a go it felt so “off” in terms of mouse control? (I guess so. [I hope there's no SC2 tryhards around because they'll just say it's because I suck.])

  25. Nick says:

    Having my macbook pro hooked up to the same KVM as my windows 7 machine and switching instantly between them, this is so noticeable it hurts. Naturally my mac using friends never notice it, because it’s what they’re used to. I’ve been told that the mouse acceleration is different on a mac, but even when trying USB overdrive and other tweaking apps it still just seems *laggy*. Thanks for confirming this! hopefully someone fixes it.

  26. Orion Edwards says:

    Hrm… I’ve played mac versions of Call of Duty, Starcraft II, and various other things, and while graphics performance on OSX is certainly lower than windows via bootcamp, I’ve never noticed any mouse skipping or lag issues.

    I used to be a hardcore quake 3 player back in the day, and while I wasn’t the best, I could most certainly tell the difference between playing on a LAN and with a 30ms internet conneciton lag, so I’m pretty confident I’d notice a lag as large as 32ms on mouse tracking!

    One note: While I’ve used mice from Apple, Microsoft and Logitech for gaming on the mac, I’ve *NEVER* installed any custom mouse software. Are you sure this is not just something to do with crappy logitech custom drivers or something?

    • Igor says:

      If you dont notice the lag good for you.
      For my self this is #1 problem with Mac OS.
      Good to know that someone is working on this.

  27. Michael Brian Bentley says:

    I’m playing with it now. There’s no noticeable delay. I have noticed in the past how the first keypress in a while would get dropped, but that no longer appears to be a problem as I haven’t seen it in weeks.

    One thing I do notice is that when I move the mouse from being stationary, the mouse cursor updates do not update fast enough to provide the perception of smooth movement; I see (on this laptop) the cursor, then the cursor to the right by 1/2 inch, then another half inch to the right, and so on.

  28. Miles Jacob says:

    I used the Mac OS for 20 years. When I discovered this bug about 5 years ago I switched to XP. There is no issue more important than “lag” in all of computing to me (it ruins many many 360 and PS3 games as well). Given how little people seem to care it seems I’ll be sticking with 1990s-era game consoles and operating systems and analog CRTs till the day I die.

  29. Eric Ripa says:

    Great article, simple explanation and really good news that you’re working on a fix for this annoying little issue!

    Gaming sure is affected by this. Myself I’m kind of used to switching between my Windows work laptop and my Macs so it’s not a big issue for me, but I would love to see it fixed once and for all.. I would love to have a more “eager” mouse in OS X.

  30. Alejandro says:

    So does the newest version of Lion fix the issue?

  31. Nerfgun says:

    Well that’s surprising.

    I run an almost ideal setup for testing this: a new iMac, with a magic mouse. I also Boot Camp the thing into Windows, where I switch to a Logitech MX Revolution mouse, for Steam gaming. On the Mac side I do design work in the Adobe suite daily, Photoshop and a lot of video editing.

    If you are claiming there is a frame of difference between the two in responsiveness… I sure as hell have never seen it.

    The way you word this post (the sweeping dismissal) makes it pretty clear you just found some vague, obscure talking point and feel like swinging it around for a bit. It’s your blog. But I there are better things to pick on in OS X than this.

    • Dae says:

      Nothing annoys me more than lag in OS X.

      I didn’t really want to spend my time opening people’s eyes on the problem, because it’s pointless. You either see it or you don’t. Even if I provided undisputable evidence, there would be sceptics who’d say that it’s not a bug but a feature. Or Mac way, think different and all that shit.

      And this post was dedicated to those who see it, but not sure what is it exactly and how to name it.

  32. pixartist says:

    If you’re on a PC and wanna know what 32 ms mouse-lag feels like, I made a tiny XNA app which simulates it: http://www.file-upload.net/download-4094939/Release.rar.html

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>