10bit hardware and VDI for medical purpose

Hi, currently i’m looking for vGPU board for VDI that support 10bit hardware output technology, taken from AMD site (https://www.amd.com/Documents/10-Bit.pdf).

The solution is for reading medical radiology image that need 10bit hardware output technology and running on top of VDI and at least 3K resolution, currently we are using ATI FirePro works great but we need to move to VDI solution.

Does NVIDIA GRID support this solution? Thanks!

Have you discussed with the various VDI vendors whether they support this?

The GRID cards are capable of delivering this, but are reliant on the remoting technologies to expose the 10bit greyscale option which will appear in the Control Panel when a 10Bit greyscale monitor is detected.

If the remoting protocol cannot present a compatible display the option is not presented, regardless of what is physically at the endpoint.

The ADC10221 is a guaranteed to have no missing code to over then the full operating temperture range.If that any unique two stage architecture achevies 9.2 effectiveness signal.

As JAson said you are dependent on the remoting protocols used by the VDI stack vendors. Currently neither VMware/Citrix support this in their ICA/HDX and Blast Extreme protocols.

You may want to contact them to raise your need or explore other vendors such as NICE/Teradici/Mechdyne. I’m not myself aware of a full VDI solution that implements 10-bit colour.

10-bit colour (40-bit over the 4 channels) vs. 32-bit VDI increases the data volumes greatly, add in 3K and the fact medical images are usually very large and it is a huge challenge on bandwidth to maintain frame rates. This maybe why adoption by the mainstream VDI vendors hasn’t happened.


I take some tests to enable 10bit encoding but it is impossible with current state of NVidia GRID technology (the 10bit encoding is available from Geforce 200 (eg. year 2009) http://nvidia.custhelp.com/app/answers/detail/a_id/3011/~/10-bit-per-color-support-on-nvidia-geforce-gpus). I found following TWO problems on NVidia GRID side:

  1. I am unable to switch to 10bit colors framebuffer. I can prepare 10bit EDID1.4 and send it to card NvAPI_GPU_SetEDID(). The GRID cards "emulates" up to 4 DVI outputs (NvAPI_GPU_GetConnectedDisplayIds()->connectorType NV_MONITOR_CONN_TYPE_DVI) but 10bit colors are available only on DisplayPort output (NvAPI_GetDisplayPortInfo()/NvAPI_SetDisplayPortInfo() API fails on DVI).

    The NVidia GRID driver should probably "emulate" DisplayPort output (NV_MONITOR_CONN_TYPE_DP) to resolve this problem.

  2. I am unable to capture 10bit colors framebuffer. The embedded encoder on Kepler/Maxwell GRID cards does not support 10bit encoding h264/h265 (https://developer.nvidia.com/nvidia-video-codec-sdk#NVENCFeatures) but the Capture SDK can capture framebuffer to memory and encode frame with CPU or other (Pascal grade) card to h265/10bit or other protocol (I can do this with separate encoder domain - https://gridforums.nvidia.com/default/topic/752/grid-vgpu-benchmarks/vdi-click-to-photon-with-raspberry-pi/). But there is the problem NvFBCToSysSetUp()/NvFBCToSysGrabFrame() support only ARGB/RGB/YUV with 8bit per color (NVFBC_TOSYS_ARGB...).

    The NVidia Capture SDK should support 10bit capture format like in NVidia Video Codec SDK input (NV_ENC_BUFFER_FORMAT_YUV420_10BIT, NV_ENC_BUFFER_FORMAT_YUV444_10BIT, NV_ENC_BUFFER_FORMAT_ARGB10 or NV_ENC_BUFFER_FORMAT_ABGR10 (packed in 32bit A2R10G10B10 or A2B10G10R10)) to resolve this problem.

There are also "thin" candidates for the other end of encoded VDI video stream to display h265/10bit/4:2:0/4K/60FPS (HEVC Main 10) - like OdroidC2 for £40 (£48), Asus Tinker Board for £46 (£55) or Rock64 $25 (but not RaspberryPI :-( for £28 (£34)). But formats like h265/4:4:4 or h265/LOSSLESS (also supported by Pascal card encoder) should be more useful for medical purposes.

10bit capture should be supported with new Capture SDK 6.0 (https://developer.nvidia.com/capture-sdk).

  • NVFBC_TOXXX_ARGB10 (NvFBCToSys, NvFBCToDx9Vid and NvFBCToCuda)

There is still not possible 10-bit (HDR) virtual vGPU output with GRID 6.0 drivers (M10-1Q + NvAPI R384). NVidia still ignore this feature (see also this https://gridforums.nvidia.com/default/topic/1225/).

NvAPI_GPU_SetEDID() virtual vGPU output is set to valid HDR/HLG/DolbyVision EDID (from LG TV).
NvAPI_Disp_GetHdrCapabilities() returns NVAPI_OK but zero data.
NvAPI_Disp_ColorControl() returns NVAPI_ERROR (there is no documentation how it works).

No change in vGPU SW 7.x, 8.x (even Windows10 (windows10 1809 and driver 425.31) WDDM 2.5 requires HDR support (ARGB10HDR, FP16HDR) - Why is it possible to pass and get WHQL/WHCK without this ?)…

vGPU software 10.0 promisses “10-bit color” (https://docs.nvidia.com/grid/10.0/whats-new-vgpu/index.html) (NVIDIA driver R440, WDDM 2.6). It does not work. NVIDIA control pannel (resolution settings) is broken. dxdiag sniplet:

        Current Mode: 1920 x 1080 (32 bit) (30Hz)
[b]         HDR Support: Not Supported
[/b]    Display Topology: Internal
 Display Color Space: DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709
     Color Primaries: Red(0.659180,0.339844), Green(0.244141,0.669922), Blue(0.129883,0.040039), White Point(0.312500,0.329102)
   Display Luminance: Min Luminance = 0.010000, Max Luminance = 1499.000000, MaxFullFrameLuminance = 799.000000
        Monitor Name: Generic PnP Monitor
       Monitor Model: LG TV
          Monitor Id: GSM0001
         Native Mode: 3840 x 2160(p) (60.000Hz)
         Output Type: DVI
<b>Monitor Capabilities: HDR Supported (BT2020RGB BT2020YCC Eotf2084Supported )</b>
<b>      Advanced Color: Not Supported</b>
 Driver File Version: 26.21.0014.4166 (English)
      Driver Version:
         DDI Version: 12
      Feature Levels: 12_1,12_0,11_1,11_0,10_1,10_0,9_3,9_2,9_1
        Driver Model: WDDM 2.6
      Virtualization: Paravirtualization 
 <b>        WHQL Logo'd: Yes</b>

Yes, 3 years to “enable” feature from 2009 ! NVIDIA driver is now capable to enable HDR support in VDI from VGPU 10.1 (windows 10 driver 442.06, NVIDIA control panel (resolution settings) is still broken) (tested on VGPU T4-1Q profile with 2GB VRAM (virtualized RTX2070Super) https://gridforums.nvidia.com/default/topic/8934/#15328).

vgpu_hdr.jxr.zip (3.21 MB)