Giter VIP home page Giter VIP logo

kleinerm / psychtoolbox-3 Goto Github PK

View Code? Open in Web Editor NEW
103.0 20.0 302.0 1.38 GB

This is kleinerm's git repository for development of Psychtoolbox-3. Regular end users should stay away from it, unless instructed by him otherwise, and use the official Psychtoolbox-3 GitHub page or distribution system for production releases.

C 55.60% C++ 3.92% Shell 3.95% Objective-C 0.01% MATLAB 31.59% Brainfuck 0.04% Makefile 0.68% Forth 0.04% GAP 0.04% GLSL 0.03% HTML 0.05% Java 0.01% Python 0.30% PHP 0.07% AppleScript 0.15% Batchfile 0.01% M4 0.01% Roff 3.29% Rich Text Format 0.24%

psychtoolbox-3's Introduction

This is the main Git repository for development of Psychtoolbox-3.

It is meant for developers or alpha-testers only, not for regular
users! Regular users should follow the download and update instructions
on our Wiki at http://www.psychtoolbox.org.

The data in this repository, the Psychtoolbox-3 distribution,
is licensed by a mix of various free software and open source
licenses. Most parts are licensed under MIT license, but a few
bits are under other licenses. The file License.txt in the
Psychtoolbox/ subfolder provides some overview. Some folders
and files have individual licenses attached.

Rough structure:

managementtools/ - Contains scripts for management of the project.

PsychSourceGL/   - Contains the C/C++ source code of almost all
                   compiled binary mex files for GNU/Octave and
                   Matlab and Python.

PsychSourceGL/Cohorts/ - Source code of 3rd party (F)OSS libraries
                         that we use, if required by their licenses,
                         or patches against such libraries, if we
                         had to make modifications that are not yet
                         included in the upstream projects yet.

Psychtoolbox/     - The end-user distribution with all compiled
                    mex files and all M-Files, scripts, GLSL shaders
                    etc. This is what gets downloaded by end-users by
                    default.

PsychPython/      - Code only used by Psychtoolbox Python support, e.g.,
                    test and demo .py scripts, helper libraries etc. from
                    which a Python package is built.

psychtoolbox-3's People

Contributors

aforren1 avatar benjamin-heasly avatar bmtran avatar bpancras avatar da5nsy avatar davidbrainard avatar dcnieho avatar denispelli avatar dimitripapadopoulos avatar iandol avatar j-ales avatar jonasvannijnatten avatar kleinerm avatar mermerico avatar mikelgg93 avatar mrkrause avatar nxniki avatar papril avatar peircej avatar qx1147 avatar simonster avatar spitschan avatar sr-brian avatar sr-research avatar towolf avatar vpixx2 avatar wangsen1312 avatar widmann avatar yarikoptic avatar zacklb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

psychtoolbox-3's Issues

Occasional glitch in CalibrateMonSpd if usebitspp is already set

For commercial support for bug reports, click this link

Describe the bug
Thank you for fixing the historical issues in the script CalibrateMonSpd.
The script runs OK in most cases, when the information about specific meterType etc. is added. However, we have encountered a bug that causes CalibrateMonDrvr to crash at the end of a calibration (which can take 2 - 3 hours for a low-luminance monitor).

CalibrateMonDrvr reports that cal.describe.dacsize is not set (and thus it cannot compute 2^cal.describe.dacsize). I think this is because the end statement for the "if isempty(g_usebitspp)" statement in line 142 of CalibrateMonSpd is in the wrong place.

If g_usebitspp has already been set at some earlier time, the logic in CalibrateMonSpd means that the code skips the "switch... end" statements that follow - because the "end" corresponding to "isempty(g_usebitspp)" is in line 166. If the end statement is moved to just after the user is asked whether they want to use a high-res display device (i.e. line 144 becomes "end" and everything else moves down, and the old "end" in line 166 is deleted), the script then runs OK under all circumstances regarding g_usebitspp.

To Reproduce
Steps to reproduce the behavior:

  1. Go to the script CalibrateMonSpd.m in the current version of PTB3
  2. set global g_usebitspp = 0; [for example] before running the script
  3. Run the script and wait for all radiometer measurements to be completed, and the CalibrateMonDrvr function to attempt linear model fitting
  4. See error - "the variable cal.describe.dacsize does not exist"

Expected behavior
Expected cal.describe.dacsize to be set within the script CalibrateMonSpd before it gets to the function call to CalibrateMonDrvr. It could be set in that function, but it makes more sense to set cal.describe.dacsize at the place where the user is responding to the question about a high-res display device in CalibrateMonSpd.m

Screenshots
Sorry - writing this on a different machine to the one that is (currently) re-running the calibration that crashed earlier this morning.

Desktop (please complete the following information):

  • OS: Ubuntu Linux 20.04
  • Runtime: Matlab R2023a
  • Hardware: Nvidia GEForce 1660ti
  • Version [e.g. Psychtoolbox 3.0.19 - from memory (cannot interrupt the calibration to type the version command)

Additional context
Only trying to improve the calibration scripts/functions!

Update of Ubuntu 16.10: always get sync errors

I previously had an issue with the first run of VBLSyncTest causing sync errors (but then it seemed to work, see this gist), but after what I can only assume is a kernel update, my Ubuntu install always returns sync errors:

https://gist.github.com/iandol/c572752d8a8198b830beeace5b425d6a

This is with the NVidia binary blob. I'm worried about going back to the open source driver because the last time I tried that Ubuntu wouldn't start and trying to reset xorg.conf didn't fix it.

recommended multi-display setup for Linux with X

As noted in psychtoolbox.org, in Linux, each physical display should be configured in xorg.conf so that each monitor could then be exported as a separate x-screen. Then, we could use each of those x-screen (aka. physical monitor) in Screen(), possibly one for stimulus display and one for control.

I have KDE5 as well as i3wm installed as a desktop/window manager. i3wm uses RandR to communicate and control each physical monitors. I am fine with using only KDE5 when it comes to psychtoolbox.

As for configuring each display in xorg.conf, I found we could either use Xinerama, TwinView or RandR (RandR seems unable to output seperate x-screens though) [1]. What is the recommended way to export multiple x-screens in Linux for optimal environment for Psychtoolbox? Providing a official template would be nice.

[1] https://wiki.archlinux.org/index.php/multihead

Segfault in Octave 3.6.4 with KbName after `clear all`

Linux Mint 16 - 3.11.0-14-generic # 21-Ubuntu SMP Tue Nov 12 17:04:55 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux.

Psychtoolbox version: 3.0.11 - Flavor: trunk - Corresponds to SVN Revision 4344

Steps to reproduce:

Screen
clear all
KbName

Here's a truncated back trace:

Program received signal SIGSEGV, Segmentation fault.
0x00007f90e0935c15 in XKeycodeToKeysym () from /usr/lib/x86_64-linux-gnu/libX11.so.6
(gdb) bt
#0  0x00007f90e0935c15 in XKeycodeToKeysym () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#1  0x00007f90d81318af in SCREENGetMouseHelper () at Common/Screen/SCREENGetMouseHelper.c:882
#2  0x00007f90d81688a8 in mexFunction (nlhs=<optimized out>, plhs=<optimized out>, 
    nrhs=<optimized out>, prhs=<optimized out>) at Common/Base/PsychScriptingGlue.cc:966
#3  0x00007f90e3792909 in call_mex(bool, void*, octave_value_list const&, int, octave_mex_function*)
    () from /usr/lib/x86_64-linux-gnu/liboctinterp.so.1
#4  0x00007f90e3931c29 in octave_mex_function::do_multi_index_op(int, octave_value_list const&) ()
   from /usr/lib/x86_64-linux-gnu/liboctinterp.so.1
#5  0x00007f90e3930ad3 in octave_mex_function::subsref(std::string const&, std::list<octave_value_list, std::allocator<octave_value_list> > const&, int) ()
   from /usr/lib/x86_64-linux-gnu/liboctinterp.so.1
#6  0x00007f90e39322fe in octave_mex_function::subsref(std::string const&, std::list<octave_value_list, std::allocator<octave_value_list> > const&) () from /usr/lib/x86_64-linux-gnu/liboctinterp.so.1
#7  0x00007f90e396b324 in octave_value::subsref(std::string const&, std::list<octave_value_list, std::allocator<octave_value_list> > const&, int) () from /usr/lib/x86_64-linux-gnu/liboctinterp.so.1
#8  0x00007f90e396b385 in octave_value::subsref(std::string const&, std::list<octave_value_list, std::allocator<octave_value_list> > const&, int, std::list<octave_lvalue, std::allocator<octave_lvalue> > const*) () from /usr/lib/x86_64-linux-gnu/liboctinterp.so.1

DrawFormattedText2 and FTGL plugin on a Win10 Laptop

Hi Mario, on PTB 3.0.16 with gstreamer 1.16MSVCon Win 10 there is an error loading the FTGL font plugin on a laptop (but strangely not a desktop):

>> DrawFormattedText2Demo

PTB-INFO: This is Psychtoolbox-3 for Microsoft Windows, under Matlab 64-Bit (Version 3.0.16 - Build date: Aug  7 2019).
PTB-INFO: OS support status: Windows 10 (Version 10.0) supported and tested to some limited degree.
PTB-INFO: Type 'PsychtoolboxVersion' for more detailed version information.
PTB-INFO: Most parts of the Psychtoolbox distribution are licensed to you under terms of the MIT License, with
PTB-INFO: some restrictions. See file 'License.txt' in the Psychtoolbox root folder for the exact licensing conditions.

PTB-INFO: The detected endline of the vertical blank interval is equal or lower than the startline. This indicates
PTB-INFO: that i couldn't detect the duration of the vertical blank interval and won't be able to correct timestamps
PTB-INFO: for it. This will introduce a very small and constant offset (typically << 1 msec). Read 'help BeampositionQueries'
PTB-INFO: for how to correct this, should you really require that last few microseconds of precision.
PTB-INFO: Btw. this can also mean that your systems beamposition queries are slightly broken. It may help timing precision to
PTB-INFO: enable the beamposition workaround, as explained in 'help ConserveVRAMSettings', section 'kPsychUseBeampositionQueryWorkaround'.


PTB-INFO: OpenGL-Renderer is NVIDIA Corporation :: Quadro T1000/PCIe/SSE2 :: 4.6.0 NVIDIA 419.72
PTB-INFO: VBL startline = 1080 , VBL Endline = 1080
PTB-INFO: Measured monitor refresh interval from beamposition = 16.683210 ms [59.940502 Hz].
PTB-INFO: Beamposition queries are supported, but disabled. Using basic timestamping as fallback:
PTB-INFO: Timestamps returned by Screen('Flip') will be therefore less robust and accurate.
PTB-INFO: Measured monitor refresh interval from VBLsync = 16.685332 ms [59.932880 Hz]. (50 valid samples taken, stddev=0.104266 ms.)
PTB-INFO: Reported monitor refresh interval from operating system = 16.949153 ms [59.000000 Hz].
PTB-INFO: Small deviations between reported values are normal and no reason to worry.
PTB-INFO: ==============================================================================================================================
PTB-INFO: WINDOWS DWM DESKTOP COMPOSITOR IS ACTIVE. On this Windows-10 or later system, Psychtoolbox can no longer reliably detect if
PTB-INFO: this will cause trouble for timing and integrity of visual stimuli or not. You might be just fine, or you could be in trouble.
PTB-INFO: Use external measurement equipment and independent procedures to verify reliability of timing if you care about proper timing.
PTB-INFO: ==============================================================================================================================
PTB-DEBUG: DrawText: Failed to load external drawtext plugin [Unknown error].
PTB-INFO: DrawText: Failed to load external drawtext plugin 'libptbdrawtext_ftgl64.dll'. Reverting to legacy GDI text renderer. 'help DrawTextPlugin' for troubleshooting.
Error using DrawFormattedText2 (line 272)
DrawFormattedText2 only works with the FTGL based text drawing plugin, but this plugin is not selected activated with
Screen('Preference','TextRenderer',1), or did not load correctly. See help DrawTextPlugin for more information.

Error in DrawFormattedText2Demo (line 46)
    DrawFormattedText2('top\nleft<color=ff0000>1','win',w,'sx',scrX-150,'sy',scrY-150,'xalign','right','yalign','bottom','xlayout','right');

I tried deleting libfreetype.dll but it didn't change the problem. I tried a verbosity 10 run but the log looks identical.

need to restart octave on nexus 7 after demo crashes for other demos to work again.

in more detail:
If I run a certain demo and it crashes I'll have (most of the time) to restart octave for other demos to work again. E.g.: "DriftDemo" works fine. But if I run "DriftDemo6" (which will crash) first and try to run "DriftDemo" shortly after, the later will also crash (until the next octave start).

here's the log:

GNU Octave, version 3.6.4
Copyright (C) 2013 John W. Eaton and others.
This is free software; see the source code for copying conditions.
There is ABSOLUTELY NO WARRANTY; not even for MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  For details, type `warranty'.

Octave was configured for "arm-unknown-linux-gnueabihf".

Additional information about Octave is available at http://www.octave.org.

Please contribute if you find this software useful.
For more information, visit http://www.octave.org/get-involved.html

Read http://www.octave.org/bugs.html to learn how to submit bug reports.

For information about changes from previous versions, type `news'.



warning: function /usr/share/octave/packages/statistics-1.2.0/fstat.m shadows a core library function
octave:1> 
octave:1>
octave:1> PsychGPUControl('FullScreenWindowDisablesCompositor', 1)
PTB-INFO: Display ':0.0' : X-Screen 0 : Assigning primary output as 0 with RandR-CRTC 0 and GPU-CRTC 0.
PsychGPUControl:FullScreenWindowDisablesCompositor: Desktop composition for fullscreen windows on screen 0 disabled.
ans = 0
octave:2> DriftDemo
Loading GLESv2lib libGLESv2
Library for API 1 exposes function not wrapped: glPointSizePointerOES


PTB-INFO: This is Psychtoolbox-3 for GNU/Linux WAFFLE, under GNU/Octave-3 32-Bit (Version 3.0.10 - Build date: Apr 11 2013).
PTB-INFO: Type 'PsychtoolboxVersion' for more detailed version information.
PTB-INFO: Most parts of the Psychtoolbox distribution are licensed to you under terms of the MIT License, with
PTB-INFO: some restrictions. See file 'License.txt' in the Psychtoolbox root folder for the exact licensing conditions.

PTB-INFO: Using FOSS Waffle display backend library, written by Chad Versace, Copyright 2012 Intel.
PTB-INFO: Waffle display backend 'X11/EGL' initialized [x11egl].
PTB-INFO: Trying to connect Waffle to display ':0.0'.
PTB-INFO: Waffle display backend connected to OpenGL rendering API 'OpenGL-ES 1' [gles1].
PTB-INFO: Will try to disable/suppress all internal OpenGL error reporting/handling for OpenGL-ES operation.
PTB-INFO: No low-level controllable GPU on screenId 0. Beamposition timestamping and other special functions disabled



PTB-INFO: OpenGL-Renderer is NVIDIA Corporation :: NVIDIA AP :: OpenGL ES-CM 1.1
octave:3> 
octave:3> DriftDemo6
Loading GLESv2lib libGLESv2
Library for API 1 exposes function not wrapped: glPointSizePointerOES


PTB-INFO: This is Psychtoolbox-3 for GNU/Linux WAFFLE, under GNU/Octave-3 32-Bit (Version 3.0.10 - Build date: Apr 11 2013).
PTB-INFO: Type 'PsychtoolboxVersion' for more detailed version information.
PTB-INFO: Most parts of the Psychtoolbox distribution are licensed to you under terms of the MIT License, with
PTB-INFO: some restrictions. See file 'License.txt' in the Psychtoolbox root folder for the exact licensing conditions.

PTB-INFO: Waffle display backend 'X11/EGL' initialized [x11egl].
PTB-INFO: Trying to connect Waffle to display ':0.0'.
PTB-INFO: Waffle display backend connected to OpenGL rendering API 'OpenGL-ES 1' [gles1].
PTB-INFO: Will try to disable/suppress all internal OpenGL error reporting/handling for OpenGL-ES operation.
PTB-INFO: No low-level controllable GPU on screenId 0. Beamposition timestamping and other special functions disabled.


PTB-INFO: OpenGL-Renderer is NVIDIA Corporation :: NVIDIA AP :: OpenGL ES-CM 1.1
PTB-INFO: VBL startline = 1280 , VBL Endline = -1
PTB-INFO: Beamposition queries unsupported or defective on this system. Using basic timestamping as fallback: Timestamps returned by Screen('Flip') will be less robust and accurate.
PTB-INFO: Measured monitor refresh interval from VBLsync = 16.625430 ms [60.148820 Hz]. (298 valid samples taken, stddev=0.356267 ms.)
PTB-INFO: Small deviations between reported values are normal and no reason to worry.

WARNING: Couldn't compute a reliable estimate of monitor refresh interval! Trouble with VBL syncing?!?


----- ! PTB - ERROR: SYNCHRONIZATION FAILURE ! ----

One or more internal checks (see Warnings above) indicate that synchronization
of Psychtoolbox to the vertical retrace (VBL) is not working on your setup.

This will seriously impair proper stimulus presentation and stimulus presentation timing!
Please read 'help SyncTrouble' for information about how to solve or work-around the problem.
You can force Psychtoolbox to continue, despite the severe problems, by adding the command
Screen('Preference', 'SkipSyncTests', 1); at the top of your script, if you really know what you are doing.


MOGL: Failed to initialize! Probably you called an OpenGL command *before* opening an onscreen window?!?
GLEW reported the following error: Missing GL version
AssertGLSL called before opening an Onscreen window! This will not work...
error: called from 'AssertGLSL' in file /PTB/Psychtoolbox/PsychOneliners/AssertGLSL.m near line 32, column 5
error: called from:
error:   /PTB/Psychtoolbox/PsychBasic/psychrethrow.m at line 15, column 1
error:   /PTB/Psychtoolbox/PsychDemos/DriftDemo6.m at line 202, column 5
octave:3> 
octave:3> 
octave:3> 
octave:3> 
octave:3> 
octave:3> DriftDemo
Loading GLESv2lib libGLESv2
Library for API 1 exposes function not wrapped: glPointSizePointerOES


PTB-INFO: This is Psychtoolbox-3 for GNU/Linux WAFFLE, under GNU/Octave-3 32-Bit (Version 3.0.10 - Build date: Apr 11 2013).
PTB-INFO: Type 'PsychtoolboxVersion' for more detailed version information.
PTB-INFO: Most parts of the Psychtoolbox distribution are licensed to you under terms of the MIT License, with
PTB-INFO: some restrictions. See file 'License.txt' in the Psychtoolbox root folder for the exact licensing conditions.

PTB-INFO: Waffle display backend 'X11/EGL' initialized [x11egl]
PTB-INFO: Trying to connect Waffle to display ':0.0'.
PTB-INFO: Waffle display backend connected to OpenGL rendering API 'OpenGL-ES 1' [gles1].
PTB-INFO: Will try to disable/suppress all internal OpenGL error reporting/handling for OpenGL-ES operation.
PTB-INFO: No low-level controllable GPU on screenId 0. Beamposition timestamping and other special functions disabled.


PTB-INFO: OpenGL-Renderer is NVIDIA Corporation :: NVIDIA AP :: OpenGL ES-CM 1.1
PTB-INFO: VBL startline = 1280 , VBL Endline = -1
PTB-INFO: Beamposition queries unsupported or defective on this system. Using basic timestamping as fallback: Timestamps returned by Screen('Flip') will be less robust and accurate.
PTB-INFO: Measured monitor refresh interval from VBLsync = 16.611208 ms [60.200318 Hz]. (298 valid samples taken, stddev=1.320957 ms.)
PTB-INFO: Small deviations between reported values are normal and no reason to worry.

WARNING: Couldn't compute a reliable estimate of monitor refresh interval! Trouble with VBL syncing?!?


----- ! PTB - ERROR: SYNCHRONIZATION FAILURE ! ----

One or more internal checks (see Warnings above) indicate that synchronization
of Psychtoolbox to the vertical retrace (VBL) is not working on your setup.

This will seriously impair proper stimulus presentation and stimulus presentation timing!
Please read 'help SyncTrouble' for information about how to solve or work-around the problem.
You can force Psychtoolbox to continue, despite the severe problems, by adding the command
Screen('Preference', 'SkipSyncTests', 1); at the top of your script, if you really know what you are doing.



Error in function MakeTexture:  Missing argument
        Discrepancy between a specified and supplied argument:
                Specified Argument Description:
                        direction: Input
                        position: 1
                        presence:forbidden
                        formats allowed:
                                double
                        minimum M: -1
                        maximum M: 1
                        minimum N: 3
                        maximum N: 1
                        minimum P: 3
                        maximum P: 1
                Provided Argument Description:
                        direction: Input
                        position: 1
                        presence: absent
Screen: Usage:

textureIndex=Screen('MakeTexture', WindowIndex, imageMatrix [, optimizeForDrawAngle=0] [, specialFlags=0] [, floatprecision=0] [, textureOrientation=0] [, textureShader=0]);
error: called from 'DriftDemo' in file /PTB/Psychtoolbox/PsychDemos/DriftDemo.m near line 90, column 9
error: called from:
error:   /PTB/Psychtoolbox/PsychBasic/psychrethrow.m at line 15, column 1
error:   /PTB/Psychtoolbox/PsychDemos/DriftDemo.m at line 140, column 5
octave:3> 
octave:3>

GStreamer Install location on 64bit OS X

Using the 64bit OS X build with gstreamer installed via homebrew Screen fails to find gstreamer. It seems the recommended gstreamer pkg installs a system framework and in /usr/bin.

Homebrew offers several advantages for package maintenance (also libdc1394) and I hope PTB could use /usr/local/ when it lazy-links (in osxmakeit) to gstreamer? The current homebrew gstreamer is 0.10.35 as oppose to 0.10.29 from that precompiled package...

Ubuntu 20.10 and libdc1394.so.25

For the newly released Ubuntu 20.10, libdc1394 has been updated to libdc1394.so.25 and cannot be found on PTB startup.

MATLAB:mex:ErrInvalidMEXFile
Invalid MEX-file
'/home/cog5/Code/Psychtoolbox-3/Psychtoolbox/PsychBasic/Screen.mexa64':
libdc1394.so.22: cannot open shared object file: No such file or directory 

If I manually add a softlink sudo ln -s libdc1394.so.25 libdc1394.so.22 then PTB works fine. GStreamer has also been updated to 1.18 for 20.10 and seems to work fine.

Minor: case sensitive error

Matlab2012a is more fussy about correct case, and thus EyelinkFixationWindow.m is erroring on line 97:

Cannot find an exact (case-sensitive) match for 'whiteIndex'

The closest match is: WhiteIndex
in /Users/opticka/Code/Psychtoolbox-3/Psychtoolbox/PsychOneliners/WhiteIndex.m


Error in EyelinkFixationWindow (line 97)
    el.calibrationtargetcolour= whiteIndex(el.window);

gst-ffmpeg no longer available

Hi Mario, in the gstreamer.m docs, it suggests that to install gstreamer using homebrew to install gst-ffmpeg -- this is now not present in the homebrew repo anymore (though there is now a gst-libav). Anyway, even installing gstreamer and all plugins (base, good, bad, ugly, libav), basic demos like PlayMoviesDemo are failing:

PTB-ERROR: Tried to startup GStreamer multi-media framework. This didn't work, because one
PTB-ERROR: of the required GStreamer runtime libraries failed to load, probably because it
PTB-ERROR: could not be found, could not be accessed (e.g., due to permission problems),
PTB-ERROR: or most likely because GStreamer isn't installed on this machine at all.

PTB-ERROR: Please read the help by typing 'help GStreamer' for installation and troubleshooting
PTB-ERROR: instructions.

PTB-ERROR: Due to failed GStreamer initialization, the movie playback engine is disabled for this session.

Error in function OpenMovie:    Usage error
GStreamer initialization failed due to library loading problems. Aborted.

I don't remember what commands I need to test why gstreamer is failing, I couldn't see any helpful log entries in console...

Here is the output from gst-inspect:
https://gist.github.com/iandol/5806849

ReadNormalizedGammaTable error on Windows 10 + Nvidia GPU

PTB 3.0.16, Win 10 on NVIDIA 1080Ti latest drivers. Running BackupCluts that calls Screen('ReadNormalizedGammaTable', screenid) there is an internal PTB error generated.

INTERNAL PSYCHTOOLBOX ERROR
	error:                PsychError_internal
	general description:  Unspecified error, probably a Psychtoolbox bug
	specific description: Failed to query the hardware gamma table from graphics adapter!
	module name:          Screen
	subfunction call:     ReadNormalizedGammaTable
	file name:            C:\Users\Mario Kleiner\Documents\GitHub\Psychtoolbox-3\PsychSourceGL\Source\Windows\Screen\PsychScreenGlue.c
	function name:        PsychReadNormalizedGammaTable
	line number:          1159

Error using Screen
See error message printed above.

Error in BackupCluts (line 43)
        oldClut = Screen('ReadNormalizedGammaTable', screenid);

GStreamer and Transparent Video Support?

I want to use small animations on a black background to help with eye calibration for infants. Most available videos are GIFs with an alpha mask (GIFs can have a 1bit alpha channel), but GIFs themselves don't seem to play with GStreamer (ubuntu 19.10, all good/bad/ugly plugins installed). So I converted a transparent GIF to webm format (using ffmpeg; webm supports yuva420 transparency), which plays with transparent background in Firefox. But whatever pixelFormat or special flags I've tried in Screen OpenMovie I cannot get it to play with transparency using PTB.

Example transparent webm and source gif:
yy1.gif.gz
yy2.webm.gz

SimpleHDRDemo.m missing from source code downloads

Please provide example scripts including the one listed in the introduction page such as, SimpleHDRDemo.m. While HDR support has been verified, getting the first tools running is missing from early documentation. Many thanks,The HDR demo I found elsewhere is related to BrightSide which is not the version VESA wants to use.

PTB-WARNING for DrawText

Hi Mario, whenever I use DrawText, I see the following warning:

PTB-WARNING: DrawText: Failed to load external drawtext plugin [/home/psychww/Code/Psychtoolbox-3/Psychtoolbox/PsychBasic/PsychPlugins/libptbdrawtext_ftgl.so.1: wrong ELF class: ELFCLASS32]. Retrying under generic name [libptbdrawtext_ftgl.so.1].

Everything works fine, but just thought I'd mention it. Ubuntu 18.04 & MATLAB 2018b the full log is below, but note I was trying the 4.19 kernel + stable MESA but this does not affect the warning which occurs under the standard 4.15 kernel and MESA...

>> DrawFormattedTextDemo


PTB-INFO: This is Psychtoolbox-3 for GNU/Linux X11, under Matlab 64-Bit (Version 3.0.15 - Build date: Oct 19 2018).
PTB-INFO: Support status on this operating system release: Linux 4.19.0-041900-generic Supported.
PTB-INFO: Type 'PsychtoolboxVersion' for more detailed version information.
PTB-INFO: Most parts of the Psychtoolbox distribution are licensed to you under terms of the MIT License, with
PTB-INFO: some restrictions. See file 'License.txt' in the Psychtoolbox root folder for the exact licensing conditions.

PTB-INFO: Advanced Micro Devices, Inc. [AMD/ATI] - Ellesmere [Radeon Pro WX 5100] GPU found. Trying to establish low-level access...
PTB-INFO: Connected to Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon Pro WX 5100] GPU with DCE-11.0 display engine [6 heads].
PTB-INFO: Using old-style override-redirect setup path for onscreen window creation.
PTB-INFO: Running on Mesa version 18.2.3
PTB-INFO: This combo of X-Server and Mesa is considered safe for use under DRI3/Present.
PTB-INFO: Using GLEW version 2.0.0 for automatic detection of OpenGL extensions...
PTB-INFO: Window uses DRI3/Present for visual stimulus presentation.
PTB-INFO: Using GLX_MESA_swap_control extension for control of vsync.
PTB-INFO: INTEL_swap_event support for additional swap completion correctness checks enabled.


OpenGL-Vendor / renderer / version are: X.Org - AMD Radeon (TM) Pro WX 5100 Graphics (POLARIS10, DRM 3.27.0, 4.19.0-041900-generic, LLVM 7.0.0) - 4.4 (Compatibility Profile) Mesa 18.2.3 - padoka PPA


OpenGL-Extensions are: GL_ARB_multisample GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_copy_texture GL_EXT_subtexture GL_EXT_texture_object GL_EXT_vertex_array GL_EXT_compiled_vertex_array GL_EXT_texture GL_EXT_texture3D GL_IBM_rasterpos_clip GL_ARB_point_parameters GL_EXT_draw_range_elements GL_EXT_packed_pixels GL_EXT_point_parameters GL_EXT_rescale_normal GL_EXT_separate_specular_color GL_EXT_texture_edge_clamp GL_SGIS_generate_mipmap GL_SGIS_texture_border_clamp GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_ARB_framebuffer_sRGB GL_ARB_multitexture GL_EXT_framebuffer_sRGB GL_IBM_multimode_draw_arrays GL_IBM_texture_mirrored_repeat GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_transpose_matrix GL_EXT_blend_func_separate GL_EXT_fog_coord GL_EXT_multi_draw_arrays GL_EXT_secondary_color GL_EXT_texture_env_add GL_EXT_texture_filter_anisotropic GL_EXT_texture_lod_bias GL_INGR_blend_func_separate GL_NV_blend_square GL_NV_light_max_exponent GL_NV_texgen_reflection GL_NV_texture_env_combine4 GL_S3_s3tc GL_SUN_multi_draw_arrays GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_EXT_framebuffer_object GL_EXT_texture_compression_s3tc GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_MESA_window_pos GL_NV_packed_depth_stencil GL_NV_texture_rectangle GL_ARB_depth_texture GL_ARB_occlusion_query GL_ARB_shadow GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_mirrored_repeat GL_ARB_window_pos GL_ATI_fragment_shader GL_EXT_stencil_two_side GL_EXT_texture_cube_map GL_NV_depth_clamp GL_NV_fog_distance GL_APPLE_packed_pixels GL_ARB_draw_buffers GL_ARB_fragment_program GL_ARB_fragment_shader GL_ARB_shader_objects GL_ARB_vertex_program GL_ARB_vertex_shader GL_ATI_draw_buffers GL_ATI_texture_env_combine3 GL_ATI_texture_float GL_EXT_depth_bounds_test GL_EXT_shadow_funcs GL_EXT_stencil_wrap GL_MESA_pack_invert GL_NV_primitive_restart GL_ARB_depth_clamp GL_ARB_fragment_program_shadow GL_ARB_half_float_pixel GL_ARB_occlusion_query2 GL_ARB_point_sprite GL_ARB_shading_language_100 GL_ARB_sync GL_ARB_texture_non_power_of_two GL_ARB_vertex_buffer_object GL_ATI_blend_equation_separate GL_EXT_blend_equation_separate GL_OES_read_format GL_ARB_color_buffer_float GL_ARB_pixel_buffer_object GL_ARB_texture_compression_rgtc GL_ARB_texture_float GL_ARB_texture_rectangle GL_ATI_texture_compression_3dc GL_EXT_packed_float GL_EXT_pixel_buffer_object GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_rgtc GL_EXT_texture_mirror_clamp GL_EXT_texture_rectangle GL_EXT_texture_sRGB GL_EXT_texture_shared_exponent GL_ARB_framebuffer_object GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_packed_depth_stencil GL_ARB_vertex_array_object GL_ATI_separate_stencil GL_ATI_texture_mirror_once GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_gpu_program_parameters GL_EXT_texture_array GL_EXT_texture_compression_latc GL_EXT_texture_integer GL_EXT_texture_sRGB_decode GL_EXT_timer_query GL_OES_EGL_image GL_AMD_performance_monitor GL_ARB_copy_buffer GL_ARB_depth_buffer_float GL_ARB_draw_instanced GL_ARB_half_float_vertex GL_ARB_instanced_arrays GL_ARB_map_buffer_range GL_ARB_texture_buffer_object GL_ARB_texture_rg GL_ARB_texture_swizzle GL_ARB_vertex_array_bgra GL_EXT_texture_swizzle GL_EXT_vertex_array_bgra GL_NV_conditional_render GL_AMD_conservative_depth GL_AMD_draw_buffers_blend GL_AMD_seamless_cubemap_per_texture GL_AMD_shader_stencil_export GL_ARB_ES2_compatibility GL_ARB_blend_func_extended GL_ARB_compatibility GL_ARB_debug_output GL_ARB_draw_buffers_blend GL_ARB_draw_elements_base_vertex GL_ARB_explicit_attrib_location GL_ARB_fragment_coord_conventions GL_ARB_provoking_vertex GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_shader_stencil_export GL_ARB_shader_texture_lod GL_ARB_tessellation_shader GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_cube_map_array GL_ARB_texture_gather GL_ARB_texture_multisample GL_ARB_texture_query_lod GL_ARB_texture_rgb10_a2ui GL_ARB_uniform_buffer_object GL_ARB_vertex_type_2_10_10_10_rev GL_ATI_meminfo GL_EXT_provoking_vertex GL_EXT_texture_snorm GL_MESA_texture_signed_rgba GL_NV_texture_barrier GL_ARB_draw_indirect GL_ARB_get_program_binary GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_robustness GL_ARB_separate_shader_objects GL_ARB_shader_bit_encoding GL_ARB_shader_precision GL_ARB_shader_subroutine GL_ARB_texture_compression_bptc GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_vertex_attrib_64bit GL_ARB_viewport_array GL_NV_vdpau_interop GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ARB_base_instance GL_ARB_compressed_texture_pixel_storage GL_ARB_conservative_depth GL_ARB_internalformat_query GL_ARB_map_buffer_alignment GL_ARB_shader_atomic_counters GL_ARB_shader_image_load_store GL_ARB_shading_language_420pack GL_ARB_shading_language_packing GL_ARB_texture_storage GL_ARB_transform_feedback_instanced GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_transform_feedback GL_AMD_shader_trinary_minmax GL_AMD_vertex_shader_layer GL_AMD_vertex_shader_viewport_index GL_ARB_ES3_compatibility GL_ARB_arrays_of_arrays GL_ARB_clear_buffer_object GL_ARB_compute_shader GL_ARB_copy_image GL_ARB_explicit_uniform_location GL_ARB_fragment_layer_viewport GL_ARB_framebuffer_no_attachments GL_ARB_invalidate_subdata GL_ARB_multi_draw_indirect GL_ARB_program_interface_query GL_ARB_robust_buffer_access_behavior GL_ARB_shader_image_size GL_ARB_shader_storage_buffer_object GL_ARB_stencil_texturing GL_ARB_texture_buffer_range GL_ARB_texture_query_levels GL_ARB_texture_storage_multisample GL_ARB_texture_view GL_ARB_vertex_attrib_binding GL_KHR_debug GL_KHR_robustness GL_KHR_texture_compression_astc_ldr GL_AMD_pinned_memory GL_ARB_bindless_texture GL_ARB_buffer_storage GL_ARB_clear_texture GL_ARB_compute_variable_group_size GL_ARB_enhanced_layouts GL_ARB_indirect_parameters GL_ARB_internalformat_query2 GL_ARB_multi_bind GL_ARB_query_buffer_object GL_ARB_seamless_cubemap_per_texture GL_ARB_shader_draw_parameters GL_ARB_shader_group_vote GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_stencil8 GL_ARB_vertex_type_10f_11f_11f_rev GL_EXT_shader_integer_mix GL_NVX_gpu_memory_info GL_ARB_ES3_1_compatibility GL_ARB_clip_control GL_ARB_conditional_render_inverted GL_ARB_cull_distance GL_ARB_derivative_control GL_ARB_get_texture_sub_image GL_ARB_pipeline_statistics_query GL_ARB_shader_texture_image_samples GL_ARB_sparse_buffer GL_ARB_texture_barrier GL_ARB_transform_feedback_overflow_query GL_EXT_polygon_offset_clamp GL_KHR_blend_equation_advanced GL_KHR_context_flush_control GL_KHR_robust_buffer_access_behavior GL_ARB_shader_atomic_counter_ops GL_ARB_shader_ballot GL_ARB_shader_clock GL_ARB_shader_viewport_layer_array GL_KHR_no_error GL_MESA_shader_integer_functions GL_ARB_polygon_offset_clamp GL_ARB_texture_filter_anisotropic GL_EXT_memory_object GL_EXT_memory_object_fd GL_EXT_semaphore GL_EXT_semaphore_fd 



PTB-INFO: OpenGL-Renderer is X.Org :: AMD Radeon (TM) Pro WX 5100 Graphics (POLARIS10, DRM 3.27.0, 4.19.0-041900-generic, LLVM 7.0.0) :: 4.4 (Compatibility Profile) Mesa 18.2.3 - padoka PPA
PTB-INFO: VBL startline = 1080 , VBL Endline = 1123
PTB-INFO: Measured monitor refresh interval from beamposition = 8.332676 ms [120.009469 Hz].
PTB-INFO: Will try to use OS-Builtin OpenML sync control support for accurate Flip timestamping.
PTB-INFO: Measured monitor refresh interval from VBLsync = 8.332629 ms [120.010140 Hz]. (50 valid samples taken, stddev=0.000655 ms.)
PTB-INFO: Reported monitor refresh interval from operating system = 8.332778 ms [120.008003 Hz].
PTB-INFO: Small deviations between reported values are normal and no reason to worry.
PTB-INFO: Support for fast OffscreenWindows enabled.
PTB-WARNING: DrawText: Failed to load external drawtext plugin [/home/psychww/Code/Psychtoolbox-3/Psychtoolbox/PsychBasic/PsychPlugins/libptbdrawtext_ftgl.so.1: wrong ELF class: ELFCLASS32]. Retrying under generic name [libptbdrawtext_ftgl.so.1].

Average redraw duration for scrolling in msecs: 11.960609


INFO: PTB's Screen('Flip', 10) command seems to have missed the requested stimulus presentation deadline
INFO: a total of 4 times out of a total of 721 flips during this session.

INFO: This number is fairly accurate (and indicative of real timing problems in your own code or your system)
INFO: if you provided requested stimulus onset times with the 'when' argument of Screen('Flip', window [, when]);
INFO: If you called Screen('Flip', window); without the 'when' argument, this count is more of a ''mild'' indicator
INFO: of timing behaviour than a hard reliable measurement. Large numbers may indicate problems and should at least
INFO: deserve your closer attention. Cfe. 'help SyncTrouble', the FAQ section at www.psychtoolbox.org and the
INFO: examples in the PDF presentation in PsychDocumentation/Psychtoolbox3-Slides.pdf for more info and timing tips.

OffsetRect and single row-indexed (4,1) rect input

If you try to run ProceduralGarboriumDemo(1) you get a crash in OffsetRect.m:

Error using OffsetRect (line 33)
Wrong size rect argument. A single rect must be a 1-row 4 element vector!

Error in CenterRectOnPointd (line 26)
newRect = OffsetRect(rect,x-cX,y-cY);

Error in ProceduralGarboriumDemo (line 236)
    dstRects = CenterRectOnPointd(inrect .* repmat(scale,4,1), x, y);

ProceduralGarboriumDemo(2) works (even though it also passes row-indexed rect) and this is due to the following check starting line 30 of OffsetRect.m:

if PsychNumel(oldRect) == 4
    % Single rect case:
    if size(oldRect,2)~=4
        error('Wrong size rect argument. A single rect must be a 1-row 4 element vector!');
    end

Other PsychRect functions are quite robust about swapping row/column order, and OffsetRect works fine if the error condition is removed. I'm not sure if you prefer to keep this strict check in place or relax it?

Problems with libglut.so.3

Hi Mario,

In my ongoing issue to try to get Ubuntu + PTB working on a Polaris 11 WX 4100 card, I downgraded from Ubuntu 17.04 and MESA to 16.10 and AMDPRO, as that was recommended to fix the MATLAB bug. MATLAB works fine, but now I get this error when running PTB. I will try your sudo apt install matlab-support and see if that helps.

>> VBLSyncTest

PTB-INFO: This is Psychtoolbox-3 for GNU/Linux X11, under Matlab 64-Bit (Version 3.0.14 - Build date: Jun  8 2017).
PTB-INFO: Support status on this operating system release: Linux 4.8.0-59-generic Supported.
PTB-INFO: Type 'PsychtoolboxVersion' for more detailed version information.
PTB-INFO: Most parts of the Psychtoolbox distribution are licensed to you under terms of the MIT License, with
PTB-INFO: some restrictions. See file 'License.txt' in the Psychtoolbox root folder for the exact licensing conditions.

PTB-INFO: Advanced Micro Devices, Inc. [AMD/ATI] - (null) GPU found. Trying to establish low-level access...
PTB-INFO: Connected to Advanced Micro Devices, Inc. [AMD/ATI] (null) GPU with DCE-11.0 display engine [6 heads].

PTB-WARNING: The flip stimulus onset completed at vblank count 44793 before the requested target vblank count 44797 !!
PTB-WARNING: This likely means a serious graphics driver bug or malfunction in the drivers swap scheduling mechanism!
PTB-WARNING: I will now switch to a fallback / backup method for the remainder of this session, trying to work around this bug.
PTB-WARNING: All Intel graphics drivers released between June 2011 and up to 14th December 2012 are known to have this bug.
PTB-WARNING: If you use such a graphics card or driver, please try to update your graphics driver as soon as possible for reliable operation.



PTB-INFO: OpenGL-Renderer is ATI Technologies Inc. :: AMD Radeon (TM) Pro WX 4100 :: 4.5.13491 Compatibility Profile Context FireGL 17.30.0
PTB-INFO: VBL startline = 1080 , VBL Endline = 1123
PTB-INFO: Measured monitor refresh interval from beamposition = 16.665142 ms [60.005488 Hz].
PTB-INFO: Will try to use OS-Builtin OpenML sync control support for accurate Flip timestamping.
PTB-INFO: Measured monitor refresh interval from VBLsync = 16.665006 ms [60.005980 Hz]. (50 valid samples taken, stddev=0.002655 ms.)
PTB-INFO: Reported monitor refresh interval from operating system = 16.666667 ms [60.000000 Hz].
PTB-INFO: Small deviations between reported values are normal and no reason to worry.
PTB-WARNING: Skipping context detach in PsychOSUnsetGLContext() to work around buggy amdgpu-pro OpenGL driver!
Invalid MEX-file '/home/aristotle/Code/Psychtoolbox-3/Psychtoolbox/PsychBasic/moglcore.mexa64': Missing dependent shared libraries:
'libglut.so.3' required by '/home/aristotle/Code/Psychtoolbox-3/Psychtoolbox/PsychBasic/moglcore.mexa64'

Missing symbol 'glutInit' required by '/home/aristotle/Code/Psychtoolbox-3/Psychtoolbox/PsychBasic/moglcore.mexa64'
Missing symbol 'glutSolidCone' required by '/home/aristotle/Code/Psychtoolbox-3/Psychtoolbox/PsychBasic/moglcore.mexa64'
Missing symbol 'glutSolidCube' required by '/home/aristotle/Code/Psychtoolbox-3/Psychtoolbox/PsychBasic/moglcore.mexa64'
Missing symbol 'glutSolidDodecahedron' required by '/home/aristotle/Code/Psychtoolbox-3/Psychtoolbox/PsychBasic/moglcore.mexa64'
Missing symbol 'glutSolidIcosahedron' required by '/home/aristotle/Code/Psychtoolbox-3/Psychtoolbox/PsychBasic/moglcore.mexa64'
Missing symbol 'glutSolidOctahedron' required by '/home/aristotle/Code/Psychtoolbox-3/Psychtoolbox/PsychBasic/moglcore.mexa64'
Missing symbol 'glutSolidSphere' required by '/home/aristotle/Code/Psychtoolbox-3/Psychtoolbox/PsychBasic/moglcore.mexa64'
Missing symbol 'glutSolidTeapot' required by '/home/aristotle/Code/Psychtoolbox-3/Psychtoolbox/PsychBasic/moglcore.mexa64'
Missing symbol 'glutSolidTetrahedron' required by '/home/aristotle/Code/Psychtoolbox-3/Psychtoolbox/PsychBasic/moglcore.mexa64'
Missing symbol 'glutSolidTorus' required by '/home/aristotle/Code/Psychtoolbox-3/Psychtoolbox/PsychBasic/moglcore.mexa64'
Missing symbol 'glutWireCone' required by '/home/aristotle/Code/Psychtoolbox-3/Psychtoolbox/PsychBasic/moglcore.mexa64'
Missing symbol 'glutWireCube' required by '/home/aristotle/Code/Psychtoolbox-3/Psychtoolbox/PsychBasic/moglcore.mexa64'
Missing symbol 'glutWireDodecahedron' required by '/home/aristotle/Code/Psychtoolbox-3/Psychtoolbox/PsychBasic/moglcore.mexa64'
Missing symbol 'glutWireIcosahedron' required by '/home/aristotle/Code/Psychtoolbox-3/Psychtoolbox/PsychBasic/moglcore.mexa64'
Missing symbol 'glutWireOctahedron' required by '/home/aristotle/Code/Psychtoolbox-3/Psychtoolbox/PsychBasic/moglcore.mexa64'
Missing symbol 'glutWireSphere' required by '/home/aristotle/Code/Psychtoolbox-3/Psychtoolbox/PsychBasic/moglcore.mexa64'
Missing symbol 'glutWireTeapot' required by '/home/aristotle/Code/Psychtoolbox-3/Psychtoolbox/PsychBasic/moglcore.mexa64'
Missing symbol 'glutWireTetrahedron' required by '/home/aristotle/Code/Psychtoolbox-3/Psychtoolbox/PsychBasic/moglcore.mexa64'
Missing symbol 'glutWireTorus' required by '/home/aristotle/Code/Psychtoolbox-3/Psychtoolbox/PsychBasic/moglcore.mexa64'.

Error in InitializeMatlabOpenGL (line 179)
moglcore('DEBUGLEVEL', debuglevel);

Error in PsychImaging>PostConfiguration (line 3176)
    InitializeMatlabOpenGL([], [], 1);

Error in PsychImaging (line 2218)
    PostConfiguration(reqs, win, clearcolor, slavewin);

Error in VBLSyncTest (line 284)
        w=PsychImaging('OpenWindow',screenNumber, 0,[],[],[], stereo);
๐Ÿ‘‰  glxinfo | grep "OpenGL"
OpenGL vendor string: Advanced Micro Devices, Inc.
OpenGL renderer string: AMD Radeon (TM) Pro WX 4100
OpenGL core profile version string: 4.5.13491 Core Profile Context FireGL 17.30.0
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.5.13491 Compatibility Profile Context FireGL 17.30.0
OpenGL shading language version string: 4.50
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile
OpenGL extensions:
OpenGL ES profile version string: 4.5.13491 Compatibility Profile Context FireGL 17.30.0
OpenGL ES profile shading language version string: 4.50
OpenGL ES profile extensions:

XOrgConfCreator and 30bit assignment on multiple monitors

XOrgConfCreator.m asks users to choose screens with numbers starting from 1, e.g.:

1) Output DisplayPort-0.
2) Output DisplayPort-3.

However, later on, when asking which screens to apply 30bit option:

depth30bpp = input('Enter a space-separated list of screen numbers for which 30 bit color depth should be used: ', 's');

... it seems to later expect 0:n numbering when the configuration is written:

for i = 0:screenNumber
...
  if ismember('y', depth30bpp) || ismember(num2str(i), depth30bpp)
      fprintf(fid, '  DefaultDepth  30\n');
  end
end

So if a user chooses screen 2 for 30bit display it will never be enabled as the loop never gets to this value. Was the original intention to keep the 1:n numbering consistent for user questions (and thus offset the index by 1 during the if conditional ismember(num2str(i + 1), depth30bpp) check)?

len = 0 in iView

Dear all,

We are trying to get the SMI iViewX RED 500 to work. Remote commands work fine, but receiving data using the iViewXComm doesn't work... Pinging the iViewX does work using this snippet:

% See if we can ping RED:
IVXsend('ET_PNG',ivx);
data = IVXreceive(ivx);
if ~strncmp(data,'ET_PNG',6)
    fprintf([mfilename ': cannot ping the iViewX host.\n']);
    [success, ivx]=iViewX('closeconnection', ivx);
    return
else strncmp(data,'ET_PNG',6)
    fprintf([mfilename ': The ET_PNG-signal pinged to the iViewX host was echoed back to and recieved by the matlab script.\n']);
end

IVXsend and IVXreceive are subparts (and minutely tweaked) versions of the iViewXComm function and are taken from Jenny Read (see attachment).

If I try to run the calibration I get a time out. When I interrupt the script the matlab script hangs up at 'if len>0' at line 51 of iViewXComm-script (also attatched to this issue)

% open connection for receiving data
[success, ivx]=iViewX('openconnection', ivx);

if success==-1
    fprintf([mfilename ': cannot open a connection to iViewX host.\n']);
    return
end
 % send screen info
 [success, ivx]=iViewX('setscreensize', ivx);
 [success, ivx]=iViewX('startrecording', ivx);

 % send (possibly adapted) calibration point positions
 [success, ivx]=iViewX('setcalibration', ivx, ivx.nCalPoints); %??
 [success, ivx]=iViewX('sendcalibrationpoints', ivx);

% now we should wait for iView to send
% information on calibration screen size
% and calibration point positions
% now we should wait for iView to send
% information on calibration screen size
% and calibration point positions
% now we should wait for iView to send
% information on calibration screen size
% and calibration point positions
tBreak=GetSecs+ivx.commTimeOut;
npts=0;
klaar=0;
while klaar==0
    [keyIsDown,secs,keyCode] = KbCheck;
    if 1==keyCode(ivx.modifierKey) & 1==keyCode(ivx.breakKey)
        fprintf('Break or modifier key detected')
        result=-1;
        return;
        break;
    end

    if GetSecs>tBreak
        fprintf([mfilename ': timed out waiting for data.\n']);
        result=-1;
        return
    end
    [data, ivx]=iViewX('receivedata', ivx);

For some reason len = 0, but I don't understand why. It was also capable to ping the iViewX.
I have overwritten the default settings from ivx to:
ivx.host= '10.10.10.1';
ivx.port= 4444;
ivx.localport= 5555;
ivx.screenHSize = 1280;
ivx.screenVSize = 1024;
ivx.nCalPoints = 9;
ivx.calTimeOut = 4;

Should we also modify ivx.socket, ivx.udpreadtimeout and ivx.udpmaxread to receive data from the eyetracker?

It would be great if you could help us.

Thanks in advance,
Pol van Rijn

iViewXComm.zip
IVXsend.zip
IVXreceive.zip

Warning with Linux DrawText

Hi, we've got a very hard to track down Linux issue, whereby after calibrating using the eyelink and exiting the calibration the PTB screen closes and somehow the experiment M file is run again (it shouldn't run again according to the loop in the experiment). This happens several times but at some point the experiment starts normally. This only happens on Linux (Ubuntu 17.01 using 4.10 low latency kernel), running the latest Github PTB under MATLAB 2017a.

The only warning I see is the following:

PTB-WARNING: DrawText: Failed to load external drawtext plugin [/home/aristotle/Code/Psychtoolbox-3/Psychtoolbox/PsychBasic/PsychPlugins/libptbdrawtext_ftgl.so.1: wrong ELF class: ELFCLASS32]. Retrying under generic name [libptbdrawtext_ftgl.so.1].

This is a 64bit install, not sure why it is trying to load the 32bit library. I do have everything GStreamer installed and up-to-date. I don't even use DrawText, though I'm sure the Eyelink calibration system does.

The experiment code is here: https://github.com/iandol/isoluminant/blob/master/runIsoluminant.m, and a log where a screen keeps reopening here: https://gist.github.com/iandol/87427ff1f8da0a4523f79ce2da4dabbd

Sorry this is so general, when I try to step-debug this I cannot trigger it, and it triggers slightly differently each time. It doesn't trigger if I try without the Eyelink present on my macOS development machine, or on Linux if I run the Eyelink in dummy mode. So if I can resolve the DrawText warning perhaps this may help?

Problem with missing/incompatible libglut.so.3 on Ubuntu 23.04

I had a working installation of Psychtoolbox-3 on my Ubuntu 23.04 system. But over the last two days all scripts freeze with a white screen plus cursor. VBLSyncTest shows that libglut.so.3 is either missing or an incompatible version. I have tried installing freeglut3-dev, and that still doesn't seem to fix the problem.

`>> VBLSyncTest

PTB-INFO: This is Psychtoolbox-3 for GNU/Linux X11, under GNU/Octave 64-Bit (Version 3.0.19 - Build date: Feb 19 2023).
PTB-INFO: OS support status: Linux 6.2.0-20-generic Supported.
PTB-INFO: Type 'PsychtoolboxVersion' for more detailed version information.
PTB-INFO: Most parts of the Psychtoolbox distribution are licensed to you under terms of the MIT License, with
PTB-INFO: some restrictions. See file 'License.txt' in the Psychtoolbox root folder for the exact licensing conditions.

PTB-INFO: For information about paid support, support memberships and other commercial services, please type
PTB-INFO: 'PsychPaidSupportAndServices'.

PTB-INFO: Connected to NVidia TU104BM [GeForce RTX 2080 Mobile] GPU of NV-160 family with 4 display heads.

PTB-INFO: OpenGL-Renderer is NVIDIA Corporation :: NVIDIA GeForce RTX 2080/PCIe/SSE2 :: 4.6.0 NVIDIA 525.105.17
PTB-INFO: VBL startline = 1080 , VBL Endline = 1223
PTB-INFO: Measured monitor refresh interval from beamposition = 6.955653 ms [143.767958 Hz].
PTB-INFO: Will use beamposition query for accurate Flip time stamping.
PTB-INFO: Measured monitor refresh interval from VBLsync = 6.955757 ms [143.765801 Hz]. (50 valid samples taken, stddev=0.030387 ms.)
PTB-INFO: Reported monitor refresh interval from operating system = 6.944203 ms [144.005005 Hz].
PTB-INFO: Small deviations between reported values are normal and no reason to worry.
error: /home/sayantan/psychtoolbox_root/Psychtoolbox/PsychBasic/Octave5LinuxFiles64/moglcore.mex: failed to load
Incompatible version or missing dependency?
libglut.so.3: cannot open shared object file: No such file or directory
error: called from
glGetError at line 15 column 3
PsychImaging at line 2609 column 11
VBLSyncTest at line 295 column 7`

Make Screen Resolution a bit less verbose

When changing resolution using Screen('Resolution') on linux it prints out every mode, i.e.:

PTB-INFO: Trying to validate/find closest video mode for requested spec: width = 1920 x height = 1080, rate 120 Hz.
PTB-INFO: Testing against mode of resolution w x h = 1920 x 1080 with refresh rates: 120 --> Got it! Mode id 0. 100 
PTB-INFO: Testing against mode of resolution w x h = 1680 x 1050 with refresh rates: 
PTB-INFO: Testing against mode of resolution w x h = 1440 x 1080 with refresh rates: 
PTB-INFO: Testing against mode of resolution w x h = 1280 x 1024 with refresh rates: 
PTB-INFO: Testing against mode of resolution w x h = 1440 x 900 with refresh rates: 
PTB-INFO: Testing against mode of resolution w x h = 1280 x 800 with refresh rates: 
PTB-INFO: Testing against mode of resolution w x h = 1280 x 720 with refresh rates: 
PTB-INFO: Testing against mode of resolution w x h = 1024 x 768 with refresh rates: 
PTB-INFO: Testing against mode of resolution w x h = 800 x 600 with refresh rates: 
PTB-INFO: Testing against mode of resolution w x h = 640 x 480 with refresh rates: 

This is done starting line 1933 of linux PsychScreenGlue.c - I am happy to rewrite it so it only outputs the mode that matches, but wanted to ask before making a pull how you would prefer to handle the logging of this? My preference would be to just show the first two lines, one saying what is being asked for and a second if a match is found, and if no match is found then say so. If you want to still print the other non-matched modes perhaps we can put it into verbosity>4 or something.

Invalid Window Record

Hi Mario,

I've got a really hard to track down issue which I can't easily reproduce in a simplified testcase which is nevertheless repeatable with a full set of code. Ubuntu 20.04, MATLAB 2020a and latest PTB.

Here is the trigger scenario:

  1. Two screens, subject and operator -- open subject first (assigned handle=10).
  2. Then create operator (handle=11), in the full code case this is for calibrating an eyetraker using Dee's toolbox, Titta.
  3. Close operator when finishing calibrating and run the experiment.
  4. setup some stimuli (MakeTexture etc.) with subject window handle. This texture gets assigned to handle = 11.
  5. Everything is fine, but during experiment, start another calibration. This opens operator again with a new window handle. Run calibration and all works fine, finish and close operator.
  6. Continue experiment, but the next time I call Screen('MakeTexture') with the subject screenhandle me.sM.win, I get a crash:
me.texture = Screen('MakeTexture', me.sM.win, me.matrix, 1, [], 2);
INTERNAL PSYCHTOOLBOX ERROR
	error:                Psycherror_OpenGL
	general description:  OpenGL call returned an error
	specific description: GL_INVALID_OPERATION
	module name:          Screen
	subfunction call:     MakeTexture
	file name:            Common/Screen/PsychTextureSupport.c
	function name:        PsychCreateTexture
	line number:          166

When I step debug through, I check Screen('WindowKind', me.sM.win)==1 and it is valid (still handle = 10).

After this if I try a sca I always get an error, and it seems to always be triggered by texture number 11:

>> sca
INTERNAL PSYCHTOOLBOX ERROR
	error:                PsychError_InvalidWindowRecord
	general description:  An Invalid window record was referenced.
	module name:          Screen
	subfunction call:     WindowKind
	file name:            Common/Screen/WindowHelpers.c
	function name:        PsychCheckIfWindowRecordIsValid
	line number:          61

>> Screen('WindowKind',11)
INTERNAL PSYCHTOOLBOX ERROR
	error:                PsychError_InvalidWindowRecord
	general description:  An Invalid window record was referenced.
	module name:          Screen
	subfunction call:     WindowKind
	file name:            Common/Screen/WindowHelpers.c
	function name:        PsychCheckIfWindowRecordIsValid
	line number:          61

If I do a clear all, then sca works fine:

>> sca
>> Screen('WindowKind',11)

ans =

     0

Texture 11 is always the first operator handleID that after closing is also assigned to the first MakeTexture call. Trying to make a testcase following these steps I cannot trigger it, so there is something else interacting over and above the steps I listed.

I will continue to step debug through and try to find the trigger, but just wanted to ask if you had any bright ideas for what may cause such an issue?

Flake8 alerts

Describe the bug

Is it worth fixing (some of the) Flake 8 alerts? I can help with that.

Some of them may point to actual issues, for example in regex expressions:

./managementtools/PTB-wikify-into-files.py:271:38: W605 invalid escape sequence '\ '
./managementtools/PTB-wikify-into-files.py:271:56: W605 invalid escape sequence '\ '
./managementtools/PTB-wikify-into-files.py:429:22: W605 invalid escape sequence '\('
./managementtools/PTB-wikify-into-files.py:434:22: W605 invalid escape sequence '\('
./managementtools/PTB-wikify-into-files.py:547:78: W605 invalid escape sequence '\g'
./managementtools/PTB-wikify-into-files.py:549:72: W605 invalid escape sequence '\g'
./managementtools/PTB-wikify-into-files.py:549:78: W605 invalid escape sequence '\g'
./managementtools/PTB-wikify-into-files.py:579:30: W605 invalid escape sequence '\.'
./managementtools/PTB-wikify.py:166:38: W605 invalid escape sequence '\ '
./managementtools/PTB-wikify.py:166:56: W605 invalid escape sequence '\ '
./managementtools/PTB-wikify.py:198:23: W605 invalid escape sequence '\w'
./managementtools/PTB-wikify.py:361:31: W605 invalid escape sequence '\w'
./managementtools/PTB-wikify.py:416:30: W605 invalid escape sequence '\.'

I think Python ends up interpreting \ as \\ in all these cases - so it does what you expect it to do. Yet I think the regex expressions should be reviewed and the Flake8 warnings fixed. The best solution is probably to add r in front of the regex expressions so that they are treated as Python raw strings:
https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals

To Reproduce

Run flake8 in the root directory of the project.

Expected behavior

Less Flake8 alerts, especially those that denote actual issues.

Desktop (please complete the following information):

  • Version @master

Error with PsychtoolboxVersion() in 3.0.17

I'm getting this error with the latest PTB:

>> [a,b]=PsychtoolboxVersion
79  global Psychtoolbox
Error using PsychtoolboxVersion (line 132)
Java exception occurred:
org.tmatesoft.svn.core.SVNException: svn: E155007: '/home/cog5/Code/Psychtoolbox-3/Psychtoolbox' is not a working copy
	at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:70)
	at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:57)
	at org.tmatesoft.svn.core.internal.wc17.db.SVNWCDb.parseDir(SVNWCDb.java:1955)
	at org.tmatesoft.svn.core.internal.wc17.db.SVNWCDb.parseDir(SVNWCDb.java:1846)
	at org.tmatesoft.svn.core.internal.wc17.db.SVNWCDb.readConflicts(SVNWCDb.java:3382)
	at org.tmatesoft.svn.core.internal.wc17.db.SVNWCDb.readConflicts(SVNWCDb.java:3355)
	at org.tmatesoft.svn.core.internal.wc17.db.SVNWCDb.opReadTreeConflict(SVNWCDb.java:2797)
	at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgGetInfo.run(SvnNgGetInfo.java:74)
	at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgGetInfo.run(SvnNgGetInfo.java:45)
	at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgOperationRunner.run(SvnNgOperationRunner.java:20)
	at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:21)
	at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1239)
	at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:294)
	at org.tmatesoft.svn.core.wc.SVNWCClient.doInfo(SVNWCClient.java:2497)
 

I do not use SVN to install, but GIT. The call to the built-in SVN should have a try catch fallback.

Linux 20.10 / MATLAB 2020b / PTB 3.0.17

Configure install of gamemode.ini

Hi Mario, there is a tiny issue with PsychLinuxConfiguration, when searching for gamemode.ini it has a false positive:

x = getenv('XDG_CONFIG_HOME'); % x is actually empty on my system

This is empty on my Ubuntu 18.0.4 setup by default [1], and it means this check on line 555:

~exist([getenv('XDG_CONFIG_HOME') '/gamemode.ini'], 'file') && ...

Returns a false positive as the string /gamemode.ini. matches Psychtoolbox-3/Psychtoolbox/PsychBasic/gamemode.ini and thus doesn't install gamemode.ini

Solution should be to check that this ENV is not empty then check file:

~(~isempty(getenv('XDG_CONFIG_HOME')) && ~exist([getenv('XDG_CONFIG_HOME') '/gamemode.ini'], 'file')) && ...

[1] https://wiki.archlinux.org/index.php/XDG_Base_Directory says: "Only XDG_RUNTIME_DIR is set by default through pam_systemd. It is up to the user to explicitly define the other variables, using absolute paths that point to existing directories. "

PSYCHTOOLBOX_PIPEMAPPINGS env var effectively ignored

Xubuntu 16.04, PTB 3.0.13

The screen->crtc mappings set up by the PSYCHTOOLBOX_PIPEMAPPINGS environment variable are overwritten by GetRandRScreenConfig() in PsychScreenGlue.c.

Have an xorg.conf setting Screen 0 on DP-0 (for the GUI) and Screen 1 on DVI-I-1 (stimulus).

clear Screen
setenv('PSYCHTOOLBOX_PIPEMAPPINGS', '10')
Screen('Preference', 'ScreenToHead', 0)
ans =
     0
     0
Screen('Preference', 'ScreenToHead', 1)
ans =
     0
     1

I'm expecting the results above to be [0; 1] and [0; 0], respectively.

What is the policy to merge?

I would be glad to merge my own project hyiltiz/PLW (focused on biological motion research, providing many utilities and library with helper functions for data analysis, experimental design etc.) But I suppose this is a layer higher than what Psychtoolbox aims to be (I believe Psychtoolbox stays closer to OpenGL than common user, which makes it really powerful and flexible yet lowers the user experience in return.)

PTB, macOS and MATLAB 2019b

Hi Mario, this is just some feedback on macOS Catalina and PTB (clean install running on a MacBook Pro Retina, 15-inch, Mid 2015, hybrid GPUs inc. AMD Radeon R9 M370X). I disabled SIP and the (new unsigned) kernel driver installs and works as long as SIP remains disabled, but does not work if SIP is then reenabled. Fair enough, Apple have made clear their position on kernel extensions, and suggestion to move over to DriverKit, and this means projects that do not have resources to constantly rewrite their drivers will require SIP to be disabled for use.

Anyway, even with SIP disabled and the kext working, PTB Screen does not currently run with an internal error being generated (verbosity=10 log):

>> clear all; sca
PTB-INFO: Connection to Psychtoolbox kernel support driver instance #0 (Revision 1) established.
PTB-INFO: Connection to Psychtoolbox kernel support driver instance #1 (Revision 1) established.
PTB-INFO: Disconnecting from kernel driver instance #1 for detected Intel GPU for safety reasons. setenv('PSYCH_ALLOW_DANGEROUS', '1') to override.
>> VBLSyncTest

ans =

     0

PTB-DEBUG: PsychGetScreenDepths(): mode 0 : w x h = 1440 x 900, fps = 0.000000, depth = 24
PTB-DEBUG: PsychGetScreenDepths(): mode 1 : w x h = 720 x 450, fps = 0.000000, depth = 24
PTB-DEBUG: PsychGetScreenDepths(): mode 2 : w x h = 1920 x 1200, fps = 0.000000, depth = 24
PTB-DEBUG: PsychGetScreenDepths(): mode 3 : w x h = 1680 x 1050, fps = 0.000000, depth = 24
PTB-DEBUG: PsychGetScreenDepths(): mode 4 : w x h = 1280 x 800, fps = 0.000000, depth = 24
PTB-DEBUG: PsychGetScreenDepths(): mode 5 : w x h = 1024 x 640, fps = 0.000000, depth = 24
PTB-DEBUG: PsychGetScreenDepths(): mode 6 : w x h = 840 x 525, fps = 0.000000, depth = 24
PTB-DEBUG: PsychGetScreenDepths(): mode 7 : w x h = 2880 x 1800, fps = 0.000000, depth = 24
PTB-DEBUG: PsychGetScreenDepths(): mode 8 : w x h = 1440 x 900, fps = 0.000000, depth = 24
PTB-DEBUG: PsychGetScreenDepths(): mode 9 : w x h = 2560 x 1600, fps = 0.000000, depth = 24
PTB-DEBUG: PsychGetScreenDepths(): mode 10 : w x h = 2048 x 1280, fps = 0.000000, depth = 24
PTB-DEBUG: PsychGetScreenDepths(): mode 11 : w x h = 1024 x 768, fps = 0.000000, depth = 24
PTB-DEBUG: PsychGetScreenDepths(): mode 12 : w x h = 800 x 600, fps = 0.000000, depth = 24
PTB-DEBUG: PsychGetScreenDepths(): mode 13 : w x h = 640 x 480, fps = 0.000000, depth = 24
PTB-DEBUG: PsychGetScreenDepths(): mode 14 : w x h = 1680 x 1050, fps = 0.000000, depth = 24
PTB-DEBUG: PsychGetScreenDepths(): mode 15 : w x h = 1280 x 800, fps = 0.000000, depth = 24
PTB-INFO: Retina display. Enabling panel fitter for scaled Retina compatibility mode.


PTB-INFO: This is Psychtoolbox-3 for Apple OS X, under Matlab 64-Bit (Version 3.0.16 - Build date: Aug  5 2019).
PTB-INFO: OS support status: OSX version 10.15 is not officially supported or tested at all for this release.
PTB-INFO: Type 'PsychtoolboxVersion' for more detailed version information.
PTB-INFO: Most parts of the Psychtoolbox distribution are licensed to you under terms of the MIT License, with
PTB-INFO: some restrictions. See file 'License.txt' in the Psychtoolbox root folder for the exact licensing conditions.

PTB-INFO: Always using Cocoa for fullscreen windows to work around graphics driver bugs in OSX.
PTB-INFO: Presentation timing precision is not yet known for this configuration on most machines. Check your results.
INTERNAL PSYCHTOOLBOX ERROR
	error:                PsychError_InvalidWindowRecord
	general description:  An Invalid window record was referenced.
	module name:          Screen
	subfunction call:     WindowKind
	file name:            /Users/kleinerm/projects/OpenGLPsychtoolbox/Psychtoolbox-3/PsychSourceGL/Source/Common/Screen/WindowHelpers.c
	function name:        PsychCheckIfWindowRecordIsValid
	line number:          61
PTB-DEBUG: In ScreenCloseAllWindows(): Destroying window 0
PTB-ERROR: Tried to destroy invalid windowRecord. Screw up in init sequence?!? Skipped.
Error using Screen
See error message printed above.

Error in sca (line 22)
    if Screen('WindowKind', win) == 1

Error in VBLSyncTest (line 668)
    sca;

Other functions like GetSecs et al., do seem to work.

XOrgConfCreator and 30bit assignment on multiple monitors

XOrgConfCreator.m asks users to choose screens with numbers stating from 1, e.g.:

1) Output DisplayPort-0.
2) Output DisplayPort-3.

However, later on, when asking which screens to apply 30bit option:

depth30bpp = input('Enter a space-separated list of screen numbers for which 30 bit color depth should be used: ', 's');

... it seems to expect 0:n numbering when the configuration is written:

for i = 0:screenNumber
...
  if ismember('y', depth30bpp) || ismember(num2str(i), depth30bpp)
      fprintf(fid, '  DefaultDepth  30\n');
  end
end

So if a user chooses screen 2 for 30bit display it will never be enabled. Was the original intention to keep the 1:n numbering consistent for user questions (and thus offset the index by 1 during fprinting)?

Verbosity=10 causes slowdown on external display

Hi Mario, this is a bit of a weird issue but I've seen it on a Mac Pro and my rMBP. With an external display, when I run a modified VBLSyncTest at verbosity 10 I get lots of missed frames:

Screen Shot 2013-01-09 at 19 20 33

With this being constantly logged to command window:

PTB-DEBUG: PsychBlitterIdentity: Blitting x=0 y=0 sx=1.000000 sy=1.000000 w=1280 h=1024
TexUnit 0 reading from texid -- 1
Blitting to system framebuffer, w x h = 1280 1024
Hookchain 'IdentityBlitChain' : Slot 0: Id='Builtin:IdentityBlit' : Builtin-Function : Name= Builtin:IdentityBlit : Params= 

This was driving an external monitor off my retina MBP. If I reduce verbosity then no problems and also I don't get dropped frames with verbosity 10 using the internal panel, even when it is in its best for retina mode.

My modified VBLSyncTest modifies the display to use 0-1 colour range and a few extra bits but it is mostly the same:

https://github.com/iandol/opticka/blob/master/stimuli/timeTest.m

Problems with Windows 10 screen-size on Screen 2

Hi Mario,

I have a new Tobii eyetracker, and because of numerous bugs with Tobii and X windows, I'm forced to run under Windows 10 to control it (I've reported them to tobii so should get fixed but no ETA).

I have 2 displays (display 1 is a 3840x2160 Dell, display 2 is 1920x1080 EIZO that comes with the Tobii). GPU is an NVidia 1080TI with latest drivers. MATLAB is a prerelease but I don't think that should be to blame.

When opening on display 2, PTB opens a 2880x1620 screen instead of a 1920x1080 screen. Drawing rects to the screen confirms it is 2880x1620, scaling to fit (drawing a 20pixel box is 13pixels in size which is 2880/1920=1.5 and 20/1.5=13).

Here is a verbosity==10 log:

https://gist.github.com/iandol/54a09d029616a86b7238f9cbfe059750

it recognises 1920x1080 (line 9) but finally opens 2880x1620 (line 20). I've tried running display 1 at 1920x1080 just in case, I know there is a PPI difference which is not ideal.

KbQueue* doesn't detect keypresses when mouse cursor is off XScreen 0

I'm using a dual GPU, dual XScreen setup on Xubuntu 16.04 LTS, where screen 0 is for the MATLAB GUI and screen 1 is the dedicated PTB stimulus display. One GPU per XScreen. I recently converted from KbCheck to KbQueue* and I noticed that my keys aren't responsive if my mouse cursor is on screen 1. When I move the mouse back over the MATLAB GUI, my keys work again (e.g., escape is set to kill the running PTB script). The non-queuing KbCheck doesn't care where the mouse is. In the KbQueue* version, I create the queue with KbQueueCreate([], keyList) and subsequent KbQueue* function calls have no input arguments.

GetKeyboardIndices returns 4 devices: Virtual core XTEST keyboard, two "Power Button"s, and a Dell keyboard. I tried creating a queue with deviceIndex == 3 for the XTEST keyboard but to no avail. I've attached my XOrg config.

Is there a workaround for this?

Questions on Python + PTB

Dear Mario,

I've sent you an email, but I'm not sure if your email is the same as before so I'll misuse an issue! I'd like to chat about some potential for funding some of the future work on PTB, you can email me at i.andolina at ion.ac.cn โ€” thanks!

Sync problems

Hi Mario, I've noticed on your current master branch (screen.mexmaci64 Aug 7 build), that dual display non-mirrored OS X (LCD main display and 2nd display CRT), with default setting cause a syncronisation error:

https://gist.github.com/3350352

note the different 16.7Hz vs 13.3Hz refresh values:

PTB-INFO: Measured monitor refresh interval from beamposition = 16.684844 ms [59.934633 Hz].
PTB-INFO: Will use beamposition query for accurate Flip time stamping.
PTB-INFO: Measured monitor refresh interval from VBLsync = 13.322967 ms [75.058354 Hz]. (50 valid samples taken, stddev=0.058230 ms.)
PTB-INFO: Reported monitor refresh interval from operating system = 13.333331 ms [75.000015 Hz].

I can stop that error if I force screen to head like so (is the 3rd parameter priority?):

Screen('Preference','ScreenToHead',0,0,3);
Screen('Preference','ScreenToHead',1,1,4);

I don't remember having to force screen to head before. This happens in OS X 10.6.8 and 10.8 with an ATI 5870. Interestingly I don't see this on another dual display ATI 5770 + 10.7.4 machine. Not sure if it is the GPU or OS X version, will try a 10.7.4 bootable clone on the ATI 5870 at some point soon if it would help.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.