|
| 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