Screen('Computer'): Try harder to find MAC address on Linux.

If eth0 doesn’t work, try eth1 … eth99. We’d like to not get half of
all PTB registrations on Linux discarded.
help update for SyncTrouble and PsychImaging.

Mention in help SyncTrouble how to enable unredirect fullscreen windows
under KDE/KWin, now that we are back to old-style override redirect for
KDE multi-display setups.
Mention in PsychImaging that radeon.deep_color=1 must be passed to the
Linux 3.16 kernel command line to enable deep colour support, as it is
disabled by default.
GraphicsDisplaySyncAcrossDualHeadsTesLinux: Abort on non-Linux.

Not only say you do so, but actually do so.

(cherry picked from commit 70761c0b7ff33d080db56e9fe03fb1be145d3cbb)
DrawFormattedText: Small adjustment for Linux text renderer.

Must use X as proxy for a blank when calculating the bounding
box of an isolated blank, as the Linux renderer optimizes the
blank away and we end with an empty bbox and therefore wrong
base-advance and compressed text.

This works because justification is only workable with monospaced
fonts anyway, where an X has the some horizontal width as a ' '
blank.

(cherry picked from commit 80f9a798ca0940097877de4d9c9fbed6457a3c3a)
PsychPortAudio: Fix crash in 'GetStatus' if non-default audio device is opened.

When PPA(‘Open’, deviceid,…); was used with non-default deviceid, this
caused subsequent calls to PPA(‘GetStatus’,..); to crash on some os’es
+ audio backends.
Reason was a divide-by-zero floating point exception due to division by
a zero input- or output channel count. The zero input/output channel
count could get assigned if an explicit deviceId was specified and the
spec’d device was only an output or only an input device, but not both,
so either input- or outputchannelcount was stored as zero. Now we make
sure channel counts are at least 1, as the code is capable of handling
this, e.g., a non-zero inputchannelcount is not a problem on a pure
playback device, the logic copes with this. -> Zero-divides can’t
happen anymore.

Also add some extra logic to prevent calling playback related functions
on capture devices. Also clarify meaning of xruns in the help of PPA
GetStatus?, as this lead to some confusion in the past.

Fixes bug repored in forum message #17819.

(cherry picked from commit b8a5c951dda61b531243a72984f02c4f2f1f4e2a)
PsychPortAudio for all but 32-Bit Matlab rebuilt with bug-fixes.

This is the set of rebuilt PPA files compatible with future 3.0.12:
32-Bit Octave on Linux.
64-Bit Octave and Matlab on Linux, OSX and Windows.

(cherry picked from commit c80819b331dff6c2be1dc83cf2d22c4298249414)
PsychtoolboxPostInstallRoutine/PsychJavaTrouble: Help text cosmetic.

Adapt to the fact we don’t support non-Java Matlab or Octave < 3.8 on
non-Linux.
Formatting fixes.
IccProfile: Mark this mex file as not yet available.

Would need forward porting by somebody with average C-Programming
skills…
SetAnaglyphStereoParameters: Implement 'CreateGreenOverlay' and 'CreateBlueOverlay'

Useful for encoding a secondary image in an otherwise unused colour
channel.
E.g., the green overlay window will store its image information in the
otherwise unused green colour channel of a red-blue anaglyph stereo
image, ditto the blue overlay window for the otherwise unused blue
channel of a red-green anaglyph.

The use case is to have a secondary monitor (e.g.,
experimenter/operator monitor) or recording device attached which
displays the overlay channel with additional information, e.g., eye
tracking data, whereas the subject/stimulation monitor only shows the
anaglyph colour channels.
Screen for 32-Bit Octave on Linux rebuilt for testing.
Fix BlurredMipmapDemoShader.frag.txt for BlurredMipMapDemo.

was missing, causing this to fail on some GPU/Driver combos.
Apparently the original test system was lenient wrt this.

Use of texture2DLod() in fragment shaders like this one
either requires the above extension, or #version 130 for
GLSL version 1.3.
Screen/Linux: Disable nouveau-kms pageflip event workaround.

The workaround for broken kms-pageflip events on nouveau for Linux
3.13-3.15 is no longer needed, as the bug has been fixed in all Linux
stable kernels, as of version 3.13.11-5+, 3.14.12+, 3.15.5+ and 3.16+
Both Ubuntu 14.04-LTS and Debian sid/jessie/wheezy-backports etc.
provide upgraded/fixed stable distribution kernels.
Because i’m paranoid, i added a new ‘ConserveVRAM’ preference setting
2^27, which can force the workaround on nonetheless, as described in
“help ConserveVRAMSettings”. This is just for future-proofing, in case
a similar bug would get introduced again in future kernels on some
drivers. Normally we would just add proper detection logic when this
situation arises, but as PTB 3.0.11 is end of life it is better to
leave users a manual enable switch in case they are stuck on this
release and ever want to run on a more modern potentially buggy kernel.
[Yes, i am paranoid]

Unrelated, increase sbc threshold for reporting of trouble in
PsychOSGetSwapCompletionTimestamp() from 4 to 20 to avoid any future
command window noise for false positive warnings.

-> Source code update, no rebuild of mex files, to simplify
cherry-picking.
Screen mex for 64-Bit Octave/Matlab on Linux rebuilt.

For 3.0.12 testing. No 32-Bit rebuild for now.
Screen 3.0.12 for 32-Bit Matlab/Octave on Linux rebuilt.
Merge branch 'kleinerm-master' into ptb3publicmaster

* Linux nouveau-kms pageflip timestamp workaround no longer needed, so made optional (off by default).

* Screen('Computer') mac address robustness improvement on Linux.

* Improvements to PsychImaging, SetAnaglyphStereoParameters, DrawFormattedText, etc.

* BlurredMipMapDemo shader compatibility fixes.

* Documentation updates.
Merge pull request #201 from Psychtoolbox-3/ptb3publicmaster

Pull current state into public master.

* Linux nouveau-kms pageflip timestamp workaround no longer needed, so made optional (off by default).
* Screen('Computer') mac address robustness improvement on Linux.
* Improvements to PsychImaging, SetAnaglyphStereoParameters, DrawFormattedText, etc.
* BlurredMipMapDemo shader compatibility fixes.
* Documentation updates.