Skip to content

Commit 57efaf1

Browse files
committed
Announce Psychtoolbox 3.0.19.15.
1 parent 1b4bb38 commit 57efaf1

File tree

1 file changed

+126
-0
lines changed

1 file changed

+126
-0
lines changed
Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
---
2+
layout: post
3+
title: Psychtoolbox updated
4+
categories: news
5+
author: kleinerm
6+
---
7+
8+
Psychtoolbox 3.0.19 update "Last free lunch" was released at 3rd November 2024.
9+
The complete development history can be found in our GitHub repository.
10+
The release tag is “3.0.19.15”, with the full tree and commit logs under the URL:
11+
12+
<https://github.com/Psychtoolbox-3/Psychtoolbox-3/tree/3.0.19.15>
13+
14+
15+
### Compatibility changes wrt. Psychtoolbox 3.0.19.14:
16+
17+
- None.
18+
19+
### Highlights:
20+
21+
- None. Only bug fixes for various 3rd party components, and small improvements.
22+
23+
### All:
24+
25+
- Change enumeration order of video capture devices. This should avoid
26+
selection of suboptimal capture devices by preferring more optimal ones,
27+
especially on modern Ubuntu 22.04-LTS and later Linux distributions, which
28+
often choose the new but immature pipewiresrc as video source plugin for a
29+
camera instead of the old and proven/mature more optimal v4l2src as video
30+
source. Specifically we hope to avoid VideoRecordingDemo.m problems like
31+
the ones encountered in the following thread:
32+
33+
https://psychtoolbox.discourse.group/t/codecs-in-videorecordingdemo-not-working-on-linux/5441
34+
35+
- PsychImaging: Fix HDR mode with types of PsychColorCorrection() that involve
36+
lookup tables and only use one color correction operation in total. E.g,
37+
standard LUT based correction, 3D LUT based correction or application of
38+
per-pixel gain matrices. See:
39+
40+
https://psychtoolbox.discourse.group/t/best-approach-for-gamma-correction-in-hdr10/5515
41+
42+
- CI release scripts: Disable building of .mltbx files for releases for now.
43+
44+
The current approach contributed by Mathworks team is broken. It includes the
45+
whole Psychtoolbox-3 tree for some utterly unclear reason, although the project
46+
file only specified the Psychtoolbox/ subfolder. Worse, it adds toolbox folders
47+
to the Matlab path in randomized (!?!) order, so our carefully selected ordering
48+
of MatlabWindowsFilesR2007a/ folder wrt. PsychBasic folder gets screwed up and mex
49+
files can't be found on MS-Windows anymore. Even worse, if SetupPsychtoolbox() fixes
50+
it, then the Matlab Add-On Manager undos the fix every single time Matlab restarts!
51+
This leads to issues like the following linked one:
52+
53+
https://psychtoolbox.discourse.group/t/problem-with-screen-function-ptb-just-installed/5451/9
54+
55+
Apart from that, the Add On manager doesn't allow toolbox updates, and doesn't
56+
set things like the Matlab Java path, doesn't deal with GStreamer etc. It has
57+
zero benefit for our users, but is a source of hazarads and extra support overhead.
58+
Drop it.
59+
60+
- Add Psychtoolbox/PsychBasic/PsychPlugins/ to the search path for dynamic shared
61+
libraries for all operating systems, so PTB specific plugin libraries can be found
62+
during mex file load time.
63+
64+
### Linux:
65+
66+
- Psychtoolbox was built and tested against Matlab R2024a and Octave 5.2 and later.
67+
68+
- PsychImaging: Update 'EnableNative16BitFramebuffer' help text for year 2024.
69+
70+
- Screen: Fix Vulkan display backend support with Mesa versions 23.3 and later
71+
and thereby for Ubuntu 24.04-LTS and later. The same problem that affected the
72+
Broadcom VideoCore 6 of the RaspberryPi 4 and later under Mesa 23.3 now affects
73+
at least Intel and AMD under Mesa 24.0 with Ubuntu 24.04.0-LTS.
74+
75+
It appears a slightly broken GL_EXT_direct_state_access implementation
76+
in Mesa was introduced in Mesa 23.3 and later. Work around this in an effective
77+
and safe way.
78+
79+
- PsychVulkan: Add workaround against an AMDVLK bug that causes crash if the used
80+
Vulkan display monitor has more than 64 video modes. A proper fix, especially
81+
for multi-display setups, can only be done in a future AMDVLK driver from AMD's
82+
Vulkan team, but for single display stimulation this workaround should prevent
83+
crashes and problems, and on some multi-display setups things may still work
84+
with a sprinkle of dumb luck - no guarantees for multi-display though!
85+
Note that the AMDVLK driver is only used on AMD gpu's if a color depth of more
86+
than standard 8 bpc (aka "deep color") or HDR-10 display mode is requested. For
87+
other Vulkan use cases, the high quality Mesa radv Vulkan driver is used, which
88+
does not suffer such a problem. For context see:
89+
90+
https://psychtoolbox.discourse.group/t/vulkan-breaks-with-stack-smashing-detected-terminated/5501
91+
92+
- XOrgConfCreator: Adapt to Ubuntu 24.04-LTS changes in /dev/dri/card enumeration.
93+
This broke hybrid graphics laptop detection, at least on three single gpu
94+
laptops with AMD gpu's. It reported a dual-gpu config when there was not any.
95+
Since Ubuntu 24.04-LTS, or more likely with a recent Linux 6.8 kernel shipping
96+
in both Ubuntu 24.04-LTS and in Ubuntu 22.04.5-LTS with HWE stack, the first
97+
(and only) gpu on a single gpu machine now has a /dev/dri/card1 device file,
98+
instead of a /dev/dri/card0 device file, ie. device file indexing now starts
99+
at 1 instead of 0. On multi-gpu machines, the second gpu is now associated
100+
with /dev/dri/card2 and so on. This broke some hard-coded assumptions about
101+
0-based device numbering. We now use a more robust detection logic for hybrid
102+
gpu detection. The fix was successfully tested on single-gpu AMD and Intel
103+
graphics machines, and on a dual-gpu Intel + AMD laptop for each gpu and in
104+
prime render offload mode.
105+
106+
- Add braces for NetWM reporting to make compiler happier. It caused a weird
107+
problem in the Screen mex build for Matlab, in which the "PTB-INFO: ..." lines
108+
about the used flip timestamping mechanism are not printed! No clue why, looks
109+
like some compiler bug, but adding the - technically not needed - braces fixes
110+
it.
111+
112+
### Windows:
113+
114+
- Psychtoolbox was built and lightly tested against Matlab R2024a and Octave 7.3.
115+
116+
- VideoRecordingDemo.m: Remove special case MS-Windows path. It does not seem to
117+
be as necessary anymore with the future default MediaFoundation path for capture
118+
and recording. Also added some cleanups and ability to specify video capture
119+
device as argument.
120+
121+
### macOS:
122+
123+
- Psychtoolbox was built and tested against Matlab R2024a and against Octave 9.2
124+
from HomeBrew.
125+
126+
Enjoy!

0 commit comments

Comments
 (0)