help Psychtoolbox: Update credits and add link to Peter Scarfe's nice tutorial page.
PsychEyelinkDispatchCallback: Fix target drawing for large target dot sizes.

Code unconditionally used ‘DrawDots’, even for dots which might be
beyond the limit of the GPU.
Now use ‘DrawDots’ for dots smaller than 10 pixels diameter, ‘FillOval’
for others.
The limit is hardcoded to a safe 10 pixels setting that should work on
Intel, Nvidia and AMD.
Query of the GPU limit would be possible but a bit more inefficient -
or more work to implement efficiently.
Screen('TextFont'): Allow simultaneous setting of font name and font style.

Do ‘TextFont’ and ‘TextStyle’ in one atomic call. This is needed to
work around broken fonts on OSX in combination with OSX broken font
handling. See forum msg #17286 for the problem.
If a font does not support standard textStyles, it wasn’t possible on
OSX to select it by name, because name selection and style selection
were different calls and each call failed font validation individually,
because it would have had to transition through an invalid state in the
[fontFamilyName, fontStyle] space. Setting both atomically allows to
jump from one valid state to the next valid state and validation
succeeds. This is not needed on Linux or Windows, but now implemented
for compatibility.
On old version of Screen() selection of such a font by fontNumber was
still possible as a workaround.

-> Screen for OSX Matlab & Octave rebuilt and tested.
Screen/Linux: Fix compiler errors introduced by OSX changes.

-> Screen for 64-Bit Octave on Linux rebuilt and tested.
VBLSyncTest: Whitespace fixes.
Screen: Enable 10 bpc framebuffer support for AMD DCE-4 and later display engine.

Add neccessary setup code for DCE-4 ARGB2101010 framebuffer scanout enable,
and for "LUT bypass in 10 bpc mode". Same bits to twiddle, but different
registers on Evergreen and later.

Move crtcoff's array for DCE4+ head mapping from Linux screen glue into
PsychGraphicsCardRegisterSpecs.h to make it accessible anywhere in Screen.

Extend Screen/Linux and OSX PsychtoolboxKernelDriver to allow setting of
arbitrary user defined values for dither control register on AMD gpu's
via Screen('DisplayConfiguration', 'Dithering', screenId, headId, value);

Bonus: Screen('Null', screen, value); allows to query FMT_CLAMP_CONTROL on
AMD DCE-3 and later, and to set arbitrary value's as well. This as experiment
for some deep color tests. As usual, this is temporary.

Bonus: Some whitespace fixes in some files.

-> Screen.mex for 64-Bit Octave on Linux rebuilt.
-> Rebuild of Screen for other platforms and PsychtoolboxKernelDriver pending.
PsychScriptingGlue: Only ever try to assign one subfunction argument.

If first passed arg is a valid subfunction, skip trying to interpret
2nd arg as subfunction as well. That would be non-sensical and
additionally causes the subfunction table dispatch to interpret any
question mark at the end as a request for help, so e.g.,

Eyelink('Message', 'What's up?'); would try to parse 'What's up?'
as a 2nd subfunction name and then, seeing the '?' at the end,
print function help texts instead of executing 'Message' with
'What's up?' as text string argument.
PsychScriptingGlue: Fix global state bleeding between mex files.

Make prhs/plhsGLUE et al. static so their state can't bleed from
one PTB mex file to the other. This was the case when Screen()
was calling DataPixx() from within its post-swap hooks to do
timestamping with DataPixx. Datapixx was globbering the state
of Screen. This was the reason for the errors in VBLSyncTest.m
when Datapixx + Octave was used. The error didn't happen on Matlab
because there we compile mex files to only export mexFunction()
but nothing else into the process symbol space.

-> Fixed.
-> Screen for 64-Bit Octave on Linux rebuilt and tested.
-> VBLSyncTest: Remove all workarounds.
GStreamer: Mention need for special PPA for ffmpeg on Ubuntu 14.04-LTS.

Update "help GStreamer" to mention that one needs to add a special
3rd party multi-media ppa to get access to the gst-ffmpeg plugins
on Ubuntu 14.04-LTS. Some tremendeously wise person decided to
remove gst-ffmpeg from the GStreamer 0.10 distro in 14.04 LTS.
Thank you for taking backwards compatibility so serious!!

We can't upgrade to GStreamer 1.0 yet as long as 1.0 has serious
functional regressions in its video capture device enumeration
support.

Luckily somebody prepared a ppa to workaround this issue.
Screen/Linux: Add workaround for broken pageflip events on nouveau in 3.13+

nouveau-kms on Linux 3.13 - 3.14 - and possibly future 3.15 returns
faulty data in kms-pageflip completion events. Underlying bug is
diagnosed and first patches exist to fix it, but they didn't make the
deadline for Linux 3.14. The bug was introduced in Linux 3.13, so
the 3.13 kernel of Ubuntu 14.04 LTS will be affected.

Add workaround for OML_sync_control timestamping: If nouveau-kms on
3.13 - 3.15 is detected, we still use glXWaitForSbcOML to wait for
doublebuffer swap completion, but then use glXGetSyncValuesOML to
get current vblank count and timestamp as possible replacements for
the broken/invalid msc and ust from the pageflip event. We validate
the values and if they are safe to use we use them. Otherwise we
trigger fallback to classic mmio beamposition timestamping which
is a tad more noisy and adds extra execution overhead, but safe to
use.

-> Screen for 64-Bit Octave on Linux rebuilt and tested.
Screen/Linux: Ignore invalid msc/ust returns for sbc < 4.

Ignore invalid results and fail silently if results of
glXWaitForSbcOML() refer to first 3 swaps, ie., sbc < 4.
These are meaningless glitches, so printing scary warnings
would needlessly scare our dear users.

-> Also white-space cleanup in PsychOSGetSwapCompletionTimestamp().
-> Screen for 64-Bit Octave on Linux rebuilt and tested.
Screen/OSX: Always use Cocoa+NSOpenGL for fullscreen windows on OSX 10.8+

This is an implicit application of the kPsychUseAGLForFullscreenWindows
setting when running on OSX 10.8 or later.

Testing on OSX 10.8 with dual-display stereomode 10 showed that
as soon as a 2nd onscreen fullscreen window is opened on a second
display, OSX 10.8+ will do the most brain-damaged thing i've seen
in a while: It will enable page-flipping for bufferswaps on the
second window, but *disable* page-flipping on the first window on
which page-flipping was so far enabled. Iow., the first opened
window is now subject to desktop composition with potentially
horrible effects on timing and timestamping precision and reliability!!
Also 10 bpc framebuffer mode won't work anymore because the compositor
screws with the alpha-channel of onscreen windows, stripping it
effectively away! This is how we actually found this nugget of a
hilarious bug, and it took us only a week.

Presence of the bug - or its absence after this workaround - can
be verified with OSXCompositorIdiocyTest().

What this fix probably doesn't fix:

- The black screen at end of a session.
- The completely messed up swap handling of NVidia gpu's under 10.9

It is also conceivable that the fix corrupts timing in a different
way, but i can't test this, as a) i don't have OSX 10.8 and b)
My 10.9 has the totally f***d NVidia drivers. However, some
testing by Nicolas on AMD cards suggests this fixes the problems
on at least 10.8.
Screen/OSX: Allow to disable use of CVDisplayLink.

A new PsychTweak function PsychTweak('DisableCVDisplayLink'); allows
to tell Screen() on OSX to not initialize and use CoreVideo display
links for VBL count queries and timestamping.

This disables the only remaining fallback for lack of beamposition
timestamping on 10.7+ and of half of all consistency checks for
Flip timestamping under OSX. Otoh. display links never worked well,
so their only remaining value is the consistency checks to auto-
detect and resolve some OSX graphics driver bugs.

Due to hilarious Apple bugs with no known workarounds, releasing
CVDisplayLink's at window close time causes sometimes crashes
of Matlab on some OSX versions under some conditions. Likely
a race condition.

We can't solve this, so we give this option to the user to disable
CVDisplayLink's on especially crashy systems.

Will probably completely remove CVDisplayLink support in a beta
soon. This crap is just not worth it.
Psychtoolbox: Reduce module version number to 3.0.11 for final 3.0.11 release.
Merge pull request #42 from Psychtoolbox-3/master

Resync with current master of official Psychtoolbox-3 repo.
Eyelink: Fix some compiler warning.

Clang is whiny about for loops without a body again. Make it shut up.
OSX: Rebuilt almost all mex files for 64-Bit Matlab/Octave

For 3.0.11 final.
PsychImaging: Fix dual window configs with empty slave window rects.

Need to explicitly check and assign [] if slave window rectangle is
missing.
Linux: All mex files for 32/64-Bit Octave and Matlab rebuilt.
Readd GetSecs.mexglx for 32-Bit Matlab on Linux.

Apparently Git is confused about this one…