-------------------------------------------------------------------------------
                       Matrox Imaging Library (MIL) 10.0
                           Release Notes (milRadient)
                                 December, 2013
            (c) Copyright Matrox Electronic Systems Ltd., 1992-2013.
-------------------------------------------------------------------------------

This document outlines what is new with MIL for Matrox Radient and explains
the current limitations and particularities when using MIL with Matrox Radient.

It also presents last minute information that did not make it into the manual
or on-line help. Note that this text file serves to complement your manual. The
information found in this file overrides your formally documented material.

Contents

1. Matrox Radient with MIL.
   1.1 What’s new in MIL 10.0.
   1.2 What’s new in MIL 9.0 Update 55.
      1.2.1 Overview.
      1.2.2 API enhancements.
      1.2.3 Bug fixes.
   1.3 What’s new in MIL 9.0 Update 31.
   1.4 What’s new in MIL 9.0 Update 6.
2. Matrox Radient utilities.
3. Limitations and particularities.
4. Processing FPGA documentation.
5. Supported operating systems.
6. Location of examples (in the help file)

-------------------------------------------------------------------------------

1. Matrox Radient with MIL.

   1.1 What’s new in MIL 10.0.

      - Support for Microsoft® Windows® 8. 

      - MIL 10 has a new mechanism to control and inquire IO signals. 
        It has unified some concepts under the M_IO_... constants of 
        MdigControl/MdigInquire and generalized others that were 
        being used for more than their original purpose (for example, 
        M_GRAB_EXPOSURE_... to M_TIMER_...). For the correlation between 
        old and new MIL constants, refer to the 
        MilRadientCameraLinkIOConversionTable release note.

   1.2 What’s new in MIL 9.0 Update 55.

      1.2.1 Overview.

         - Added support for GenICam™ for Camera Link® (CLProtocol). Requires 
           third party CLProtocol communication DLL supplied by the camera 
           vendor.

         - Updated the Intellicam tool to support a Feature Browser for 
           Camera-Link®.

         - Updated the MilConfig tool to support GenICam™ for Camera Link® 
           default parameters.

         - Added clprotocol.cpp Radient specific example. Demonstrates the use 
           of GenICam™ for Camera Link® CLProtocol. Enables the use of 
           MdigControlFeature() and MdigInquireFeature() to control camera 
           features (parameters) as well as the feature browser dialog window.

         - Added support for MdigControlFeature() and MdigInquireFeature(). See 
           MIL documentation for details.

      1.2.2 API enhancements.

          - Additions to MdigControl()

               - M_GC_CLPROTOCOL: Controls the activation of GenICam™ for 
                 Camera Link® CLProtocol.
                  - Values:
                     M_ENABLE: Enables GenICam™ for Camera Link® (CLProtocol). 
                               A Device ID template must be specified prior 
                               to enabling CLProtocol. See 
                               M_GC_CLPROTOCOL_DEVICEID.

               - M_GC_CLPROTOCOL_DEVICEID: Specifies the GenICam™ for Camera 
                 Link® (CLProtocol) device ID template, which must match the 
                 camera connected to the Matrox Radient. The installed device 
                 IDs can be inquired by calling MdigInquire() with 
                 M_GC_CLPROTOCOL_DEVICEID+n. See the clprotocol Radient-
                 specific example for more details.
                  - Values:
                     A MIL_TEXT_PTR string representing the GenICam™ for 
                     Camera Link® (CLProtocol) device ID template.

               - M_GC_FEATURE_BROWSER: Opens the device feature browser dialog 
                 from a MIL console application. Supported control values are:
                  - Values:
                     - M_DEFAULT: Opens the feature browser dialog. The calling 
                       thread is blocked.
                     - M_OPEN+M_SYNCHRONOUS: same as M_DEFAULT.
                     - M_OPEN+M_ASYNCHRONOUS: Opens the feature browser dialog. 
                                              The calling thread returns as 
                                              soon as the feature browser is 
                                              created.
                     - M_CLOSE: Closes the feature browser dialog.

          - Additions to MdigInquire()

               - M_GC_CLPROTOCOL: Returns information regarding activation of 
                 GenICam™ for Camera Link® CLProtocol.
                  - Values:
                     M_ENABLE: GenICam™ for Camera Link® CLProtocol is active.
                     M_DISABLE: GenICam™ for Camera Link® CLProtocol is not 
                                active.

               - M_GC_CLPROTOCOL_DEVICEID_NUM: Returns a MIL_INT, representing 
                 the number of installed GenICam™ for Camera Link® device ID 
                 templates.

               - M_GC_CLPROTOCOL_DEVICEID_SIZE_MAX: Returns a MIL_INT, 
                 representing the maximum string length required to store the 
                 device ID templates.

               - M_GC_CLPROTOCOL_DEVICEID+n: Returns a MIL_TEXT_PTR string, 
                 representing the nth GenICam™ for Camera Link® device ID 
                 template installed.

      1.2.3 Bug fixes.

          - Fixed issue regarding taps direction with time-multiplexed cameras
            (r147660).
          - Added support of 512MB and 1GB flashes (r147775).
          - Fixed problem caused by the timers that could be reprogrammed at 
            each frame (r147843).
          - Fixed issue that could lead to a false grab overrun error when our 
            interrupts are delayed (r147914).
          - Fixed issue with MdigInquire(M_CAMERA_PRESENT) (r151293).
          - Fixed issue where the internal clock generator could be outside of 
            its valid range of operation (r159620).
          - Disabled  ASPM (active state power management) in the installation 
            (.inf) file (r155491).
          - Fixed issue where PoCL was not activated on the second connector of 
            a Camera Link® camera (r161810).
          - Added new firmwares to solve an issue when grabbing from 10, 12 or 
            14bits cameras. The unused upper bits where not set to 0 (r161987).

   1.3 What’s new in MIL 9.0 Update 31.

      - Improved support of high frame rate cameras.

      - Added support for hardware-based detection of missed frames.
        MdigInquire(M_PROCESS_FRAME_MISSED) is now hardware assisted.

      - Improved interrupt latency reliability.

      - Added support of System Monitor which monitors board temperature and 
        memory parity errors. A MIL error message will be sent if the board 
        temperature exceeds the limit or if there is a memory parity error.

      - Added support of M_RGB24 packed on-board buffers.

      - MimFlip and MimResize (M_NEAREST_NEIGHBOR) between an on-board buffer 
        and a host buffer are now done by the hardware engine.

      - Improved precision of MdigInquire(M_PROCESS_FRAME_RATE).

      - Added support of more processing FPGA devices (EP4SE230, EP4SE360, 
        EP4SE530, EP4SE820).

      - MdigInquire(M_GRAB_EXPOSURE_TRIGGER_MISSED) is now supported on 
        M_TIMER2.

      - Fixed issue where a grab would not start after reallocating a digitizer 
        on the same device.

      - Fixed issue with usage monitor where the grab utilization was stuck at 
        100%.

      - Fixed a PoCL (PowerOverCameraLink) sensing issue when a PoCL camera is 
        disconnected.

   1.4 What’s new in MIL 9.0 Update 6.

    - MsysControl/MsysInquire(), MdigControl/MdigInquire():

        - All control types and inquire types that apply to Matrox Solios eV-CL 
         (and their corresponding board-specific information) also apply to 
         Matrox Radient. For additions and exceptions, see below.

    - Processing FPGA documentation:
    
        - Refer to the FPGA section of the MIL reference for documentation on 
          the Processing FPGA functions.
        - See the \examples\board-specific\radient\processingfpga example for 
          details.
        - The default processing FPGA configuration firmware shipped with MIL 
          (MfpgaExampleSLxxxCx.firmware) includes the following processing 
          units:
            
            - Bayer processing unit (use the MIL MbufBayer function)
                - Source buffers must be allocated in an on-board SDRAM memory 
                  bank (use the M_FPGA_ACCESSIBLE buffer attribute). Maximum 
                  supported buffer width (SizeX) is 4094 pixels.
                - Destination buffers must be allocated in an on-board SDRAM 
                  memory bank or in the host's non-paged memory (use the 
                  M_FPGA_ACCESSIBLE+M_HOST_MEMORY buffer attribute to allocate 
                  the buffer in the host's non-paged memory).
                - Source and destination buffers can be 8 or 16 bits.
                - If the source buffer is 16 bits, use MbufControl with M_MAX 
                  on the source buffer to indicate the actual maximum value in 
                  the buffer (e.g. if a 10 bit camera is grabbing into a 16 bit 
                  buffer, use MbufControl(..., M_MAX, 1023.0) to specify that 
                  only the values between 0 and 1023 are to be expected.
                - The CoefOrExpId parameter must be a 3x1 buffer allocated as a 
                  32+M_FLOAT buffer type with the M_ARRAY attribute.
                - M_WHITE_BALANCE_CALCULATE is not supported on the FPGA, 
                  although pre-calculated coefficients will be applied by the 
                  FPGA.
                - The M_BAYER_BIT_SHIFT() macro is supported. 
                - M_ADAPTIVE and M_AVERAGE_2X2 demosaicing algorithms are not 
                  supported.
            
            - Offset Gain processing unit(use the MIL MimArithMultiple function 
              with the M_OFFSET_GAIN Operation)
                - All source buffers must be allocated in an on-board SDRAM 
                  memory bank.
                - Destination buffers must be allocated in an on-board SDRAM 
                  memory bank or in the host's non-paged memory.
                - M_SATURATION is always applied.
            
            - LutMap processing unit (use the MIL MimLutMap function)
                - Source buffers must be allocated in an on-board SDRAM memory 
                  bank.
                - Destination buffers must be allocated in an on-board SDRAM 
                  memory bank or in the host's non-paged memory.
                - LUT buffers must be allocated as an 8 or 16 bit buffer with 
                  the M_LUT+M_FPGA_ACCESSIBLE attribute.
                - LUT buffers can have up to 4096 elements.
                
            - Other processing units are available. Contact your Matrox 
              Electronic Systems Ltd. representative for details. Those 
              processing units include, but are not limited to, the following:
                - LutMap with LUT buffers up to 65536 elements.
                - MimConvolve (3x3 convolution), MimErode, MimDilate, and 
                  MimMorphic.
                - MimHisogram.
                - MimWarp.

    - Additions to MsysAlloc(), System Descriptor parameter:

      - M_SYSTEM_RADIENT: Allocates a Matrox Radient system.

    - Additions to MsysInquire():

       - M_BOARD_TYPE:
          - Values:
            M_RADIENT + M_CL + M_SFCL + M_PF.
            M_RADIENT + M_CL + M_DFCL + M_PF.
            M_RADIENT + M_CL + M_DBCL + M_PF.
            M_RADIENT + M_CL + M_QBCL + M_PF.
            
       - M_SYSTEM_DESCRIPTOR:
          - Value:
             M_SYSTEM_RADIENT
             
       - M_SYSTEM_TYPE:
             M_SYSTEM_RADIENT_TYPE

       - M_MEMORY_SIZE:
          - Returns the amount of on-board memory, in Mbytes.
          
       - M_SHARED_MEMORY_SIZE:
          - Returns the total amount of on-board shared memory, in Mbytes. 
       
       - M_MEMORY_SIZE_BANK_0:
          - Returns the total amount of on-board memory in the SDRAM bank, 
            in Mbytes.
       
       - M_MEMORY_SIZE_BANK_1:
          - Returns the total amount of on-board memory in the SRAM bank, 
            in Mbytes.
       
       - M_MEMORY_FREE:
          - Returns the total amount of free on-board memory, in bytes. 
              
       - M_SHARED_MEMORY_FREE:
          - Returns the total amount of free on-board shared memory, in bytes. 

       - M_MEMORY_FREE_BANK_0:
          - Returns the total amount of free on-board memory in the SDRAM bank, 
            in bytes.

       - M_MEMORY_FREE_BANK_1:
          - Returns the total amount of free on-board memory in the SRAM bank, 
            in bytes.

       - M_FIRMWARE_REVISION:
          - Returns the revision number of the grab firmware (HFPGA).

       - M_FIRMWARE_BUILDDATE:
          - Returns the build date of the grab firmware (HFPGA).

       - M_FIRMWARE_REVISION_PROCESSING:
          - Returns the revision number of the processing firmware (PFPGA).
       
       - M_FIRMWARE_BUILDDATE_PROCESSING:
          - Returns the build date of the processing firmware (PFPGA).

       - M_FPGA_TEMPERATURE:
          - Returns the current temperature in Celsius of the grab FPGA.
          - Value in MIL_DOUBLE.
          
       - M_FPGA_TEMPERATURE_MAX_MEASURED:
          - Returns the maximum temperature measured in Celsius of the grab 
            FPGA.
          - Value in MIL_DOUBLE.

       - M_PROCESSING_FPGA_TEMPERATURE:
          - Returns the current temperature in Celsius of the processing FPGA.
          - Value in MIL_DOUBLE.

       - M_PROCESSING_FPGA_TEMPERATURE_MAX_MEASURED:
          - Returns the maximum temperature measured in Celsius of the 
            processing FPGA.
          - Value in MIL_DOUBLE.

    - Additions to MdigControl/MdigInquire():

         - M_CAMERA_POWER: Controls the power sent to PoCL (Power over 
           Camera-Link) cameras.
             - Values:
                M_ON 
                   Enable PoCL mechanism.
                M_OFF
                   Disable PoCL mechanism.
                M_DEFAULT
                   Same as M_ON.


2. Matrox Radient utilities.

   - There are three Matrox Radient utilities available through MilConfig: 
     (1)Matrox Radient Bench, (2)Usage Meter, and (3) Radient Performance 
     Monitor.

   - Matrox Radient Bench.
         The Matrox Radient Bench utility, located in your Matrox Imaging\Tools 
         directory, calculates the real-time transfer speed of the PCIe bus in 
         Mbytes/sec.

   - Usage Meter.
         The Usage Meter utility (UsageMeter.exe) indicates in percentages, how 
         much of the grab section and the transfer section is being used.

   - Radient Performance Monitor.
         The Radient Performance Monitor is a tool integrated with Windows 
         Performance Monitor (perfmon.exe) and is used to monitor information 
         about the Matrox Radient, such as:
         - Grab usage.
         - Transfer usage of each DMA engine.
         - Memory size of each memory bank.
         - Memory utilization of each memory bank.
         - Current and maximum temperatures of the grab and processing FPGAs.
         - Utilization of each processing unit present in the processing FPGA.

3. Limitations and particularities.

   - MdigLut() is not supported.

   - The following Time Multiplex configurations are not supported on the Dual-
     Base version of the Radient:
         - 4 taps 10/12 bits configured in 2 region of 2 taps adjacent.
         - RGB 2 taps.

4. Processing FPGA documentation.

   - This documentation is available in the MILHelp.chm. There is a User Guide 
     part ("Using MIL with a Processing FPGA") and a Reference part ("fpga").

5. Supported operating systems.

   This section lists all the supported operating systems.
   - 32-bit Windows® XP
   - 32-bit Windows® 7
   - 64-bit Windows® 7
   - 32-bit Windows® 8
   - 64-bit Windows® 8
   - 32-bit Linux®
   - 64-bit Linux®

6. Location of examples (in the help file)

   - In the help file, the location information written at the top of examples 
     might not be up-to-date. Use MIL Example Launcher to find an example 
     on disk.