dear mario and friends
i just measured the luminance precision of the MacBook. I'm happy to report that I get 10-bit luminance precision. That's important because this is (barely) enough to measure threshold contrast (for a grating or letter) on a blank screen. It's handy because this is Apple's cheapest and lightest Macintosh, offering very portable psychophysics.
-> That's one of the MacBook models with the extremely fragile and expensive to repair keyboards, which afaik so far caused two class-action lawsuits to be filed against Apple in the US for selling defective hardware, right? And only one USB-C port, which from what i've read doesn't work that well with much 3rd party hardware, but no MagSafe connector? Ok, the USB-C problems are not Apples alone. Apparently USB-C is generally a compatibility and reliability nightmare by design.
-> At an entry prize of $1300 + $$$ for all kind of dongles and adapters needed for even basic external connectivity, and a "Don't buy" recommendation from the MacRumours website (https://buyersguide.macrumors.com/#Mac), a recommendation that currently extends to all Macintosh computers except the 2013 Trashcan MacPro that says "Caution" and the > 5000$ iMacPro that is rated "Neutral". For an Apple machine that is probably considered cheap, from a prize/performance ratio it is anything but that.
-> I can only recommend against people buying Apple Macs for running neuroscience research, and from what i read about WWDC 2018 macOS Mojave announcements, things will likely get much much worse in the foreseeable future for vision science applications on macOS.
It's surprising because up to now, the only reports that I've heard of greater than 8-bit performance with the Psychtoolbox on Macs was with the high end Macs that have AMD (aka Radeon) drivers. The MacBook video driver is Intel.
-> Not at all. What you are getting is the same faked 10 bpc support we've already established for all other tested Macs in spring 2017 when measuring various machines, probably with the same type of timing problems it caused there. This is just 10 bpc simulated via some Apple proprietary dithering method. The current Macbook specs say that that machine and its internal flat panel can only do 8 bpc, and all our results on other machines last year showed the 10 bpc were just emulated. That's something Linux can do on AMD and NVidia hardware since over 10 years, with better performance and much better/trustworthy timing. For grayscale stimuli you might be able to get better 10.8 bpc precision via the PsychImaging('AddTask', 'General', 'EnablePseudoGrayOutput'); task and the bitstealing method.
I'm pretty sure from all our results that the only machine in your possession that can do true 10 bpc is that Hp zBook laptop you have running under Linux. That one could be boosted to 12.8 bpc via use of the PsychImaging('AddTask', 'General', 'EnablePseudoGrayOutput'); task on top of 10 bpc output, applying bit-stealing to a 10 bpc native baseline instead of 8 bpc native baseline. At least i hope it'd work, as i don't have any suitable 10 bit panel for proper testing.
Here's a graph showing measured luminance (black) vs digital input over 1/128 of the full range. The green staircase shows a model representing 10-bit performance.
MacBook (Retina 12 inch 2017)
Intel HD Graphics 615 1536 MB
macOS 10.13.5
Psychtoolbox 3.0.14
i'm happy to share my test program:
MeasureLuminancePrecision.m
which is also attached.
-> MeasureLuminancePrecision.m btw. is a great script for quickly verifying bit depth if one has a CRS ColorCal! I used a hacked version of it - for better Octave compatibility - a lot in the last year for tons of measurements when working on improving Linux high bit depth support further. A great time-saver. If we could extend that script to also use all the other Photometer's supported by PTB, it would be even more widely useful.
-mario
best
denis
p.s.
I use the PsychImaging command, and request 11 bits.
PsychImaging('PrepareConfiguration');
PsychImaging('AddTask','General','UseRetinaResolution');
PsychImaging('AddTask','FinalFormatting','DisplayColorCorrection','SimpleGamma');
PsychImaging('AddTask','General','EnableNative11BitFramebuffer');
PsychImaging('AddTask','General','NormalizedHighresColorRange',1);
window = PsychImaging('OpenWindow',screen,[1 1 1]);
| | Denis Pelli Professor of Psychology & Neural Science, New York University | | |