Psychtoolbox

Latest version: v3.0.19.14

Safety actively analyzes 714815 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 4 of 8

3.0.18.10

A minor update for macOS Octave compatibility, help/status text updates and to mention our new user survey.

General:

- Reword text for our new commercial support.
- Add a mention of our ongoing user survey 2022, ask for participation.

macOS:

- Rebuild 64-Bit Octave mex files so that they should work on both Octave-6.3/6.4 and the new Octave-7.1 from HomeBrew.
- Minor improvements to ``Screen()`` status messages.

Linux:

- Update some help texts wrt. hybrid graphics support. Some more configurations are verified to work with proper timing, e.g., AMD iGPU + NVidia dGPU Optimus style.
- Update ``help PsychLinuxConfiguration``.

3.0.18.9

3.0.18.8

Minor bug fixes / compatibility improvements.

Linux

- Detect if the Screen() function (for X11/GLX Linux) is executed under a Wayland based desktop GUI,
which would run it under XWayland, which would end badly. Warn user, error abort with troubleshooting
tips -> Logout and login into a X11/Xorg native X-Server session.
This to deal with the new default choice of a Wayland-based desktop environment under Ubuntu 22.04-LTS,
which leads to "failure by default".

Windows

- Improve postinstall routine to skip sync tests while rebuilding the fontconfig cache on Window or macOS, as sync failure could cause a false error and failure to rebuild the fontconfig cache. Spotted on Windows, but may also apply to macOS.

3.0.18.7

Small improvements and fixes. Hopefully basic Ubuntu 22.04-LTS compatibility.

General:

- GetClicks(): Add timeout for 1st click, and click time reporting.
- Setup/Download/UpdatePsychtoolbox(): Add highly experimental optional support for non-interactive operation. May help sysadmins to setup multiple machines faster without too much user interaction. Experimental, unsupported in case of trouble, will not work easily on Linux - would need more work to update PsychLinuxConfiguration.
- PsychPaidSupportAndServices(): Update language a bit for new support conditions.
- Fixes by Diederick for DrawFormattedText2() cached text drawing while geometric transformations are applied.
- DKLDemo.m: Some comment fixes by David Brainard.

Linux:

- PsychPortAudio(): Change realtime priority setup for ALSA and Pulseaudio: Instead of assigning static FIFO RT priority 1, use priority of main thread (aka ``Priority()``) + 4, so audio processing stays at higher RT priority than main thread or other PTB threads. May help some special edge cases, e.g., Microsoft Surface Pro 6 audio glitches in some scnearios that I could not reproduce, but a user could. See https://psychtoolbox.discourse.group/t/audio-and-surface-pen-questions/4276
- Add a GitHub actions CI setup to allow to build our mex files for 64-Bit Linux on Intel in the GitHub cloud, both for Octave 5.2 and Matlab under Ubuntu 20.04-LTS.
- Make Screen() mex files hopefully compatible with Ubuntu 22.04.0-LTS, by changing link dependency to libdc1394-25. Only lightly tested.

Windows:

- Require use of GStreamer 1.18.x series, 1.18.5 as latest tested release. GStreamer 1.20 contains multiple potential compatibility bugs wrt. fontconfig / high quality text rendering under Matlab + Windows. Octave 6.4 + Windows should be unaffected, as are other operating systems.

3.0.18.6

This release contains some minor improvements for Linux, and in the future for Windows.

Linux

- Fix AUX buffer fallback in Screen, so MSAA anti-aliasing can be used again without full imaging-pipeline enabled. This was broken due to changes of AUX buffer support in graphics drivers over the last decade. The same fix applies to MS-Windows, but we can't do a full rebuild of Screen on Windows atm., only for Octave, so this is only "inofficially" fixed for now on Octave + Windows.
- LinesDemo.m: Request 1xMSAA, so drawing of anti-aliased lines works with nice perpendicular endcaps on AMD + Linux on future Mesa 22.0 and later, e.g., likely on upcoming Ubuntu 22.04-LTS.

3.0.18.5

This release contains some minor improvements, but mostly some experimental and exciting improvements for Linux in composited stimulus presentation mode.

General

- ``PsychHomeDir(), PsychtoolboxConfigDir()`` compatibility fixes for Matlab compiler on Unix, contributed by Ian Andolina.

- ``Screen('DrawText')``: Improve help text on drawtext plugin rendering failure. The most common cause for failure is that libfontconfig can't find a suitable font, usually because something's wrong with the fontconfig cache. Be a bit more explicit about this and point the user into the right direction. This problem usually only happens occasionally on MS-Windows and Apple macOS, it was not ever observed on Linux.

- ``Screen``: Add some visual indication of some types of triple-buffering. This will cause some fast "jiggle" or "vibrating" movement of the startup splash image if Psychtoolbox does successfully bypass the desktop compositor, but the low-level display driver still employs triple buffering. Not all types of triple-buffering or n-buffering with n > 2 can be detected, e.g., it is expected to not be diagnostic at all in desktop compositor situations, "Optimus" style render offload etc. The most straightforwad type of triple buffering may be detectable, e.g., what the Intel graphics driver on MS-Windows 10+ uses on most modern Intel graphics chips. There should be no visible change for double-buffered systems, only on triple buffering in some conditions. The test has a high false negative rate. We don't use it on Linux, as we have much better diagnostic built in since many years due to superior api's for this stuff on Linux. Also n-buffering is nothing bad on Linux with FOSS drivers, but often beneficial for performance, it is only an easily detected issue with the NVidia proprietary graphics driver on not recommended NVidia hardware.

- Update ``help SyncTrouble`` with a description of this new visual diagnostic cue. Note that DWM -> invisible windows diagnostics at ``Screen('Preference', 'Visualdebuglevel', 6)`` is much less reliable (high false negative rate) at detecting compositor involvement since some MS-Windows 10 update late 2021. Note the unfixable triple-buffer brokeness of Intel graphics on Windows. Note the unfixable brokeness of Apple M1 SoC "Apple Silicon" ARM Macs at the moment.

Linux

- Experimental support for the NetWM frame timing protocol for improved client - compositor sync to allow for supposedly robust and precise visual stimulus onset timestamps and improved stimulus onset timing even with half-transparent or partially (per-pixel alpha) transparent fullscreen windows, "windowed" non-fullscreen windows, and certain hybrid graphics configurations, e.g., "NVidia Optimus" laptops with AMD integrated display gpu (iGPU) and NVidia discrete render offload gpu (dGPU).
- This requires an X11 compositing window manager with NetWM frame timing support: Currently Gnome-3's "Mutter" is known to support this, so use of Ubuntu 20.04-LTS standard "Ubuntu desktop (X11)" or of "Gnome desktop (X11)" should work. Probably most (all?) other desktop environments, e.g., KDE, won't support this.
- You need to opt-in to use of this feature by setting the environment variable ``PSYCH_EXPERIMENTAL_NETWMTS to 1``, e.g., via ``setenv('PSYCH_EXPERIMENTAL_NETWMTS', '1')``. The feature is currently a construction site which only works for the most basic and common use case of a single onscreen window, only use of ``Screen('Flip')`` not async flips, no frame-sequential stereo or fine-grained VRR/FreeSync/G-Sync timing, no use of flip events (ie. no functionality demonstrated in ``PerceptualVBLSyncTestFlipInfo.m``) for extra performance boosts or asynchronous operation. Unless the feature supports all reasonable use cases, or at least guards/falls back in a reasonable way on unsupported cases instead of just malfunctioning or hanging without warning, and until is verified more stringently, we keep this an experimental opt-in. The default behavior will stay to have no timing precision/reliability and/or reduced performance in AMD iGPU + NVidia dGPU Optimus configurations, for transparent windows or for windowed windows, just as in the past and on all other operating systems.
- **The timing precision and reliability of visual onset timestamps has not been verified with hardware measurement equipment yet** as I am away from the needed equipment for a few weeks. Only software based checks and "eye balling" has been done with Ubuntu desktop and GNOME-3 on Ubuntu 20.04.3-LTS on Intel graphics, and Ubuntu 21.10 on AMD graphics so far, but it looks as if it works correctly. If you use the feature and depend on its precision, wait for my official test results, or measure carefully yourself! In theory this experiment could turn into a failure, although i judge the likelihood of failure low at this point.
- [Credit for proposing and publishing the protocol, and for implementing support for it in GNOME's Mutter compositor, goes to Red Hat's Owen Taylor, which also has some nice blog posts about the challenges and tradeoffs of timing vs. performance vs. latency vs. judder in desktop compositors under this link](https://blog.fishsoup.net/2011/11/08/applicationcompositor-synchronization/).

Page 4 of 8

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.