Showing posts with label TemporalDithering. Show all posts
Showing posts with label TemporalDithering. Show all posts

Saturday, February 16, 2013

Amulet's temporal dithering KEXT & fear of OS-X's console!

I've written previously about Amulet's fix for both nVidia and Radeon graphics cards doing temporal dithering under OS-X and how that spoils any KVM-over-IP system's ability to do compression. I had a good meeting with Amulet on Friday relating to a proposed customer's requirements but also got to chat to James Seward (@jamesoff on Twitter). He showed me a couple of interesting things:
  • My assumption that the current version of his Kext wasn't working under Snow Leopard was actually due to the method he was using to signal the Kext had installed correctly - the error basically says that NScolor doesn't understand the call - never fear the Console! It showed that all was well;


  • His worry that any other KVM-over-IP manufacturer could just take his Kext and use it to make OS-X displays work using their system has been circumvented by checking for the presence of Amulet hardware (that's an expensive dongle!);


Now the week after next is BVE, this time it's at the Excel Center in Docklands (goodbye Earl's Court!) and I'm doing some training tasters but all of the workstations on our stand will be extended over Amulet. I think this is one of the most significant technologies we've taken on in recent years and so come and grab me for a demo.

Friday, October 26, 2012

Amulet - they fixed OS-X's Temporal Dithering issue

As mentioned in a previous post temporal dithering on OS-X has proved troublesome with Amulet (and in fact it bedevils all KVM-over-IP systems). The guys at Amulet have written a Kernel Extension that stops the card turning on temporal dithering. James, their engineer, explained to me that it's a different technique between nVidia and Radeon, but they've got it licked;
 
kexstat is a utility to show which Kernel Extensions are loaded. Here I've grep'ed the output to exclude all the Apple ones. You can see the Amulet one at 0x2000

The proof of the pudding is that now all the MacPro clients on this particular Amulet system look splendid; even full-screen replay of 1080P material.

Monday, May 28, 2012

Temporal Dithering; good for colour depth, bad for extending!

I've become quite a fan of products based on Teradici - an on-the-fly compression system that allows dual-DVI w/peripherals to be extended over ethernet. It works very well and you can't tell you're not looking at something that's been packetised and extended over a network. Howver, a fly in this ointment is the current gen ATI graphics drivers on OS-X. They use a technique called Temporal Dithering;
Temporal dithering is a technique employed by some graphics cards to simulate colors that they cannot natively display by rapidly changing the colors of pixels, tricking the eye into seeing “in-between” colors. During PCoIP remote sessions, temporal dithering can cause extremely high bandwidth utilization because the rapidly changing pixels force the PCoIP protocol to constantly deliver large screen updates to the remote desktop.
The upshot of this is that when you have nothing going on screen - no mouse movement etc (where you'd expect to see no data traveling on the network) you get;

And the effect on screen is compression artifacts and a sluggish mouse pointer. The guys at Amulet Hotkey are looking into it for us, but it might be a deal-breaker.

Flailing around the web revealed someone at Disney who has produced tweaks to X's configuration file for use under Linux; unfortunately this doesn't work in OS-X as the dithering is done by the driver. However, just for reference (or the lulz!)

xorg.cong

Section "Screen"
    Identifier "Screen0"
    Device "Videocard0"

    Monitor        "Monitor0"
    DefaultDepth    24
    Option        "CIOverlay" "On"

    Option        "CursorShadow" "Off"
    Option        "NvAgp" "3"
    Option        "TwinView" "1"
    Option        "SecondMonitorHorizSync" "21.0-140.0"
    Option        "SecondMonitorVertRefresh" "47.0-72.0"
    Option        "TwinViewOrientation" "LeftOf"
    Option        "MetaModes" "1280x1024_72,1280x1024_72; 1280x1024_60,1280x1024_60; 1024x768_72,1024x768_72"
    Option        "TwinViewXineramaInfoOrder" "DFP"
#RandR    Option        "RandRRotation" "true"   # Requires xorg 6.8.1+
#NoEDID    Option        "UseEDIDFreqs" "FALSE"
#NoEDID    Option        "UseEDIDDpi" "FALSE"
#NoEDID    Option        "ModeValidation" "NoEdidMaxPClkCheck"
#ExactMODE    Option          "ExactModeTimingsDVI" "On"
    Option        "DPI" "85x85"
    Option        "AllowGLXWithComposite" "true"
    Option        "DisableGLXRootClipping" "true"
    Option        "AddARGBGLXVisuals" "true"
    Option        "AllowSHMPixmaps" "true"
#FALSE    Option        "Dac8Bit" "true" # forced spatial dithering instead of temporal for teradici performance
#FALSE        Option        "RegistryDwords" "DitherAlgo8=3;DitherAlgo6=3"



# Other possible options. Enable at your own risk
#    Option        "RenderAccel" "On"
#    Option        "Overlay" "On"
#    Option        "SWCursor" "On"
#       Option          "TwinViewXineramaInfoOrder" "DFP-1,CRT-0"
#       Option        "ConnectedMonitor" "DFP-0,CRT-1"
# This can be used to clarify orientation
#    Option        "TwinViewOrientation" "DFP-1 LeftOf CRT-0"
#    Option        "IgnoreDisplayDevices" "CRT"

    Subsection "Display"
        Depth        24
        Modes        "1280x1024_72"
    EndSubsection
EndSection