How to display the actual resolution and 10bits per color component framebuffer

Hello, i have a problem that,
the version is matlab R2020a 64-bit, PTB 3.0.17, under macOS Catalina. the GPU is Radeon Pro 560X 4 GB. The iMac is Retina 21.5-inch(40962304).
When I enter ScreenTest, the return value of the window is 2048
1152, 8-bit per color component framebuffer. I need the actual resolution 4096*2304 and 10bit color depth display, how can I set it?
Try to install PsychtoolboxKernelDriver, but it doesn’t work.
Thank you!

Specific information is as follows:
ScreenTest

***** ScreenTest: Testing Screen 0 *****
PTB-INFO: Retina display. Enabling panel fitter for scaled Retina compatibility mode.

PTB-INFO: This is Psychtoolbox-3 for Apple OS X, under Matlab 64-Bit (Version 3.0.17 - Build date: Dec 17 2020).
PTB-INFO: OS support status: OSX 10.15 minimally supported and tested.
PTB-INFO: Type ‘PsychtoolboxVersion’ for more detailed version information.
PTB-INFO: Most parts of the Psychtoolbox distribution are licensed to you under terms of the MIT License, with
PTB-INFO: some restrictions. See file ‘License.txt’ in the Psychtoolbox root folder for the exact licensing conditions.

PTB-INFO: For information about paid priority support, community membership and commercial services, please type
PTB-INFO: ‘PsychPaidSupportAndServices’.

PTB-INFO: Installation of the PsychtoolboxKernelDriver is strongly recommended if you care about precise visual
PTB-INFO: onset timestamping or timing. See ‘help PsychtoolboxKernelDriver’ for installation instructions.

PTB-INFO: OpenGL-Renderer is ATI Technologies Inc. :: AMD Radeon Pro 560X OpenGL Engine :: 2.1 ATI-3.9.15
PTB-INFO: Renderer has 4096 MB of VRAM and a maximum 4006 MB of texture memory.
PTB-INFO: VBL startline = 2304 , VBL Endline = -1
PTB-INFO: Beamposition queries unsupported or defective on this system. Using basic timestamping as fallback.
PTB-INFO: Timestamps returned by Screen(‘Flip’) will be therefore less robust and accurate.
PTB-INFO: Measured monitor refresh interval from VBLsync = 16.681242 ms [59.947574 Hz]. (50 valid samples taken, stddev=0.064959 ms.)
PTB-INFO: Small deviations between reported values are normal and no reason to worry.
PTB-INFO: Psychtoolbox imaging pipeline starting up for window with requested imagingmode 33793 …
PTB-INFO: Will use 8 bits per color component framebuffer for stimulus drawing.
PTB-INFO: Enabling panel fitter. Providing virtual framebuffer of 2048 x 1152 pixels size.
PTB-INFO: Will use 8 bits per color component framebuffer for stimulus post-processing (if any).

***** ScreenTest: Done With Screen 0 *****

see help RetinaDisplay

Thank you for your reply, Dcnieho, the native resolution can be ahieved.
But, how to display 16bit images? i don’t know.

the name of the image is ‘gray.png’ , which is 16bit gray image.
When displaying it, the procedure is as follows:

img = imread('gray.png');      
imagetex=Screen('MakeTexture', w, img);
Screen('DrawTexture', w, imagetex);
Screen('Flip',w);

The result shows an error, how can I display a 16bit image. Thank you.

Well, the question is if you have a specialist display that can output at that luminance resolution? You need to set up the screen using PsychImaging set to the correct mode:

http://psychtoolbox.org/docs/PsychImaging

e.g. PsychImaging(‘AddTask’, ‘General’, ‘EnableNative16BitFloatingPointFramebuffer’); — but macOS is not really recommended for this, you will likely have timing and reliability issues if it works at all… I have tested Linux that can easily drive 14bit outputs from the Display++ and I have had good results using 10bit and partial 11bit outputs.

thanks a lot for your reply. i make it.

Don’t forget to also request floatprecision 2 in Screen('MakeTexture') for your texture to be actually created with > 8 bit precision. AdditiveBlendingForLinearSuperpositionTutorial is one of the demos showing the approach.

As Ian said, visual timing will be totally broken on macOS with anything but standard 8 bit mode, due to Apple macOS operating system flaws, and Apples floating point 16 support is not real native support, but some Apple proprietary method faking it, so your mileage may vary.

Good luck,
-mario

Thanks for your reminding. If having other questions, I will ask you again. thank you in advance

You will want to test that your display is actually outputting at 10+ bits — for that you will need to use a photometer and measure steps at the required resolution. For example 1/1024 for 10 bit test, 1/2048 for 11bit testing. You can use MeasureLuminancePrecision.m for that, although it only supports Color-Cal-II and so you will need to modify it for other photometers…

1 Like

ok, i will try it. i mainly want to display 16bit image made by matlab on the imac 10bit display screen,whether it’s virtual or native support. thank you.

The next beta will actually have a MeasureLuminancePrecision.m which supports all photometers supported by PTB’s CMCheckInit, mostly some comon PhotoResearch devices:
http://psychtoolbox.org/docs/CMCheckInit

The script still has various hard-coded parameters at its beginning, which one needs to adapt to ones needs.

-mario

1 Like