Skip to content

Commit cc8aa5f

Browse files
committed
Announce Psychtoolbox 3.0.20.0.
1 parent a1fa817 commit cc8aa5f

File tree

1 file changed

+204
-0
lines changed

1 file changed

+204
-0
lines changed
Lines changed: 204 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,204 @@
1+
---
2+
layout: post
3+
title: Psychtoolbox updated
4+
categories: news
5+
author: kleinerm
6+
---
7+
8+
Psychtoolbox 3.0.20 "Appletizer" was released at 13th December 2024, at least
9+
in some time zone. Hopefully Friday 13th will bring us luck instead of horror :smirk:.
10+
11+
The complete development history can be found in our GitHub repository.
12+
The release tag is “3.0.20.0”, with the full tree and commit logs under the URL:
13+
14+
<https://github.com/Psychtoolbox-3/Psychtoolbox-3/tree/3.0.20.0>
15+
16+
**This is the first release with beta quality macOS Apple Silicon Mac support**
17+
for native use on Apple Macintosh computers with 64-Bit ARM Apple proprietary
18+
M1, M2, M3, ... SoC's. :tada:
19+
20+
**We thank the labs of Keith Schneider at the University of Delaware and of**
21+
**Bas Rokers at NYU Abu Dhabi for substantial sponsorship to push Apple**
22+
**Silicon support over the finish line. :clap:**
23+
24+
Effective immediately, the Psychtoolbox 3.0.19 series has now reached end of life.
25+
No improvements, bug fixes or user support will be provided for Psychtoolbox 3.0.19
26+
or earlier versions of Psychtoolbox.
27+
28+
29+
### Compatibility changes wrt. Psychtoolbox 3.0.19.16:
30+
31+
- Psychtoolbox 3.0.20 and later on Apple macOS and Microsoft Windows
32+
will require purchase of a paid software license key, once the
33+
initial time-limited free trial period after first installation and
34+
use has expired. Psychtoolbox will not work after the end of the trial
35+
period without such a paid license key. The Psychtoolbox variants for
36+
Linux on Intel processors and 32-Bit RaspberryPi will remain free to
37+
use for the time being.
38+
39+
The free time-limited trial period will last until the launch of
40+
our new online shop, ie. until you will be able to buy software
41+
license keys. The estimated date of launch, and end of the free
42+
trial, will be likely around early to mid January 2025.
43+
44+
Follow the news on http://psychtoolbox.org and on our Discourse
45+
user forum or our social media feeds @psychtoolbox on X / Twitter,
46+
https://neuromatch.social/@psychtoolbox on Mastodon, or on BlueSky
47+
@psychtoolbox.bsky.social for announcements of the launch of the
48+
software license key sale early in the year 2025, or go to
49+
https://psychtoolbox.net to find out how to buy a key, once sales
50+
has started.
51+
52+
### Highlights:
53+
54+
- Initial "Beta" Apple Silicon support for running Psychtoolbox on macOS
55+
for Apple Silicon Macs. Psychtoolbox can now be used with native Octave
56+
and Matlab for Apple Silicon ARM Macs, ie. machines with Apple M1,
57+
M2, M3, M4, ... SoC's. Most basic functionality should work reasonably
58+
well, and substantially better than when using older Psychtoolbox
59+
versions via Matlab for IntelMacs, which had various severe limitations
60+
which would make them painful to use and deeply hazardous for any real
61+
data collection! This versions Apple Silicon support was tested by myself
62+
on a Apple MacBookPro early 2023 with 16 inch Liquid Retina XDR display
63+
and Apple M2 Pro SoC under macOS 14.5 Sonoma with 64-Bit native Octave 9.2
64+
from HomeBrew, and with Matlab R2024a and with Matlab R2024b. It was also
65+
more lightly tested by others on a similar 16 inch MacBookPro late 2023 with
66+
M3 Pro SoC under the macOS 15.2 Sequoia beta under Matlab R2024b, and a
67+
MacBookAir 2020 with M1 SoC, and a Mac Studio 2023 M2 Ultra and MacBookAir
68+
M3 13 inch early 2024, the latter two with macOS 15.2 beta and Matlab R2024b.
69+
Thanks to our volunteer testers.
70+
71+
While surely some bugs or limitations still exist, this should be a first good
72+
release for basic use and evaluation.
73+
74+
Known limitations are lack of frame-sequential stereo support in stereo modes
75+
1 and 11, Screen Async flips, ie. subfunctions 'AsyncFlipBegin', 'AsyncFlipEnd'
76+
and 'AsyncFlipCheckEnd' are unsupported. Certain glitches in frame presentation
77+
timing are still observed under certain conditions at least on macOS 14, e.g.,
78+
stalls / short freezes after the stimulus image was static for a while, e.g,
79+
observable with MouseTraceDemo if not moving the mouse for a while. These may
80+
also trigger printing of some warning messages into the Matlab or Octave Window
81+
about "...Failed to retrieve ... stimulus onset timestamp! Timed out.". It is
82+
not yet clear if these issues are still present on macOS 15 Sequoia as well,
83+
testing to be done. These remaining timing glitches are almost certainly due to
84+
Apple macOS operating system bugs, which will either need proper fixing by Apple,
85+
or need invention of new creative workarounds on our side, if that is needed and
86+
possible.
87+
88+
Apples "ProMotion" display mode on some builtin Retina displays, e.g., of the
89+
MacBookPro models, and variable refresh rate modes in general, are not supported
90+
and will cause more erratic behaviour. Make sure to switch to a fixed refresh rate
91+
mode in display settings instead on such machines.
92+
93+
Movie playback, movie writing and video capture works well with GStreamer 1.24.10,
94+
but due to what seem to be shortcomings or bugs of current GStreamer releases,
95+
video recording on Apple Silicon only works for video, not when also trying to
96+
record audio - otherwise hangs will occur. On Intel Macs, video recording does
97+
not work at all with GStreamer 1.24.10, but does for both video and audio with
98+
GStreamer 1.22, however with the downside that playback of some movies fails.
99+
So both GStreamer 1.22 and 1.24 have some limitations, pick the variant with
100+
limitations you can better live with, until GStreamer is properly fixed in some
101+
future GStreamer version.
102+
103+
You should probably not yet use this release for real data collection if
104+
highest reliability of visual stimulus presentation timing is required. Use
105+
for less demanding scenarios may be fine, but tread carefully with this early
106+
release!
107+
108+
### All:
109+
110+
- Screen: Fix PsychNormalizeTextureOrientation() for multi-window use.
111+
Use of multiple onscreen windows could cause the wrong OpenGL context
112+
of the wrong onscreen window to be in use during operation. Fix this.
113+
Cfe. https://psychtoolbox.discourse.group/t/unknown-problem-playing-movies-with-gstreamer-on-ubuntu-linux/4876/8
114+
115+
- Screen: Various improvements to movie playback. E.g., improve reliability of
116+
playback with pixelFormat 6 and 8.
117+
118+
- Screen: Reduce chattiness of some status/debug output in general. Generally
119+
refine status output a bit.
120+
121+
- AlphaRotateDemo.m: Small fixups for weirdly sized displays and formatting fixes.
122+
Especially useful for the Retina displays of 16 inch Apple Silicon MacBookPro,
123+
with uneven horizontal resolution.
124+
125+
- PsychPython/audio.py: Fix 'AttributeError' raised when creating a stream fails.
126+
Contributed by GitHub user @mdcutone
127+
128+
- PsychColorimetric/LMSToMacBoyn(): "Add an example and save the correct version",
129+
some poorly documented fixes or improvements by the Brainard lab with mostly
130+
void of information commit message.
131+
132+
- Various other smaller refinements, bug fixes and documentation updates.
133+
134+
### Linux:
135+
136+
- Psychtoolbox was built and tested against Matlab R2024b and Octave 5.2 and later.
137+
138+
- PsychVulkan: Only use workaround against an AMDVLK bug that causes crash if the
139+
used Vulkan display monitor has more than 64 video modes on AMDVLK driver versions
140+
before v-2024.Q4.2, as the bug has been fixed in the upstream driver v-2024.Q4.2,
141+
released early December 2024.
142+
143+
### Windows:
144+
145+
- Psychtoolbox was built and tested against Matlab R2024b and Octave 7.3.
146+
147+
- Screen: Drop GStreamer DirectShow video capture. Prioritize Mediafoundation.
148+
DirectShow video capture is unmaintained and strongly discouraged by GStreamer
149+
folks since the year 2022, and indeed testing shows it is quite broken now.
150+
WDM-KS kernel streaming is also deprecated since the year 2022. MediaFoundation
151+
capture is the only recommended way forward. Limited testing on Windows 10 22H2
152+
also shows it to be the most capable and stable right now (tested GStreamer 1.22).
153+
154+
Drop support for DirectShow dshowvideosrc completely, and prefer Mediafoundation
155+
mfvideosrc over the deprecated Kernel Streaming ksvideosrc.
156+
157+
- PsychVulkan/Windows: Disable fullscreen exclusive mode on shoddy AMD Vulkan drivers
158+
again. This still does not work reliably and often leads to black screens instead
159+
of stimulus display.
160+
161+
### macOS:
162+
163+
- Psychtoolbox was built and tested against native Matlab R2024b and against native
164+
Octave 9.2 from HomeBrew, on macOS 13.7.1 Ventura for Intel Macs, and on macOS 14.5
165+
Sonoma for Apple Silicon Macs.
166+
167+
- Initial support for running Psychtoolbox on macOS for Apple Silicon Macs with ARM
168+
native Matlab and Octave.
169+
170+
- Bump minimum required macOS version to macOS 10.13 "High Sierra". Effective this
171+
means macOS 10.13 for IntelMacs, and macOS 11 "Big Sur" for Apple Silicon Macs
172+
are required to run Psychtoolbox 3.0.20.
173+
174+
Of course this new minimum is a bit redundant, because all macOS versions older
175+
than macOS 13 are completely unsupported by Apple since October 2024, so running
176+
anything older is at least a high computer security risk, and has lots of unfixed
177+
remaining bugs and is therefore not a good idea. Additionally macOS 13 is needed
178+
at a minimum on Apple Silicon Macs to allow proper operation of visual stimulators
179+
from VPixx and Cambridge Research Systems.
180+
181+
- Fix video recording on macOS. Works fully with video + audio on macOS for Intel
182+
Macs with GStreamer 1.22. Works with video only, no audio, on macOS for Apple
183+
Silicon Macs.
184+
185+
- Implement initial pixelFormat 11 movie playback support on macOS for playback of
186+
Deep color, Wide color gamut (WCG), and High Dynamic Range (HDR) movies. This
187+
provides 10 bpc deep color, WCG and HDR, but at a lower performance than on other
188+
operating systems, as Apples prehistoric OpenGL 2.1 implementation forces us to
189+
use a less efficient decoding shader, and hardware accelerated video decoding can
190+
not be used as of GStreamer 1.24.10, as it would reduce color precision to only 8
191+
bpc which is utterly insufficient for WCG and HDR playback, causing significant
192+
banding and HDR artefacts.
193+
194+
- Make pixelFormat 6 playback work without crashing.
195+
196+
- Screen: Make Intel iGPU pageflip checking on recent macOS for Intel graphics chips
197+
more robust. This may improve robustness of correctness checks on Intel integrated
198+
graphics on Intel Macs with PsychtoolboxKernelDriver installed. Problem seen and
199+
fixed on Intel Kabylake Gen 9.5 graphics of MacBookPro 2017.
200+
201+
- Fix some crashes on Octave for macOS when using Psychtoolbox after issuing a
202+
"clear all", or "clear mex", or "clear Screen", or "clear PsychVulkanCore" command.
203+
204+
Enjoy!

0 commit comments

Comments
 (0)