# Psychtoolbox 3.0.20.0 release “Appletizer” 🎄

**URL:** <https://psychtoolbox.discourse.group/t/psychtoolbox-3-0-20-0-release-appletizer/5590>\
**Category:** Announcements\
**Tags:** release\
**Created:** [December 14, 2024, 5:14am UTC](https://psychtoolbox.discourse.group/t/psychtoolbox-3-0-20-0-release-appletizer/5590 "2024-12-14T05:14:53Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![mariokleiner](https://avatars.discourse-cdn.com/v4/letter/m/13edae/32.png) [@mariokleiner](https://psychtoolbox.discourse.group/u/mariokleiner)\
**Post date:** [December 14, 2024, 5:14am UTC](https://psychtoolbox.discourse.group/t/psychtoolbox-3-0-20-0-release-appletizer/5590/1 "2024-12-14T05:14:53Z")

</div>

As a little pre-christmas present 🎄 for you:

Psychtoolbox 3.0.20 “Appletizer” was released at 13th December 2024, at least  
in some time zone. Hopefully Friday 13th will bring us luck instead of horror 😏.

The complete development history can be found in our GitHub repository.  
The release tag is “3.0.20.0”, with the full tree and commit logs under the URL:

[https://github.com/Psychtoolbox-3/Psychtoolbox-3/tree/3.0.20.0](https://github.com/Psychtoolbox-3/Psychtoolbox-3/tree/3.0.20.0)

**This is the first release with beta quality macOS Apple Silicon Mac support**  
for native use on Apple Macintosh computers with 64-Bit ARM Apple proprietary  
M1, M2, M3, … SoC’s. 🎉

**We thank the labs of Keith Schneider at the University of Delaware and of**  
**Bas Rokers at NYU Abu Dhabi for substantial sponsorship to push Apple**  
**Silicon support over the finish line. 👏**

Effective immediately, the Psychtoolbox 3.0.19 series has now reached end of life.  
No improvements, bug fixes or user support will be provided for Psychtoolbox 3.0.19  
or earlier versions of Psychtoolbox.

### Compatibility changes wrt. Psychtoolbox 3.0.19.16:

- Psychtoolbox 3.0.20 and later on Apple macOS and Microsoft Windows  
will require purchase of a paid software license key, once the  
initial time-limited free trial period after first installation and  
use has expired. Psychtoolbox will not work after the end of the trial  
period without such a paid license key. The Psychtoolbox variants for  
Linux on Intel processors and 32-Bit RaspberryPi will remain free to  
use for the time being.

### Highlights:

- Initial “Beta” Apple Silicon support for running Psychtoolbox on macOS  
for Apple Silicon Macs. Psychtoolbox can now be used with native Octave  
and Matlab for Apple Silicon ARM Macs, ie. machines with Apple M1,  
M2, M3, M4, … SoC’s. Most basic functionality should work reasonably  
well, and substantially better than when using older Psychtoolbox  
versions via Matlab for IntelMacs, which had various severe limitations  
which would make them painful to use and deeply hazardous for any real  
data collection! This versions Apple Silicon support was tested by myself  
on a Apple MacBookPro early 2023 with 16 inch Liquid Retina XDR display  
and Apple M2 Pro SoC under macOS 14.5 Sonoma with 64-Bit native Octave 9.2  
from HomeBrew, and with Matlab R2024a and with Matlab R2024b. It was also  
more lightly tested by others on a similar 16 inch MacBookPro late 2023 with  
M3 Pro SoC under the macOS 15.2 Sequoia beta under Matlab R2024b, and a  
MacBookAir 2020 with M1 SoC, and a Mac Studio 2023 M2 Ultra and MacBookAir  
M3 13 inch early 2024, the latter two with macOS 15.2 beta and Matlab R2024b.  
Thanks to our volunteer testers.

### All:

- Screen: Fix PsychNormalizeTextureOrientation() for multi-window use.  
Use of multiple onscreen windows could cause the wrong OpenGL context  
of the wrong onscreen window to be in use during operation. Fix this.  
Cfe. [Unknown problem playing movies with Gstreamer on Ubuntu Linux - #8 by mantiuk](https://psychtoolbox.discourse.group/t/unknown-problem-playing-movies-with-gstreamer-on-ubuntu-linux/4876/8)

- Screen: Various improvements to movie playback. E.g., improve reliability of  
playback with pixelFormat 6 and 8.

- Screen: Reduce chattiness of some status/debug output in general. Generally  
refine status output a bit.

- AlphaRotateDemo.m: Small fixups for weirdly sized displays and formatting fixes.  
Especially useful for the Retina displays of 16 inch Apple Silicon MacBookPro,  
with uneven horizontal resolution.

- PsychPython/audio.py: Fix ‘AttributeError’ raised when creating a stream fails.  
Contributed by GitHub user @mdcutone

- PsychColorimetric/LMSToMacBoyn(): “Add an example and save the correct version”,  
some poorly documented fixes or improvements by the Brainard lab with mostly  
void of information commit message.

- Various other smaller refinements, bug fixes and documentation updates.

### Linux:

- Psychtoolbox was built and tested against Matlab R2024b and Octave 5.2 and later.

- PsychVulkan: Only use workaround against an AMDVLK bug that causes crash if the  
used Vulkan display monitor has more than 64 video modes on AMDVLK driver versions  
before v-2024.Q4.2, as the bug has been fixed in the upstream driver v-2024.Q4.2,  
released early December 2024.

### Windows:

- Psychtoolbox was built and tested against Matlab R2024b and Octave 7.3.

- Screen: Drop GStreamer DirectShow video capture. Prioritize Mediafoundation.  
DirectShow video capture is unmaintained and strongly discouraged by GStreamer  
folks since the year 2022, and indeed testing shows it is quite broken now.  
WDM-KS kernel streaming is also deprecated since the year 2022. MediaFoundation  
capture is the only recommended way forward. Limited testing on Windows 10 22H2  
also shows it to be the most capable and stable right now (tested GStreamer 1.22).

- PsychVulkan/Windows: Disable fullscreen exclusive mode on shoddy AMD Vulkan drivers  
again. This still does not work reliably and often leads to black screens instead  
of stimulus display.

### macOS:

- Psychtoolbox was built and tested against native Matlab R2024b and against native  
Octave 9.2 from HomeBrew, on macOS 13.7.1 Ventura for Intel Macs, and on macOS 14.5  
Sonoma for Apple Silicon Macs.

- Initial support for running Psychtoolbox on macOS for Apple Silicon Macs with ARM  
native Matlab and Octave.

- Bump minimum required macOS version to macOS 10.13 “High Sierra”. Effective this  
means macOS 10.13 for IntelMacs, and macOS 11 “Big Sur” for Apple Silicon Macs  
are required to run Psychtoolbox 3.0.20.

- Fix video recording on macOS. Works fully with video + audio on macOS for Intel  
Macs with GStreamer 1.22. Works with video only, no audio, on macOS for Apple  
Silicon Macs.

- Implement initial pixelFormat 11 movie playback support on macOS for playback of  
Deep color, Wide color gamut (WCG), and High Dynamic Range (HDR) movies. This  
provides 10 bpc deep color, WCG and HDR, but at a lower performance than on other  
operating systems, as Apples prehistoric OpenGL 2.1 implementation forces us to  
use a less efficient decoding shader, and hardware accelerated video decoding can  
not be used as of GStreamer 1.24.10, as it would reduce color precision to only 8  
bpc which is utterly insufficient for WCG and HDR playback, causing significant  
banding and HDR artefacts.

- Make pixelFormat 6 playback work without crashing.

- Screen: Make Intel iGPU pageflip checking on recent macOS for Intel graphics chips  
more robust. This may improve robustness of correctness checks on Intel integrated  
graphics on Intel Macs with PsychtoolboxKernelDriver installed. Problem seen and  
fixed on Intel Kabylake Gen 9.5 graphics of MacBookPro 2017.

- Fix some crashes on Octave for macOS when using Psychtoolbox after issuing a  
“clear all”, or “clear mex”, or “clear Screen”, or “clear PsychVulkanCore” command.

Enjoy!

---

<div class="post-metadata">

**Author:** ![Ian-Max-Andolina](https://yyz2.discourse-cdn.com/free1/user_avatar/psychtoolbox.discourse.group/ian-max-andolina/32/4_2.png) [@Ian-Max-Andolina](https://psychtoolbox.discourse.group/u/Ian-Max-Andolina)\
**Post date:** [December 14, 2024, 5:35am UTC](https://psychtoolbox.discourse.group/t/psychtoolbox-3-0-20-0-release-appletizer/5590/2 "2024-12-14T05:35:27Z")

</div>

Best release name ever 😁 and thanks for all the hard work!!!
