Frame skips

Hi Chris,

We’ve upgraded two of our 2012 Mac Pros to macOS 10.13, and are experiencing frame skips. There seems to be two factors influencing the rate of skips. One is the amount of drawing that the system has to do. For instance, with both the eye window and the client-side console running, skips happen frequently, often in rapid bursts. I haven’t identified any other types of loads (cpu, memory) that could be a factor. The other seems to be totally random. I seem to be able to have the eye window running for long periods with no frame skips, then have a period with frequent skips, and then again no skips.

In OSX 10.8 with a much older version of MWorks, the pattern was a bit different. At the beginning of an experiment, frame skips almost never happened. They would start happening more and more frequently as the experiment ran, and stopped if I turned off the eye window. Now they can start happening as soon as the experiment starts.

This is a high priority issue for us. I spoke with Mehrdad, and we’d like to ask you to try and track down the source of the frame skips. Obviously it would be ideal if they can be eliminated under normal conditions (i.e. with the eye window and Matlab scripts running), either with changes to MWorks or system configuration. I’m happy to help in any way I can.

Best,
Evan

Hi Evan,

To start, it’d be useful to have some hardware details for the systems in question. Can you open Terminal and run the following command on one (or both) of the Mac Pros, then send me the resulting file (sysprof.txt)?

system_profiler SPDisplaysDataType SPHardwareDataType SPPCIDataType SPSoftwareDataType > sysprof.txt

Thanks,
Chris

Hi Chris,

Profiles are attached.

Thanks,
Evan

Great, thanks. Your systems are basically identical to the 2010 Mac Pro in my office, which should make testing easier.

A couple more questions:

  • What version of MWorks are you running on these machines?
  • Do the experiments that exhibit the frame drops include an NI device? If yes, is it a PCIe or USB device? Also, have you observed frame drops in any experiment that does not include an NI device?

Thanks,
Chris

Running MWorks 0.8 on both rigs. We’ve only run experiments with NI DAQ (PCIe) on these rigs.

OK, thanks. I’m currently creating a macOS 10.13 boot drive for my Mac Pro. Once that’s done, I’ll run some tests and get back to you.

Chris

Hi Chris,

I just ran a test where I commented out the line starting the NI device. I verified that the device didn’t start by completing a trial successfully and making sure that the reward valve wasn’t opened. It didn’t seem like this reduced frame skips at all.

Evan

Yes, I don’t think the NI device is involved. I’ve been able to reproduce the issue on my Mac Pro, and my test experiment doesn’t include an NI device. Let me check a few more things and get back to you.

Chris

Hi Evan,

I think the solution is to downgrade to macOS 10.12 (Sierra).

To investigate this issue, I ran an experiment with both the eye window and client-side console window open. Under 10.13, I saw many, many skipped refreshes, even when I wasn’t interacting with any of the windows. Under 10.12, I saw zero skipped refreshes, even when I moved windows around rapidly. All tests were on my mid-2010 Mac Pro running the latest MWorks nightly build (although I got the same results under 10.13 with MWorks 0.8).

As for why there are issues with 10.13, my best guess is that it’s due to changes in the window server that were made in that release. The window server is the process that’s responsible for taking the contents of all on-screen windows, compositing them into a single frame, and getting that frame to the display hardware. Having more (or more frequently updated) windows on screen means more work for the window server. In 10.13, the window server was updated to use Metal, Apple’s modern 3D graphics API. However, the 2010/2012 Mac Pro doesn’t support Metal. Presumably, this means the window server falls back on a non-Metal (probably OpenGL-based) implementation. My suspicion is that the performance of this fallback is less than optimal, which is why the frame skips happen most often when the load on the window server is high.

To downgrade to macOS 10.12, first download the installer. It will probably refuse to run, since you’re already using 10.13. However, if you create a bootable installer (e.g. on an external USB drive), you’ll be able to start up and install from that. If you want, you can give me the external drive, and I’ll create the installer for you.

Cheers,
Chris

Great news, thanks! This will require a clean install, is that correct?

This will require a clean install, is that correct?

Yeah, I think so. Even if the installer lets you do an in-place downgrade (which it probably won’t), configuration and preference files from 10.13 will likely confuse 10.12.

If you have enough free space on your hard drive, you could use Disk Utility to create a new partition for 10.12 (leaving the 10.13 partition smaller but otherwise unmodified). Then, once 10.12 is installed, you can manually copy over the files you want from the 10.13 partition.

Chris

Hi Chris,

It looks like downgrading to 10.12 did the trick. It might be worth posting something warning those without metal support from upgrading to 10.13.

Thanks!
Evan

Hi Evan,

It looks like downgrading to 10.12 did the trick.

Great, glad to hear it!

It might be worth posting something warning those without metal support from upgrading to 10.13.

Yes, that’s probably a good idea.

Chris