File: PsychtoolboxKernelDriver.m

package info (click to toggle)
psychtoolbox-3 3.0.19.14.dfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 86,796 kB
  • sloc: ansic: 176,245; cpp: 20,103; objc: 5,393; sh: 2,753; python: 1,397; php: 384; makefile: 193; java: 113
file content (135 lines) | stat: -rw-r--r-- 7,258 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
% PsychtoolboxKernelDriver - A low level support driver for Apple OS-X
%
% The PsychtoolboxKernelDriver (PKD) is a MacOS-X kernel extension (a
% kext). It currently should somewhat work with AMD/ATI Radeon graphics cards
% of the X1000 series, as well as the HD2000 series up to the AMD RX 400 "Polaris"
% graphics cards. Some recent Polaris gpu's and all Vega gpu's and later models
% are unsupported at the moment.
%
% On NVidia cards, only beamposition queries for high precision timestamping
% are supported. Intel graphics chips are mostly not supported.
%
% The driver needs to be manually installed by a user with administrator
% privileges and provides a few special services to PTB-3, ie., PTB's
% functionality is extended/enhanced if it detects such a driver at startup
% time:
%
% * Beamposition queries (See help BeampositionQueries) allow for
% especially robust and accurate stimulus onset timestamping. They are
% no longer supported by OS-X 10.9 and later and were not supported at all
% on Intel based Macintosh computers with AMD/ATI or Intel graphics.
% The driver restores this functionality for NVidia and AMD/ATI gpu's.
% Support for Intel gpu's is disabled by default, as it can lead to system
% crashes due to some unfixable incompatibility of Intel graphics hardware
% which is completely out of our control.
%
% * Multihead display sync: The driver allows to synchronize the display
% refresh cycles of the displays connected to a multihead graphics card
% to allow for high quality tear-free binocular and stereo stimulation of
% subjects. This is only supported on AMD/ATI graphics cards.
%
% * Use of 10 bit per color component framebuffers: The driver enabled two
% extra bits of color output precision per color channel on your card,
% allowing for 1 billion shades of different colors instead of the 16.8
% million colors available without the driver. This was only supported on
% AMD/ATI graphics cards and is no longer supported since Psychtoolbox 3.0.14,
% as Apple sabotaged our ability to provide this functionality on OSX 10.11
% and later.
%
% * The driver implements workarounds to fix some problems caused by
% graphics driver and operating system bugs when the graphics card is used
% with high color/luminance precision display devices like the CRS Bits+ or
% Bits# boxes, or the VPixx Inc. DataPixx and ViewPixx devices, and similar
% equipment. This is only supported on AMD/ATI graphics hardware and may not
% work anymore on latest AMD gpu's or macOS versions -- unknown.
%
% The driver only works with one single graphics card at a time. On a
% single-gpu system it will just work. On a MacBookPro hybrid-graphics
% system with an integrated intel gpu and a discrete NVidia or AMD gpu, it
% will automatically switch to use the proper gpu. On a multi-gpu system
% with multiple discrete gpu's, e.g., MacPro with multiple graphics cards
% installed, it will use the default gpu zero by default. You can ask it use a
% different gpu by calling the command PsychTweak('UseGPUIndex', gpuidx);
% to select gpu 'gpuidx' - numbering starts at zero. Then call clear
% Screen, so Screen() actually picks up the new setting. Simultaneous use
% of multiple gpu's is not supported at this time.
%
% As this driver accesses the hardware at a very low level, bypassing the
% whole operating system, its graphics subsystem and drivers, there is
% some potential for things to go wrong. Although our testing over 10 years
% didn't show any such problems, it could happen on some future OSX systems.
% That is why this driver is considered a permanently experimental feature.
%
% How to install (one time setup) - on OSX 10.11 "El Capitan" and later only:
% ---------------------------------------------------------------------------
%
% Install the PsychtoolboxKernelDriver64Bit.kext.zip, as exemplified here.
%
% You must type this into the terminal:
%
% cd /Library/Extensions/
% sudo unzip /PathToPsychtoolbox/Psychtoolbox/PsychHardware/PsychtoolboxKernelDriver64Bit.kext.zip
%
% "PathToPsychtoolbox" must be replaced with the path to the Psychtoolbox folder, e.g., if your
% Psychtoolbox is installed under /Users/kleinerm/Psychtoolbox, then the above command would
% look like this:
%
% sudo unzip /Users/kleinerm/Psychtoolbox/PsychHardware/PsychtoolboxKernelDriver64Bit.kext.zip
%
%
% This will automatically load the driver after a few seconds, and also after
% each system restart.
%
% If the driver fails to load, then please report it to the Psychtoolbox forum.
% If it fails to load due to invalid cryptographic signatures you can disable
% "System integrity protection" (SIP) as a temporary measure. The Internet will
% tell you how to do that. This would make the kernel driver load, but reduce
% resistance of your system against potential hacker/virus/trojan horses attacks
% and other security threats.
%
% If you are a user of OSX 10.13 "High Sierra" or later, the iToys company put up
% some additional obstacles on top of all the awfulness of macOS. Read these
% instructions if you get the error message "System policy prevents loading the kernel extension."
% from "kextload", or it fails for some other reason:
%
% https://developer.apple.com/library/content/technotes/tn2459/_index.html
%
% If you are using macOS 10.14 "Mojave", the driver may not load at all unless
% you disable SIP. Apple put additional obstacles in our way, because Apple!
%
% If you use some of the latest and most overprized Apple computers with some
% models of "AMD Radeon Pro" 500 series RX gpu's and Psychtoolbox doesn't recognize
% your graphics card, you may need to install this updated driver instead:
%
% /PathToPsychtoolbox/Psychtoolbox/PsychHardware/PsychtoolboxKernelDriverUpTodDate_Unsigned.kext.zip
%
% This driver is not yet cryptographically signed or attestated by us, so macOS may
% throw extra obstacles into your way, e.g., not loading the driver automatically at
% system boot, requiring you to do it manually with a kextload or kexttool command
% from a terminal window. Disable SIP and other than that, good luck!
%
% Another limitation on Apples latest "masterpieces" is that auto-detection of screen
% to video output mappings may not work reliably on multi-display setups. Read how
% to work around this in "help DisplayOutputMappings".
%
% How to upgrade with a more recent version, bundled with a new version of Psychtoolbox:
% --------------------------------------------------------------------------------------
%
% You can unload and delete the driver before a driver upgrade via:
%
% sudo kextunload /Library/Extensions/PsychtoolboxKernelDriver.kext
% sudo rm -R /Library/Extensions/PsychtoolboxKernelDriver.kext
%
% On older setups, the driver may reside in /System/Library/Extensions/, so
% delete it from there if above does not work:
%
% sudo kextunload /System/Library/Extensions/PsychtoolboxKernelDriver.kext
% sudo rm -R /System/Library/Extensions/PsychtoolboxKernelDriver.kext
%
% Then you can follow the instructions for installation above.
%
% If everything went well, Psychtoolbox will report availability (and its
% use) of the driver the first time the Screen() mex file gets loaded and
% used. If it doesn't happen immediately, type "clear Screen" to force a
% reload of Screen.
%