sales@scenomics.com +1 650 396 9674

Testing Uniform Buffer Read/Write Capabilities

In this exercise you'll learn how to check if your GPU correctly reads and writes values to uniform buffers. Driver bugs are infrequent and these tests let you know if there are problems you should be aware of. It's also worth mentioning that Scenomics uses these tests to verify our OpenGL implementation. We've found plenty of our own bugs this way.

Start The Shader Application

  1. Start the Shader app. (Start » Programs » Scenomics » Shader) or (Windows® key and then type 'Shader' to find the app icon.)

    The application displays a splash screen and then the application desktop appears.

    This is a picture of the desktop.

Run Shader Buffer Write/Read Test Command

  1. Examine the main menu and select File » Run Tests.

    The application displays a list of tests that you can run.

  2. Select Test Uniform Buffer Read-Write from the listed options and click OK or hit ENTER when you are finished.

    This is going to determine if your GPU is capable of reading and writing uniform buffer values correctly. Verification is performed by writing the uniform values and then assigning them to variables of the same type declared in shader storage buffer objects. We'll explore the test code later.

    Note that some GPUs do not support large shaders. If your GPU cannot compile this shader, you'll need to disable some of the code. That is discussed at the end of this exercise.

    //////////////////////////////////////////////////
    // Starting Uniform Buffer Tests
    //////////////////////////////////////////////////
    
    Found test GLSL: D:\Release6\Content\Tests\GPU\test_uniform_buffer_read_write.glsl
    Setting up program to run compute shader using GLSL #version 430.
    Successfully compiled shader program.
    Successfully set shader program active on rendering device.
    Validated binding index: 'test_buffer' buffer index is: 0
    Validated buffer size: 'test_buffer' buffer size is 13600 bytes.
    Successfully created buffer 'test_buffer' on device.
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    a_bWrite is: true
    a_bRead is:  true
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_bool
    a_oInfo.Index...........................0
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................0
    a_oInfo.Size............................1
    a_oInfo.Type............................35670
    a_oInfo.TypeSize........................4
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................4
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    0,
    1
    
    Read values:
    0,
    1,
    0,
    1
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_bool_array[0]
    a_oInfo.Index...........................1
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................4
    a_oInfo.Size............................4
    a_oInfo.Type............................35670
    a_oInfo.TypeSize........................4
    a_oInfo.ArrayStride.....................4
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................16
    
    //////////////////////////////////////////////////
    ApplicationRunTests2
    //////////////////////////////////////////////////
    
    Write values:
    1, 0, 0, 0
    
    Read values:
    1, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_bvec2
    a_oInfo.Index...........................2
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................24
    a_oInfo.Size............................1
    a_oInfo.Type............................35671
    a_oInfo.TypeSize........................8
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................8
    
    //////////////////////////////////////////////////
    ApplicationRunTests3
    //////////////////////////////////////////////////
    
    Write values:
    1, 0, 1, 0
    
    Read values:
    1, 0, 1, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_bvec3
    a_oInfo.Index...........................4
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................32
    a_oInfo.Size............................1
    a_oInfo.Type............................35672
    a_oInfo.TypeSize........................12
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................12
    
    //////////////////////////////////////////////////
    ApplicationRunTests4
    //////////////////////////////////////////////////
    
    Write values:
    1, 0, 1, 0
    
    Read values:
    1, 0, 1, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_bvec4
    a_oInfo.Index...........................6
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................48
    a_oInfo.Size............................1
    a_oInfo.Type............................35673
    a_oInfo.TypeSize........................16
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................16
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    0,
    0,
    1,
    0,
    0,
    0,
    0,
    1,
    0,
    0,
    1,
    0,
    0,
    0
    
    Read values:
    0,
    1,
    0,
    0,
    1,
    0,
    0,
    0,
    0,
    1,
    0,
    0,
    1,
    0,
    0,
    0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_bvec2_array[0]
    a_oInfo.Index...........................3
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................64
    a_oInfo.Size............................4
    a_oInfo.Type............................35671
    a_oInfo.TypeSize........................8
    a_oInfo.ArrayStride.....................8
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................32
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    0,
    0,
    1,
    0,
    1,
    0,
    0,
    1,
    0,
    0,
    1,
    0,
    1,
    0
    
    Read values:
    0,
    1,
    0,
    0,
    1,
    0,
    1,
    0,
    0,
    1,
    0,
    0,
    1,
    0,
    1,
    0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_bvec3_array[0]
    a_oInfo.Index...........................5
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................96
    a_oInfo.Size............................4
    a_oInfo.Type............................35672
    a_oInfo.TypeSize........................12
    a_oInfo.ArrayStride.....................16
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................64
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    0,
    1,
    1,
    0,
    1,
    0,
    0,
    1,
    0,
    1,
    1,
    0,
    1,
    0
    
    Read values:
    0,
    1,
    0,
    1,
    1,
    0,
    1,
    0,
    0,
    1,
    0,
    1,
    1,
    0,
    1,
    0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_bvec4_array[0]
    a_oInfo.Index...........................7
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................160
    a_oInfo.Size............................4
    a_oInfo.Type............................35673
    a_oInfo.TypeSize........................16
    a_oInfo.ArrayStride.....................16
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................64
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    a_uWrite is: 32
    a_uRead is:  32
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_uint8_t
    a_oInfo.Index...........................154
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................224
    a_oInfo.Size............................1
    a_oInfo.Type............................36844
    a_oInfo.TypeSize........................1
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................1
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    2,
    3
    
    Read values:
    0,
    1,
    2,
    3
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_uint8_t_array[0]
    a_oInfo.Index...........................155
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................225
    a_oInfo.Size............................4
    a_oInfo.Type............................36844
    a_oInfo.TypeSize........................1
    a_oInfo.ArrayStride.....................1
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................4
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    32, 64, 0, 0
    
    Read values:
    32, 64, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_u8vec2
    a_oInfo.Index...........................142
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................230
    a_oInfo.Size............................1
    a_oInfo.Type............................36845
    a_oInfo.TypeSize........................2
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................2
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    32, 64, 96, 0
    
    Read values:
    32, 64, 96, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_u8vec3
    a_oInfo.Index...........................144
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................232
    a_oInfo.Size............................1
    a_oInfo.Type............................36846
    a_oInfo.TypeSize........................3
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................3
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    32, 64, 96, 127
    
    Read values:
    32, 64, 96, 127
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_u8vec4
    a_oInfo.Index...........................146
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................236
    a_oInfo.Size............................1
    a_oInfo.Type............................36847
    a_oInfo.TypeSize........................4
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................4
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    0,
    0,
    4,
    5,
    0,
    0,
    8,
    9,
    0,
    0,
    12,
    13,
    0,
    0
    
    Read values:
    0,
    1,
    0,
    0,
    4,
    5,
    0,
    0,
    8,
    9,
    0,
    0,
    12,
    13,
    0,
    0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_u8vec2_array[0]
    a_oInfo.Index...........................143
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................240
    a_oInfo.Size............................4
    a_oInfo.Type............................36845
    a_oInfo.TypeSize........................2
    a_oInfo.ArrayStride.....................2
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................8
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    2,
    0,
    4,
    5,
    6,
    0,
    8,
    9,
    10,
    0,
    12,
    13,
    14,
    0
    
    Read values:
    0,
    1,
    2,
    0,
    4,
    5,
    6,
    0,
    8,
    9,
    10,
    0,
    12,
    13,
    14,
    0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_u8vec3_array[0]
    a_oInfo.Index...........................145
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................248
    a_oInfo.Size............................4
    a_oInfo.Type............................36846
    a_oInfo.TypeSize........................3
    a_oInfo.ArrayStride.....................4
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................16
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    2,
    3,
    4,
    5,
    6,
    7,
    8,
    9,
    10,
    11,
    12,
    13,
    14,
    15
    
    Read values:
    0,
    1,
    2,
    3,
    4,
    5,
    6,
    7,
    8,
    9,
    10,
    11,
    12,
    13,
    14,
    15
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_u8vec4_array[0]
    a_oInfo.Index...........................147
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................264
    a_oInfo.Size............................4
    a_oInfo.Type............................36847
    a_oInfo.TypeSize........................4
    a_oInfo.ArrayStride.....................4
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................16
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    a_uWrite is: 32
    a_uRead is:  32
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_uint16_t
    a_oInfo.Index...........................148
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................280
    a_oInfo.Size............................1
    a_oInfo.Type............................36848
    a_oInfo.TypeSize........................2
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................2
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    2,
    3
    
    Read values:
    0,
    1,
    2,
    3
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_uint16_t_array[0]
    a_oInfo.Index...........................149
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................282
    a_oInfo.Size............................4
    a_oInfo.Type............................36848
    a_oInfo.TypeSize........................2
    a_oInfo.ArrayStride.....................2
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................8
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    32, 64, 0, 0
    
    Read values:
    32, 64, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_u16vec2
    a_oInfo.Index...........................130
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................292
    a_oInfo.Size............................1
    a_oInfo.Type............................36849
    a_oInfo.TypeSize........................4
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................4
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    32, 64, 96, 0
    
    Read values:
    32, 64, 96, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_u16vec3
    a_oInfo.Index...........................132
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................296
    a_oInfo.Size............................1
    a_oInfo.Type............................36850
    a_oInfo.TypeSize........................6
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................6
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    32, 64, 96, 127
    
    Read values:
    32, 64, 96, 127
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_u16vec4
    a_oInfo.Index...........................134
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................304
    a_oInfo.Size............................1
    a_oInfo.Type............................36851
    a_oInfo.TypeSize........................8
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................8
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    0,
    0,
    4,
    5,
    0,
    0,
    8,
    9,
    0,
    0,
    12,
    13,
    0,
    0
    
    Read values:
    0,
    1,
    0,
    0,
    4,
    5,
    0,
    0,
    8,
    9,
    0,
    0,
    12,
    13,
    0,
    0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_u16vec2_array[0]
    a_oInfo.Index...........................131
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................312
    a_oInfo.Size............................4
    a_oInfo.Type............................36849
    a_oInfo.TypeSize........................4
    a_oInfo.ArrayStride.....................4
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................16
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    2,
    0,
    4,
    5,
    6,
    0,
    8,
    9,
    10,
    0,
    12,
    13,
    14,
    0
    
    Read values:
    0,
    1,
    2,
    0,
    4,
    5,
    6,
    0,
    8,
    9,
    10,
    0,
    12,
    13,
    14,
    0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_u16vec3_array[0]
    a_oInfo.Index...........................133
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................328
    a_oInfo.Size............................4
    a_oInfo.Type............................36850
    a_oInfo.TypeSize........................6
    a_oInfo.ArrayStride.....................8
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................32
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    2,
    3,
    4,
    5,
    6,
    7,
    8,
    9,
    10,
    11,
    12,
    13,
    14,
    15
    
    Read values:
    0,
    1,
    2,
    3,
    4,
    5,
    6,
    7,
    8,
    9,
    10,
    11,
    12,
    13,
    14,
    15
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_u16vec4_array[0]
    a_oInfo.Index...........................135
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................360
    a_oInfo.Size............................4
    a_oInfo.Type............................36851
    a_oInfo.TypeSize........................8
    a_oInfo.ArrayStride.....................8
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................32
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    a_uWrite is: 1128256512
    a_uRead is:  1128256512
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_uint32
    a_oInfo.Index...........................150
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................392
    a_oInfo.Size............................1
    a_oInfo.Type............................5125
    a_oInfo.TypeSize........................4
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................4
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    2,
    3
    
    Read values:
    0,
    1,
    2,
    3
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_uint32_array[0]
    a_oInfo.Index...........................151
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................396
    a_oInfo.Size............................4
    a_oInfo.Type............................5125
    a_oInfo.TypeSize........................4
    a_oInfo.ArrayStride.....................4
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................16
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 0, 0
    
    Read values:
    1, 2, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_uvec2
    a_oInfo.Index...........................156
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................416
    a_oInfo.Size............................1
    a_oInfo.Type............................36294
    a_oInfo.TypeSize........................8
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................8
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 0
    
    Read values:
    1, 2, 3, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_uvec3
    a_oInfo.Index...........................158
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................432
    a_oInfo.Size............................1
    a_oInfo.Type............................36295
    a_oInfo.TypeSize........................12
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................12
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 4
    
    Read values:
    1, 2, 3, 4
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_uvec4
    a_oInfo.Index...........................160
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................448
    a_oInfo.Size............................1
    a_oInfo.Type............................36296
    a_oInfo.TypeSize........................16
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................16
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    0,
    0,
    4,
    5,
    0,
    0,
    8,
    9,
    0,
    0,
    12,
    13,
    0,
    0
    
    Read values:
    0,
    1,
    0,
    0,
    4,
    5,
    0,
    0,
    8,
    9,
    0,
    0,
    12,
    13,
    0,
    0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_uvec2_array[0]
    a_oInfo.Index...........................157
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................464
    a_oInfo.Size............................4
    a_oInfo.Type............................36294
    a_oInfo.TypeSize........................8
    a_oInfo.ArrayStride.....................8
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................32
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    2,
    0,
    4,
    5,
    6,
    0,
    8,
    9,
    10,
    0,
    12,
    13,
    14,
    0
    
    Read values:
    0,
    1,
    2,
    0,
    4,
    5,
    6,
    0,
    8,
    9,
    10,
    0,
    12,
    13,
    14,
    0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_uvec3_array[0]
    a_oInfo.Index...........................159
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................496
    a_oInfo.Size............................4
    a_oInfo.Type............................36295
    a_oInfo.TypeSize........................12
    a_oInfo.ArrayStride.....................16
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................64
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    2,
    3,
    4,
    5,
    6,
    7,
    8,
    9,
    10,
    11,
    12,
    13,
    14,
    15
    
    Read values:
    0,
    1,
    2,
    3,
    4,
    5,
    6,
    7,
    8,
    9,
    10,
    11,
    12,
    13,
    14,
    15
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_uvec4_array[0]
    a_oInfo.Index...........................161
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................560
    a_oInfo.Size............................4
    a_oInfo.Type............................36296
    a_oInfo.TypeSize........................16
    a_oInfo.ArrayStride.....................16
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................64
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    a_uWrite is: 80000000000
    a_uRead is:  80000000000
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_uint64_t
    a_oInfo.Index...........................152
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................624
    a_oInfo.Size............................1
    a_oInfo.Type............................5135
    a_oInfo.TypeSize........................8
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................8
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    2,
    3
    
    Read values:
    0,
    1,
    2,
    3
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_uint64_t_array[0]
    a_oInfo.Index...........................153
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................632
    a_oInfo.Size............................4
    a_oInfo.Type............................5135
    a_oInfo.TypeSize........................8
    a_oInfo.ArrayStride.....................8
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................32
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    9783498217, 13893274982, 0, 0
    
    Read values:
    9783498217, 13893274982, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_u64vec2
    a_oInfo.Index...........................136
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................672
    a_oInfo.Size............................1
    a_oInfo.Type............................36853
    a_oInfo.TypeSize........................16
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................16
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    9783498217, 13893274982, 18364363, 0
    
    Read values:
    9783498217, 13893274982, 18364363, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_u64vec3
    a_oInfo.Index...........................138
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................704
    a_oInfo.Size............................1
    a_oInfo.Type............................36854
    a_oInfo.TypeSize........................24
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................24
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    9783498217, 13893274982, 18364363, 483734843
    
    Read values:
    9783498217, 13893274982, 18364363, 483734843
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_u64vec4
    a_oInfo.Index...........................140
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................736
    a_oInfo.Size............................1
    a_oInfo.Type............................36855
    a_oInfo.TypeSize........................32
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................32
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    0,
    0,
    4,
    5,
    0,
    0,
    8,
    9,
    0,
    0,
    12,
    13,
    0,
    0
    
    Read values:
    0,
    1,
    0,
    0,
    4,
    5,
    0,
    0,
    8,
    9,
    0,
    0,
    12,
    13,
    0,
    0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_u64vec2_array[0]
    a_oInfo.Index...........................137
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................768
    a_oInfo.Size............................4
    a_oInfo.Type............................36853
    a_oInfo.TypeSize........................16
    a_oInfo.ArrayStride.....................16
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................64
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    2,
    0,
    4,
    5,
    6,
    0,
    8,
    9,
    10,
    0,
    12,
    13,
    14,
    0
    
    Read values:
    0,
    1,
    2,
    0,
    4,
    5,
    6,
    0,
    8,
    9,
    10,
    0,
    12,
    13,
    14,
    0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_u64vec3_array[0]
    a_oInfo.Index...........................139
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................832
    a_oInfo.Size............................4
    a_oInfo.Type............................36854
    a_oInfo.TypeSize........................24
    a_oInfo.ArrayStride.....................32
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................128
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    2,
    3,
    4,
    5,
    6,
    7,
    8,
    9,
    10,
    11,
    12,
    13,
    14,
    15
    
    Read values:
    0,
    1,
    2,
    3,
    4,
    5,
    6,
    7,
    8,
    9,
    10,
    11,
    12,
    13,
    14,
    15
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_u64vec4_array[0]
    a_oInfo.Index...........................141
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................960
    a_oInfo.Size............................4
    a_oInfo.Type............................36855
    a_oInfo.TypeSize........................32
    a_oInfo.ArrayStride.....................32
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................128
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    a_iWrite is: 32
    a_iRead is:  32
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_int8_t
    a_oInfo.Index...........................86
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1088
    a_oInfo.Size............................1
    a_oInfo.Type............................36832
    a_oInfo.TypeSize........................1
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................1
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    2,
    3
    
    Read values:
    0,
    1,
    2,
    3
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_int8_t_array[0]
    a_oInfo.Index...........................87
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1089
    a_oInfo.Size............................4
    a_oInfo.Type............................36832
    a_oInfo.TypeSize........................1
    a_oInfo.ArrayStride.....................1
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................4
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    32, 64, 0, 0
    
    Read values:
    32, 64, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_i8vec2
    a_oInfo.Index...........................74
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1094
    a_oInfo.Size............................1
    a_oInfo.Type............................36833
    a_oInfo.TypeSize........................2
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................2
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    32, 64, 96, 0
    
    Read values:
    32, 64, 96, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_i8vec3
    a_oInfo.Index...........................76
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1096
    a_oInfo.Size............................1
    a_oInfo.Type............................36834
    a_oInfo.TypeSize........................3
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................3
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    32, 64, 96, 127
    
    Read values:
    32, 64, 96, 127
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_i8vec4
    a_oInfo.Index...........................78
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1100
    a_oInfo.Size............................1
    a_oInfo.Type............................36835
    a_oInfo.TypeSize........................4
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................4
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    0,
    0,
    4,
    5,
    0,
    0,
    8,
    9,
    0,
    0,
    12,
    13,
    0,
    0
    
    Read values:
    0,
    1,
    0,
    0,
    4,
    5,
    0,
    0,
    8,
    9,
    0,
    0,
    12,
    13,
    0,
    0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_i8vec2_array[0]
    a_oInfo.Index...........................75
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1104
    a_oInfo.Size............................4
    a_oInfo.Type............................36833
    a_oInfo.TypeSize........................2
    a_oInfo.ArrayStride.....................2
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................8
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    2,
    0,
    4,
    5,
    6,
    0,
    8,
    9,
    10,
    0,
    12,
    13,
    14,
    0
    
    Read values:
    0,
    1,
    2,
    0,
    4,
    5,
    6,
    0,
    8,
    9,
    10,
    0,
    12,
    13,
    14,
    0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_i8vec3_array[0]
    a_oInfo.Index...........................77
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1112
    a_oInfo.Size............................4
    a_oInfo.Type............................36834
    a_oInfo.TypeSize........................3
    a_oInfo.ArrayStride.....................4
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................16
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    2,
    3,
    4,
    5,
    6,
    7,
    8,
    9,
    10,
    11,
    12,
    13,
    14,
    15
    
    Read values:
    0,
    1,
    2,
    3,
    4,
    5,
    6,
    7,
    8,
    9,
    10,
    11,
    12,
    13,
    14,
    15
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_i8vec4_array[0]
    a_oInfo.Index...........................79
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1128
    a_oInfo.Size............................4
    a_oInfo.Type............................36835
    a_oInfo.TypeSize........................4
    a_oInfo.ArrayStride.....................4
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................16
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    a_iWrite is: 32
    a_iRead is:  32
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_int16_t
    a_oInfo.Index...........................80
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1144
    a_oInfo.Size............................1
    a_oInfo.Type............................36836
    a_oInfo.TypeSize........................2
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................2
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    2,
    3
    
    Read values:
    0,
    1,
    2,
    3
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_int16_t_array[0]
    a_oInfo.Index...........................81
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1146
    a_oInfo.Size............................4
    a_oInfo.Type............................36836
    a_oInfo.TypeSize........................2
    a_oInfo.ArrayStride.....................2
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................8
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    32, 64, 0, 0
    
    Read values:
    32, 64, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_i16vec2
    a_oInfo.Index...........................62
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1156
    a_oInfo.Size............................1
    a_oInfo.Type............................36837
    a_oInfo.TypeSize........................4
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................4
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    32, 64, 96, 0
    
    Read values:
    32, 64, 96, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_i16vec3
    a_oInfo.Index...........................64
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1160
    a_oInfo.Size............................1
    a_oInfo.Type............................36838
    a_oInfo.TypeSize........................6
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................6
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    32, 64, 96, 127
    
    Read values:
    32, 64, 96, 127
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_i16vec4
    a_oInfo.Index...........................66
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1168
    a_oInfo.Size............................1
    a_oInfo.Type............................36839
    a_oInfo.TypeSize........................8
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................8
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    0,
    0,
    4,
    5,
    0,
    0,
    8,
    9,
    0,
    0,
    12,
    13,
    0,
    0
    
    Read values:
    0,
    1,
    0,
    0,
    4,
    5,
    0,
    0,
    8,
    9,
    0,
    0,
    12,
    13,
    0,
    0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_i16vec2_array[0]
    a_oInfo.Index...........................63
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1176
    a_oInfo.Size............................4
    a_oInfo.Type............................36837
    a_oInfo.TypeSize........................4
    a_oInfo.ArrayStride.....................4
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................16
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    2,
    0,
    4,
    5,
    6,
    0,
    8,
    9,
    10,
    0,
    12,
    13,
    14,
    0
    
    Read values:
    0,
    1,
    2,
    0,
    4,
    5,
    6,
    0,
    8,
    9,
    10,
    0,
    12,
    13,
    14,
    0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_i16vec3_array[0]
    a_oInfo.Index...........................65
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1192
    a_oInfo.Size............................4
    a_oInfo.Type............................36838
    a_oInfo.TypeSize........................6
    a_oInfo.ArrayStride.....................8
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................32
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    2,
    3,
    4,
    5,
    6,
    7,
    8,
    9,
    10,
    11,
    12,
    13,
    14,
    15
    
    Read values:
    0,
    1,
    2,
    3,
    4,
    5,
    6,
    7,
    8,
    9,
    10,
    11,
    12,
    13,
    14,
    15
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_i16vec4_array[0]
    a_oInfo.Index...........................67
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1224
    a_oInfo.Size............................4
    a_oInfo.Type............................36839
    a_oInfo.TypeSize........................8
    a_oInfo.ArrayStride.....................8
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................32
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    a_iWrite is: 32
    a_iRead is:  32
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_int32
    a_oInfo.Index...........................82
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1256
    a_oInfo.Size............................1
    a_oInfo.Type............................5124
    a_oInfo.TypeSize........................4
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................4
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    2,
    3
    
    Read values:
    0,
    1,
    2,
    3
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_int32_array[0]
    a_oInfo.Index...........................83
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1260
    a_oInfo.Size............................4
    a_oInfo.Type............................5124
    a_oInfo.TypeSize........................4
    a_oInfo.ArrayStride.....................4
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................16
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 0, 0
    
    Read values:
    1, 2, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_ivec2
    a_oInfo.Index...........................88
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1280
    a_oInfo.Size............................1
    a_oInfo.Type............................35667
    a_oInfo.TypeSize........................8
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................8
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 0
    
    Read values:
    1, 2, 3, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_ivec3
    a_oInfo.Index...........................90
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1296
    a_oInfo.Size............................1
    a_oInfo.Type............................35668
    a_oInfo.TypeSize........................12
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................12
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 4
    
    Read values:
    1, 2, 3, 4
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_ivec4
    a_oInfo.Index...........................92
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1312
    a_oInfo.Size............................1
    a_oInfo.Type............................35669
    a_oInfo.TypeSize........................16
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................16
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    0,
    0,
    4,
    5,
    0,
    0,
    8,
    9,
    0,
    0,
    12,
    13,
    0,
    0
    
    Read values:
    0,
    1,
    0,
    0,
    4,
    5,
    0,
    0,
    8,
    9,
    0,
    0,
    12,
    13,
    0,
    0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_ivec2_array[0]
    a_oInfo.Index...........................89
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1328
    a_oInfo.Size............................4
    a_oInfo.Type............................35667
    a_oInfo.TypeSize........................8
    a_oInfo.ArrayStride.....................8
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................32
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    2,
    0,
    4,
    5,
    6,
    0,
    8,
    9,
    10,
    0,
    12,
    13,
    14,
    0
    
    Read values:
    0,
    1,
    2,
    0,
    4,
    5,
    6,
    0,
    8,
    9,
    10,
    0,
    12,
    13,
    14,
    0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_ivec3_array[0]
    a_oInfo.Index...........................91
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1360
    a_oInfo.Size............................4
    a_oInfo.Type............................35668
    a_oInfo.TypeSize........................12
    a_oInfo.ArrayStride.....................16
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................64
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    2,
    3,
    4,
    5,
    6,
    7,
    8,
    9,
    10,
    11,
    12,
    13,
    14,
    15
    
    Read values:
    0,
    1,
    2,
    3,
    4,
    5,
    6,
    7,
    8,
    9,
    10,
    11,
    12,
    13,
    14,
    15
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_ivec4_array[0]
    a_oInfo.Index...........................93
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1424
    a_oInfo.Size............................4
    a_oInfo.Type............................35669
    a_oInfo.TypeSize........................16
    a_oInfo.ArrayStride.....................16
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................64
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    a_iWrite is: 80000000000
    a_iRead is:  80000000000
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_int64_t
    a_oInfo.Index...........................84
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1488
    a_oInfo.Size............................1
    a_oInfo.Type............................5134
    a_oInfo.TypeSize........................8
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................8
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    2,
    3
    
    Read values:
    0,
    1,
    2,
    3
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_int64_t_array[0]
    a_oInfo.Index...........................85
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1496
    a_oInfo.Size............................4
    a_oInfo.Type............................5134
    a_oInfo.TypeSize........................8
    a_oInfo.ArrayStride.....................8
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................32
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    9783498217, 13893274982, 0, 0
    
    Read values:
    9783498217, 13893274982, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_i64vec2
    a_oInfo.Index...........................68
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1536
    a_oInfo.Size............................1
    a_oInfo.Type............................36841
    a_oInfo.TypeSize........................16
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................16
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    9783498217, 13893274982, -18364363, 0
    
    Read values:
    9783498217, 13893274982, -18364363, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_i64vec3
    a_oInfo.Index...........................70
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1568
    a_oInfo.Size............................1
    a_oInfo.Type............................36842
    a_oInfo.TypeSize........................24
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................24
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    9783498217, 13893274982, -18364363, -483734843
    
    Read values:
    9783498217, 13893274982, -18364363, -483734843
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_i64vec4
    a_oInfo.Index...........................72
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1600
    a_oInfo.Size............................1
    a_oInfo.Type............................36843
    a_oInfo.TypeSize........................32
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................32
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    0,
    0,
    4,
    5,
    0,
    0,
    8,
    9,
    0,
    0,
    12,
    13,
    0,
    0
    
    Read values:
    0,
    1,
    0,
    0,
    4,
    5,
    0,
    0,
    8,
    9,
    0,
    0,
    12,
    13,
    0,
    0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_i64vec2_array[0]
    a_oInfo.Index...........................69
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1632
    a_oInfo.Size............................4
    a_oInfo.Type............................36841
    a_oInfo.TypeSize........................16
    a_oInfo.ArrayStride.....................16
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................64
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    2,
    0,
    4,
    5,
    6,
    0,
    8,
    9,
    10,
    0,
    12,
    13,
    14,
    0
    
    Read values:
    0,
    1,
    2,
    0,
    4,
    5,
    6,
    0,
    8,
    9,
    10,
    0,
    12,
    13,
    14,
    0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_i64vec3_array[0]
    a_oInfo.Index...........................71
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1696
    a_oInfo.Size............................4
    a_oInfo.Type............................36842
    a_oInfo.TypeSize........................24
    a_oInfo.ArrayStride.....................32
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................128
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    2,
    3,
    4,
    5,
    6,
    7,
    8,
    9,
    10,
    11,
    12,
    13,
    14,
    15
    
    Read values:
    0,
    1,
    2,
    3,
    4,
    5,
    6,
    7,
    8,
    9,
    10,
    11,
    12,
    13,
    14,
    15
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_i64vec4_array[0]
    a_oInfo.Index...........................73
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1824
    a_oInfo.Size............................4
    a_oInfo.Type............................36843
    a_oInfo.TypeSize........................32
    a_oInfo.ArrayStride.....................32
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................128
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    a_fWrite is: 1.50000000000
    a_fRead is:  1.50000000000
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_float16_t
    a_oInfo.Index...........................56
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1952
    a_oInfo.Size............................1
    a_oInfo.Type............................36856
    a_oInfo.TypeSize........................2
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................2
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    2,
    3
    
    Read values:
    0,
    1,
    2,
    3
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_float16_t_array[0]
    a_oInfo.Index...........................57
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1954
    a_oInfo.Size............................4
    a_oInfo.Type............................36856
    a_oInfo.TypeSize........................2
    a_oInfo.ArrayStride.....................2
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................8
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1.09960937500, 2.25000000000, 0.000000000000, 0.000000000000
    
    Read values:
    1.09960937500, 2.25000000000, 0.000000000000, 0.000000000000
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_f16vec2
    a_oInfo.Index...........................50
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1964
    a_oInfo.Size............................1
    a_oInfo.Type............................36857
    a_oInfo.TypeSize........................4
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................4
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1.09960937500, 2.25000000000, 3.32421875000, 0.000000000000
    
    Read values:
    1.09960937500, 2.25000000000, 3.32421875000, 0.000000000000
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_f16vec3
    a_oInfo.Index...........................52
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1968
    a_oInfo.Size............................1
    a_oInfo.Type............................36858
    a_oInfo.TypeSize........................6
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................6
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1.09960937500, 2.25000000000, 3.32421875000, 4.42187500000
    
    Read values:
    1.09960937500, 2.25000000000, 3.32421875000, 4.42187500000
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_f16vec4
    a_oInfo.Index...........................54
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1976
    a_oInfo.Size............................1
    a_oInfo.Type............................36859
    a_oInfo.TypeSize........................8
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................8
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    14336,
    15872,
    0,
    0,
    17536,
    17792,
    0,
    0,
    18496,
    18624,
    0,
    0,
    19008,
    19136,
    0,
    0
    
    Read values:
    14336,
    15872,
    0,
    0,
    17536,
    17792,
    0,
    0,
    18496,
    18624,
    0,
    0,
    19008,
    19136,
    0,
    0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_f16vec2_array[0]
    a_oInfo.Index...........................51
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................1984
    a_oInfo.Size............................4
    a_oInfo.Type............................36857
    a_oInfo.TypeSize........................4
    a_oInfo.ArrayStride.....................4
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................16
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    14336,
    15872,
    16640,
    0,
    17536,
    17792,
    18048,
    0,
    18496,
    18624,
    18752,
    0,
    19008,
    19136,
    19264,
    0
    
    Read values:
    14336,
    15872,
    16640,
    0,
    17536,
    17792,
    18048,
    0,
    18496,
    18624,
    18752,
    0,
    19008,
    19136,
    19264,
    0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_f16vec3_array[0]
    a_oInfo.Index...........................53
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................2000
    a_oInfo.Size............................4
    a_oInfo.Type............................36858
    a_oInfo.TypeSize........................6
    a_oInfo.ArrayStride.....................8
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................32
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    14336,
    15872,
    16640,
    17152,
    17536,
    17792,
    18048,
    18304,
    18496,
    18624,
    18752,
    18880,
    19008,
    19136,
    19264,
    19392
    
    Read values:
    14336,
    15872,
    16640,
    17152,
    17536,
    17792,
    18048,
    18304,
    18496,
    18624,
    18752,
    18880,
    19008,
    19136,
    19264,
    19392
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_f16vec4_array[0]
    a_oInfo.Index...........................55
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................2032
    a_oInfo.Size............................4
    a_oInfo.Type............................36859
    a_oInfo.TypeSize........................8
    a_oInfo.ArrayStride.....................8
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................32
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    a_fWrite is: 32.3230000000
    a_fRead is:  32.3230018616
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_float32
    a_oInfo.Index...........................58
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................2064
    a_oInfo.Size............................1
    a_oInfo.Type............................5126
    a_oInfo.TypeSize........................4
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................4
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    2,
    3
    
    Read values:
    0,
    1,
    2,
    3
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_float32_array[0]
    a_oInfo.Index...........................59
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................2068
    a_oInfo.Size............................4
    a_oInfo.Type............................5126
    a_oInfo.TypeSize........................4
    a_oInfo.ArrayStride.....................4
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................16
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1.00000000000, 2.00000000000, 0.000000000000, 0.000000000000
    
    Read values:
    1.00000000000, 2.00000000000, 0.000000000000, 0.000000000000
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_vec2
    a_oInfo.Index...........................162
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................2088
    a_oInfo.Size............................1
    a_oInfo.Type............................35664
    a_oInfo.TypeSize........................8
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................8
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1.00000000000, 2.00000000000, 3.00000000000, 0.000000000000
    
    Read values:
    1.00000000000, 2.00000000000, 3.00000000000, 0.000000000000
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_vec3
    a_oInfo.Index...........................164
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................2096
    a_oInfo.Size............................1
    a_oInfo.Type............................35665
    a_oInfo.TypeSize........................12
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................12
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1.00000000000, 2.00000000000, 3.00000000000, 4.00000000000
    
    Read values:
    1.00000000000, 2.00000000000, 3.00000000000, 4.00000000000
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_vec4
    a_oInfo.Index...........................166
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................2112
    a_oInfo.Size............................1
    a_oInfo.Type............................35666
    a_oInfo.TypeSize........................16
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................16
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0.5,
    1.5,
    0,
    0,
    4.5,
    5.5,
    0,
    0,
    8.5,
    9.5,
    0,
    0,
    12.5,
    13.5,
    0,
    0
    
    Read values:
    0.5,
    1.5,
    0,
    0,
    4.5,
    5.5,
    0,
    0,
    8.5,
    9.5,
    0,
    0,
    12.5,
    13.5,
    0,
    0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_vec2_array[0]
    a_oInfo.Index...........................163
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................2128
    a_oInfo.Size............................4
    a_oInfo.Type............................35664
    a_oInfo.TypeSize........................8
    a_oInfo.ArrayStride.....................8
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................32
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0.5,
    1.5,
    2.5,
    0,
    4.5,
    5.5,
    6.5,
    0,
    8.5,
    9.5,
    10.5,
    0,
    12.5,
    13.5,
    14.5,
    0
    
    Read values:
    0.5,
    1.5,
    2.5,
    0,
    4.5,
    5.5,
    6.5,
    0,
    8.5,
    9.5,
    10.5,
    0,
    12.5,
    13.5,
    14.5,
    0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_vec3_array[0]
    a_oInfo.Index...........................165
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................2160
    a_oInfo.Size............................4
    a_oInfo.Type............................35665
    a_oInfo.TypeSize........................12
    a_oInfo.ArrayStride.....................16
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................64
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0.5,
    1.5,
    2.5,
    3.5,
    4.5,
    5.5,
    6.5,
    7.5,
    8.5,
    9.5,
    10.5,
    11.5,
    12.5,
    13.5,
    14.5,
    15.5
    
    Read values:
    0.5,
    1.5,
    2.5,
    3.5,
    4.5,
    5.5,
    6.5,
    7.5,
    8.5,
    9.5,
    10.5,
    11.5,
    12.5,
    13.5,
    14.5,
    15.5
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_vec4_array[0]
    a_oInfo.Index...........................167
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................2224
    a_oInfo.Size............................4
    a_oInfo.Type............................35666
    a_oInfo.TypeSize........................16
    a_oInfo.ArrayStride.....................16
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................64
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 3, 0, 0
    2, 4, 0, 0
    0, 0, 0, 0
    0, 0, 0, 0
    
    Read values:
    1, 3, 0, 0
    2, 4, 0, 0
    0, 0, 0, 0
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat2x2_cm
    a_oInfo.Index...........................96
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................2288
    a_oInfo.Size............................1
    a_oInfo.Type............................35674
    a_oInfo.TypeSize........................16
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................8
    a_oInfo.Rows............................2
    a_oInfo.Cols............................2
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................16
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 4, 0, 0
    2, 5, 0, 0
    3, 6, 0, 0
    0, 0, 0, 0
    
    Read values:
    1, 4, 0, 0
    2, 5, 0, 0
    3, 6, 0, 0
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat2x3_cm
    a_oInfo.Index...........................100
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................2304
    a_oInfo.Size............................1
    a_oInfo.Type............................35685
    a_oInfo.TypeSize........................24
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................3
    a_oInfo.Cols............................2
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................32
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 5, 0, 0
    2, 6, 0, 0
    3, 7, 0, 0
    4, 8, 0, 0
    
    Read values:
    1, 5, 0, 0
    2, 6, 0, 0
    3, 7, 0, 0
    4, 8, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat2x4_cm
    a_oInfo.Index...........................104
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................2336
    a_oInfo.Size............................1
    a_oInfo.Type............................35686
    a_oInfo.TypeSize........................32
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................4
    a_oInfo.Cols............................2
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................32
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 3, 5, 0
    2, 4, 6, 0
    0, 0, 0, 0
    0, 0, 0, 0
    
    Read values:
    1, 3, 5, 0
    2, 4, 6, 0
    0, 0, 0, 0
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat3x2_cm
    a_oInfo.Index...........................108
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................2368
    a_oInfo.Size............................1
    a_oInfo.Type............................35687
    a_oInfo.TypeSize........................24
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................8
    a_oInfo.Rows............................2
    a_oInfo.Cols............................3
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................24
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 4, 7, 0
    2, 5, 8, 0
    3, 6, 9, 0
    0, 0, 0, 0
    
    Read values:
    1, 4, 7, 0
    2, 5, 8, 0
    3, 6, 9, 0
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat3x3_cm
    a_oInfo.Index...........................112
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................2400
    a_oInfo.Size............................1
    a_oInfo.Type............................35675
    a_oInfo.TypeSize........................36
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................3
    a_oInfo.Cols............................3
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................48
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 5, 9, 0
    2, 6, 10, 0
    3, 7, 11, 0
    4, 8, 12, 0
    
    Read values:
    1, 5, 9, 0
    2, 6, 10, 0
    3, 7, 11, 0
    4, 8, 12, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat3x4_cm
    a_oInfo.Index...........................116
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................2448
    a_oInfo.Size............................1
    a_oInfo.Type............................35688
    a_oInfo.TypeSize........................48
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................4
    a_oInfo.Cols............................3
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................48
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 3, 5, 7
    2, 4, 6, 8
    0, 0, 0, 0
    0, 0, 0, 0
    
    Read values:
    1, 3, 5, 7
    2, 4, 6, 8
    0, 0, 0, 0
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat4x2_cm
    a_oInfo.Index...........................120
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................2496
    a_oInfo.Size............................1
    a_oInfo.Type............................35689
    a_oInfo.TypeSize........................32
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................8
    a_oInfo.Rows............................2
    a_oInfo.Cols............................4
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................32
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 4, 7, 10
    2, 5, 8, 11
    3, 6, 9, 12
    0, 0, 0, 0
    
    Read values:
    1, 4, 7, 10
    2, 5, 8, 11
    3, 6, 9, 12
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat4x3_cm
    a_oInfo.Index...........................124
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................2528
    a_oInfo.Size............................1
    a_oInfo.Type............................35690
    a_oInfo.TypeSize........................48
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................3
    a_oInfo.Cols............................4
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................64
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 5, 9, 13
    2, 6, 10, 14
    3, 7, 11, 15
    4, 8, 12, 16
    
    Read values:
    1, 5, 9, 13
    2, 6, 10, 14
    3, 7, 11, 15
    4, 8, 12, 16
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat4x4_cm
    a_oInfo.Index...........................128
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................2592
    a_oInfo.Size............................1
    a_oInfo.Type............................35676
    a_oInfo.TypeSize........................64
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................4
    a_oInfo.Cols............................4
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................64
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 3, 0, 0
    2, 4, 0, 0
    0, 0, 0, 0
    0, 0, 0, 0
    
    Read values:
    1, 3, 0, 0
    2, 4, 0, 0
    0, 0, 0, 0
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat2x2_rm
    a_oInfo.Index...........................97
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................2656
    a_oInfo.Size............................1
    a_oInfo.Type............................35674
    a_oInfo.TypeSize........................16
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................8
    a_oInfo.Rows............................2
    a_oInfo.Cols............................2
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................16
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 4, 0, 0
    2, 5, 0, 0
    3, 6, 0, 0
    0, 0, 0, 0
    
    Read values:
    1, 4, 0, 0
    2, 5, 0, 0
    3, 6, 0, 0
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat2x3_rm
    a_oInfo.Index...........................101
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................2672
    a_oInfo.Size............................1
    a_oInfo.Type............................35685
    a_oInfo.TypeSize........................24
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................8
    a_oInfo.Rows............................3
    a_oInfo.Cols............................2
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................24
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 5, 0, 0
    2, 6, 0, 0
    3, 7, 0, 0
    4, 8, 0, 0
    
    Read values:
    1, 5, 0, 0
    2, 6, 0, 0
    3, 7, 0, 0
    4, 8, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat2x4_rm
    a_oInfo.Index...........................105
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................2696
    a_oInfo.Size............................1
    a_oInfo.Type............................35686
    a_oInfo.TypeSize........................32
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................8
    a_oInfo.Rows............................4
    a_oInfo.Cols............................2
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................32
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 3, 5, 0
    2, 4, 6, 0
    0, 0, 0, 0
    0, 0, 0, 0
    
    Read values:
    1, 3, 5, 0
    2, 4, 6, 0
    0, 0, 0, 0
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat3x2_rm
    a_oInfo.Index...........................109
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................2736
    a_oInfo.Size............................1
    a_oInfo.Type............................35687
    a_oInfo.TypeSize........................24
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................2
    a_oInfo.Cols............................3
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................32
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 4, 7, 0
    2, 5, 8, 0
    3, 6, 9, 0
    0, 0, 0, 0
    
    Read values:
    1, 4, 7, 0
    2, 5, 8, 0
    3, 6, 9, 0
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat3x3_rm
    a_oInfo.Index...........................113
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................2768
    a_oInfo.Size............................1
    a_oInfo.Type............................35675
    a_oInfo.TypeSize........................36
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................3
    a_oInfo.Cols............................3
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................48
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 5, 9, 0
    2, 6, 10, 0
    3, 7, 11, 0
    4, 8, 12, 0
    
    Read values:
    1, 5, 9, 0
    2, 6, 10, 0
    3, 7, 11, 0
    4, 8, 12, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat3x4_rm
    a_oInfo.Index...........................117
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................2816
    a_oInfo.Size............................1
    a_oInfo.Type............................35688
    a_oInfo.TypeSize........................48
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................4
    a_oInfo.Cols............................3
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................64
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 3, 5, 7
    2, 4, 6, 8
    0, 0, 0, 0
    0, 0, 0, 0
    
    Read values:
    1, 3, 5, 7
    2, 4, 6, 8
    0, 0, 0, 0
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat4x2_rm
    a_oInfo.Index...........................121
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................2880
    a_oInfo.Size............................1
    a_oInfo.Type............................35689
    a_oInfo.TypeSize........................32
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................2
    a_oInfo.Cols............................4
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................32
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 4, 7, 10
    2, 5, 8, 11
    3, 6, 9, 12
    0, 0, 0, 0
    
    Read values:
    1, 4, 7, 10
    2, 5, 8, 11
    3, 6, 9, 12
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat4x3_rm
    a_oInfo.Index...........................125
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................2912
    a_oInfo.Size............................1
    a_oInfo.Type............................35690
    a_oInfo.TypeSize........................48
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................3
    a_oInfo.Cols............................4
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................48
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 5, 9, 13
    2, 6, 10, 14
    3, 7, 11, 15
    4, 8, 12, 16
    
    Read values:
    1, 5, 9, 13
    2, 6, 10, 14
    3, 7, 11, 15
    4, 8, 12, 16
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat4x4_rm
    a_oInfo.Index...........................129
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................2960
    a_oInfo.Size............................1
    a_oInfo.Type............................35676
    a_oInfo.TypeSize........................64
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................4
    a_oInfo.Cols............................4
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................64
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Read values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat2x2_array_cm[0]
    a_oInfo.Index...........................94
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................3024
    a_oInfo.Size............................4
    a_oInfo.Type............................35674
    a_oInfo.TypeSize........................16
    a_oInfo.ArrayStride.....................16
    a_oInfo.MatrixStride....................8
    a_oInfo.Rows............................2
    a_oInfo.Cols............................2
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................64
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Read values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat2x3_array_cm[0]
    a_oInfo.Index...........................98
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................3088
    a_oInfo.Size............................4
    a_oInfo.Type............................35685
    a_oInfo.TypeSize........................24
    a_oInfo.ArrayStride.....................32
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................3
    a_oInfo.Cols............................2
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................128
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Read values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat2x4_array_cm[0]
    a_oInfo.Index...........................102
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................3216
    a_oInfo.Size............................4
    a_oInfo.Type............................35686
    a_oInfo.TypeSize........................32
    a_oInfo.ArrayStride.....................32
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................4
    a_oInfo.Cols............................2
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................128
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0
    
    Read values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat3x2_array_cm[0]
    a_oInfo.Index...........................106
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................3344
    a_oInfo.Size............................4
    a_oInfo.Type............................35687
    a_oInfo.TypeSize........................24
    a_oInfo.ArrayStride.....................24
    a_oInfo.MatrixStride....................8
    a_oInfo.Rows............................2
    a_oInfo.Cols............................3
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................96
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0
    
    Read values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat3x3_array_cm[0]
    a_oInfo.Index...........................110
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................3440
    a_oInfo.Size............................4
    a_oInfo.Type............................35675
    a_oInfo.TypeSize........................36
    a_oInfo.ArrayStride.....................48
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................3
    a_oInfo.Cols............................3
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................192
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0,
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0,
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0
    
    Read values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0,
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0,
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat3x4_array_cm[0]
    a_oInfo.Index...........................114
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................3632
    a_oInfo.Size............................4
    a_oInfo.Type............................35688
    a_oInfo.TypeSize........................48
    a_oInfo.ArrayStride.....................48
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................4
    a_oInfo.Cols............................3
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................192
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0
    
    Read values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat4x2_array_cm[0]
    a_oInfo.Index...........................118
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................3824
    a_oInfo.Size............................4
    a_oInfo.Type............................35689
    a_oInfo.TypeSize........................32
    a_oInfo.ArrayStride.....................32
    a_oInfo.MatrixStride....................8
    a_oInfo.Rows............................2
    a_oInfo.Cols............................4
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................128
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0
    
    Read values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat4x3_array_cm[0]
    a_oInfo.Index...........................122
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................3952
    a_oInfo.Size............................4
    a_oInfo.Type............................35690
    a_oInfo.TypeSize........................48
    a_oInfo.ArrayStride.....................64
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................3
    a_oInfo.Cols............................4
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................256
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16,
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16,
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16
    
    Read values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16,
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16,
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat4x4_array_cm[0]
    a_oInfo.Index...........................126
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................4208
    a_oInfo.Size............................4
    a_oInfo.Type............................35676
    a_oInfo.TypeSize........................64
    a_oInfo.ArrayStride.....................64
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................4
    a_oInfo.Cols............................4
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................256
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Read values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat2x2_array_rm[0]
    a_oInfo.Index...........................95
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................4464
    a_oInfo.Size............................4
    a_oInfo.Type............................35674
    a_oInfo.TypeSize........................16
    a_oInfo.ArrayStride.....................16
    a_oInfo.MatrixStride....................8
    a_oInfo.Rows............................2
    a_oInfo.Cols............................2
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................64
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Read values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat2x3_array_rm[0]
    a_oInfo.Index...........................99
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................4528
    a_oInfo.Size............................4
    a_oInfo.Type............................35685
    a_oInfo.TypeSize........................24
    a_oInfo.ArrayStride.....................24
    a_oInfo.MatrixStride....................8
    a_oInfo.Rows............................3
    a_oInfo.Cols............................2
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................96
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Read values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat2x4_array_rm[0]
    a_oInfo.Index...........................103
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................4624
    a_oInfo.Size............................4
    a_oInfo.Type............................35686
    a_oInfo.TypeSize........................32
    a_oInfo.ArrayStride.....................32
    a_oInfo.MatrixStride....................8
    a_oInfo.Rows............................4
    a_oInfo.Cols............................2
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................128
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0
    
    Read values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat3x2_array_rm[0]
    a_oInfo.Index...........................107
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................4752
    a_oInfo.Size............................4
    a_oInfo.Type............................35687
    a_oInfo.TypeSize........................24
    a_oInfo.ArrayStride.....................32
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................2
    a_oInfo.Cols............................3
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................128
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0
    
    Read values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat3x3_array_rm[0]
    a_oInfo.Index...........................111
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................4880
    a_oInfo.Size............................4
    a_oInfo.Type............................35675
    a_oInfo.TypeSize........................36
    a_oInfo.ArrayStride.....................48
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................3
    a_oInfo.Cols............................3
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................192
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0,
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0,
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0
    
    Read values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0,
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0,
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat3x4_array_rm[0]
    a_oInfo.Index...........................115
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................5072
    a_oInfo.Size............................4
    a_oInfo.Type............................35688
    a_oInfo.TypeSize........................48
    a_oInfo.ArrayStride.....................64
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................4
    a_oInfo.Cols............................3
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................256
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0
    
    Read values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat4x2_array_rm[0]
    a_oInfo.Index...........................119
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................5328
    a_oInfo.Size............................4
    a_oInfo.Type............................35689
    a_oInfo.TypeSize........................32
    a_oInfo.ArrayStride.....................32
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................2
    a_oInfo.Cols............................4
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................128
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0
    
    Read values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat4x3_array_rm[0]
    a_oInfo.Index...........................123
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................5456
    a_oInfo.Size............................4
    a_oInfo.Type............................35690
    a_oInfo.TypeSize........................48
    a_oInfo.ArrayStride.....................48
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................3
    a_oInfo.Cols............................4
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................192
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16,
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16,
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16
    
    Read values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16,
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16,
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_mat4x4_array_rm[0]
    a_oInfo.Index...........................127
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................5648
    a_oInfo.Size............................4
    a_oInfo.Type............................35676
    a_oInfo.TypeSize........................64
    a_oInfo.ArrayStride.....................64
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................4
    a_oInfo.Cols............................4
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................256
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    a_dWrite is: 3.00000000000
    a_dRead is:  3.00000000000
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_float64
    a_oInfo.Index...........................60
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................5904
    a_oInfo.Size............................1
    a_oInfo.Type............................5130
    a_oInfo.TypeSize........................8
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................8
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    0,
    1,
    2,
    3
    
    Read values:
    0,
    1,
    2,
    3
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_float64_array[0]
    a_oInfo.Index...........................61
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................5912
    a_oInfo.Size............................4
    a_oInfo.Type............................5130
    a_oInfo.TypeSize........................8
    a_oInfo.ArrayStride.....................8
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................32
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1.00000000000, 2.00000000000, 0.000000000000, 0.000000000000
    
    Read values:
    1.00000000000, 2.00000000000, 0.000000000000, 0.000000000000
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dvec2
    a_oInfo.Index...........................44
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................5952
    a_oInfo.Size............................1
    a_oInfo.Type............................36860
    a_oInfo.TypeSize........................16
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................16
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1.00000000000, 2.00000000000, 3.00000000000, 0.000000000000
    
    Read values:
    1.00000000000, 2.00000000000, 3.00000000000, 0.000000000000
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dvec3
    a_oInfo.Index...........................46
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................5984
    a_oInfo.Size............................1
    a_oInfo.Type............................36861
    a_oInfo.TypeSize........................24
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................24
    
    //////////////////////////////////////////////////
    ApplicationRunTests
    //////////////////////////////////////////////////
    
    Write values:
    1.00000000000, 2.00000000000, 3.00000000000, 4.00000000000
    
    Read values:
    1.00000000000, 2.00000000000, 3.00000000000, 4.00000000000
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dvec4
    a_oInfo.Index...........................48
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................6016
    a_oInfo.Size............................1
    a_oInfo.Type............................36862
    a_oInfo.TypeSize........................32
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................32
    
    //////////////////////////////////////////////////
    test_dvec2_array[0]
    //////////////////////////////////////////////////
    
    Write values:
    0.5,
    1.5,
    0,
    0,
    4.5,
    5.5,
    0,
    0,
    8.5,
    9.5,
    0,
    0,
    12.5,
    13.5,
    0,
    0
    
    Read values:
    0.5,
    1.5,
    0,
    0,
    4.5,
    5.5,
    0,
    0,
    8.5,
    9.5,
    0,
    0,
    12.5,
    13.5,
    0,
    0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dvec2_array[0]
    a_oInfo.Index...........................45
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................6048
    a_oInfo.Size............................4
    a_oInfo.Type............................36860
    a_oInfo.TypeSize........................16
    a_oInfo.ArrayStride.....................16
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................64
    
    //////////////////////////////////////////////////
    test_dvec3_array[0]
    //////////////////////////////////////////////////
    
    Write values:
    0.5,
    1.5,
    2.5,
    0,
    4.5,
    5.5,
    6.5,
    0,
    8.5,
    9.5,
    10.5,
    0,
    12.5,
    13.5,
    14.5,
    0
    
    Read values:
    0.5,
    1.5,
    2.5,
    0,
    4.5,
    5.5,
    6.5,
    0,
    8.5,
    9.5,
    10.5,
    0,
    12.5,
    13.5,
    14.5,
    0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dvec3_array[0]
    a_oInfo.Index...........................47
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................6112
    a_oInfo.Size............................4
    a_oInfo.Type............................36861
    a_oInfo.TypeSize........................24
    a_oInfo.ArrayStride.....................32
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................128
    
    //////////////////////////////////////////////////
    test_dvec4_array[0]
    //////////////////////////////////////////////////
    
    Write values:
    0.5,
    1.5,
    2.5,
    3.5,
    4.5,
    5.5,
    6.5,
    7.5,
    8.5,
    9.5,
    10.5,
    11.5,
    12.5,
    13.5,
    14.5,
    15.5
    
    Read values:
    0.5,
    1.5,
    2.5,
    3.5,
    4.5,
    5.5,
    6.5,
    7.5,
    8.5,
    9.5,
    10.5,
    11.5,
    12.5,
    13.5,
    14.5,
    15.5
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dvec4_array[0]
    a_oInfo.Index...........................49
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................6240
    a_oInfo.Size............................4
    a_oInfo.Type............................36862
    a_oInfo.TypeSize........................32
    a_oInfo.ArrayStride.....................32
    a_oInfo.MatrixStride....................0
    a_oInfo.Rows............................0
    a_oInfo.Cols............................0
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................128
    
    //////////////////////////////////////////////////
    test_dmat2x2_cm
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Read values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat2x2_cm
    a_oInfo.Index...........................10
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................6368
    a_oInfo.Size............................1
    a_oInfo.Type............................36678
    a_oInfo.TypeSize........................32
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................2
    a_oInfo.Cols............................2
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................32
    
    //////////////////////////////////////////////////
    test_dmat2x3_cm
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Read values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat2x3_cm
    a_oInfo.Index...........................14
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................6400
    a_oInfo.Size............................1
    a_oInfo.Type............................36681
    a_oInfo.TypeSize........................48
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................32
    a_oInfo.Rows............................3
    a_oInfo.Cols............................2
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................64
    
    //////////////////////////////////////////////////
    test_dmat2x4_cm
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Read values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat2x4_cm
    a_oInfo.Index...........................18
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................6464
    a_oInfo.Size............................1
    a_oInfo.Type............................36682
    a_oInfo.TypeSize........................64
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................32
    a_oInfo.Rows............................4
    a_oInfo.Cols............................2
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................64
    
    //////////////////////////////////////////////////
    test_dmat3x2_cm
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0
    
    Read values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat3x2_cm
    a_oInfo.Index...........................22
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................6528
    a_oInfo.Size............................1
    a_oInfo.Type............................36683
    a_oInfo.TypeSize........................48
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................2
    a_oInfo.Cols............................3
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................48
    
    //////////////////////////////////////////////////
    test_dmat3x3_cm
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0
    
    Read values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat3x3_cm
    a_oInfo.Index...........................26
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................6592
    a_oInfo.Size............................1
    a_oInfo.Type............................36679
    a_oInfo.TypeSize........................72
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................32
    a_oInfo.Rows............................3
    a_oInfo.Cols............................3
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................96
    
    //////////////////////////////////////////////////
    test_dmat3x4_cm
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0
    
    Read values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat3x4_cm
    a_oInfo.Index...........................30
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................6688
    a_oInfo.Size............................1
    a_oInfo.Type............................36684
    a_oInfo.TypeSize........................96
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................32
    a_oInfo.Rows............................4
    a_oInfo.Cols............................3
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................96
    
    //////////////////////////////////////////////////
    test_dmat4x2_cm
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0
    
    Read values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat4x2_cm
    a_oInfo.Index...........................34
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................6784
    a_oInfo.Size............................1
    a_oInfo.Type............................36685
    a_oInfo.TypeSize........................64
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................2
    a_oInfo.Cols............................4
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................64
    
    //////////////////////////////////////////////////
    test_dmat4x3_cm
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0
    
    Read values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat4x3_cm
    a_oInfo.Index...........................38
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................6848
    a_oInfo.Size............................1
    a_oInfo.Type............................36686
    a_oInfo.TypeSize........................96
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................32
    a_oInfo.Rows............................3
    a_oInfo.Cols............................4
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................128
    
    //////////////////////////////////////////////////
    test_dmat4x4_cm
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16
    
    Read values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat4x4_cm
    a_oInfo.Index...........................42
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................6976
    a_oInfo.Size............................1
    a_oInfo.Type............................36680
    a_oInfo.TypeSize........................128
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................32
    a_oInfo.Rows............................4
    a_oInfo.Cols............................4
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................128
    
    //////////////////////////////////////////////////
    test_dmat2x2_rm
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Read values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat2x2_rm
    a_oInfo.Index...........................11
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................7104
    a_oInfo.Size............................1
    a_oInfo.Type............................36678
    a_oInfo.TypeSize........................32
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................2
    a_oInfo.Cols............................2
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................32
    
    //////////////////////////////////////////////////
    test_dmat2x3_rm
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Read values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat2x3_rm
    a_oInfo.Index...........................15
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................7136
    a_oInfo.Size............................1
    a_oInfo.Type............................36681
    a_oInfo.TypeSize........................48
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................3
    a_oInfo.Cols............................2
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................48
    
    //////////////////////////////////////////////////
    test_dmat2x4_rm
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Read values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat2x4_rm
    a_oInfo.Index...........................19
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................7184
    a_oInfo.Size............................1
    a_oInfo.Type............................36682
    a_oInfo.TypeSize........................64
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................4
    a_oInfo.Cols............................2
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................64
    
    //////////////////////////////////////////////////
    test_dmat3x2_rm
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0
    
    Read values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat3x2_rm
    a_oInfo.Index...........................23
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................7264
    a_oInfo.Size............................1
    a_oInfo.Type............................36683
    a_oInfo.TypeSize........................48
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................32
    a_oInfo.Rows............................2
    a_oInfo.Cols............................3
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................64
    
    //////////////////////////////////////////////////
    test_dmat3x3_rm
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0
    
    Read values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat3x3_rm
    a_oInfo.Index...........................27
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................7328
    a_oInfo.Size............................1
    a_oInfo.Type............................36679
    a_oInfo.TypeSize........................72
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................32
    a_oInfo.Rows............................3
    a_oInfo.Cols............................3
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................96
    
    //////////////////////////////////////////////////
    test_dmat3x4_rm
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0
    
    Read values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat3x4_rm
    a_oInfo.Index...........................31
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................7424
    a_oInfo.Size............................1
    a_oInfo.Type............................36684
    a_oInfo.TypeSize........................96
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................32
    a_oInfo.Rows............................4
    a_oInfo.Cols............................3
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................128
    
    //////////////////////////////////////////////////
    test_dmat4x2_rm
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0
    
    Read values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat4x2_rm
    a_oInfo.Index...........................35
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................7552
    a_oInfo.Size............................1
    a_oInfo.Type............................36685
    a_oInfo.TypeSize........................64
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................32
    a_oInfo.Rows............................2
    a_oInfo.Cols............................4
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................64
    
    //////////////////////////////////////////////////
    test_dmat4x3_rm
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0
    
    Read values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat4x3_rm
    a_oInfo.Index...........................39
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................7616
    a_oInfo.Size............................1
    a_oInfo.Type............................36686
    a_oInfo.TypeSize........................96
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................32
    a_oInfo.Rows............................3
    a_oInfo.Cols............................4
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................96
    
    //////////////////////////////////////////////////
    test_dmat4x4_rm
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16
    
    Read values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat4x4_rm
    a_oInfo.Index...........................43
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................7712
    a_oInfo.Size............................1
    a_oInfo.Type............................36680
    a_oInfo.TypeSize........................128
    a_oInfo.ArrayStride.....................0
    a_oInfo.MatrixStride....................32
    a_oInfo.Rows............................4
    a_oInfo.Cols............................4
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................128
    
    //////////////////////////////////////////////////
    test_dmat2x2_array_cm[0]
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Read values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat2x2_array_cm[0]
    a_oInfo.Index...........................8
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................7840
    a_oInfo.Size............................4
    a_oInfo.Type............................36678
    a_oInfo.TypeSize........................32
    a_oInfo.ArrayStride.....................32
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................2
    a_oInfo.Cols............................2
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................128
    
    //////////////////////////////////////////////////
    test_dmat2x3_array_cm[0]
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Read values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat2x3_array_cm[0]
    a_oInfo.Index...........................12
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................7968
    a_oInfo.Size............................4
    a_oInfo.Type............................36681
    a_oInfo.TypeSize........................48
    a_oInfo.ArrayStride.....................64
    a_oInfo.MatrixStride....................32
    a_oInfo.Rows............................3
    a_oInfo.Cols............................2
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................256
    
    //////////////////////////////////////////////////
    test_dmat2x4_array_cm[0]
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Read values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat2x4_array_cm[0]
    a_oInfo.Index...........................16
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................8224
    a_oInfo.Size............................4
    a_oInfo.Type............................36682
    a_oInfo.TypeSize........................64
    a_oInfo.ArrayStride.....................64
    a_oInfo.MatrixStride....................32
    a_oInfo.Rows............................4
    a_oInfo.Cols............................2
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................256
    
    //////////////////////////////////////////////////
    test_dmat3x2_array_cm[0]
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0
    
    Read values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat3x2_array_cm[0]
    a_oInfo.Index...........................20
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................8480
    a_oInfo.Size............................4
    a_oInfo.Type............................36683
    a_oInfo.TypeSize........................48
    a_oInfo.ArrayStride.....................48
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................2
    a_oInfo.Cols............................3
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................192
    
    //////////////////////////////////////////////////
    test_dmat3x3_array_cm[0]
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0
    
    Read values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat3x3_array_cm[0]
    a_oInfo.Index...........................24
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................8672
    a_oInfo.Size............................4
    a_oInfo.Type............................36679
    a_oInfo.TypeSize........................72
    a_oInfo.ArrayStride.....................96
    a_oInfo.MatrixStride....................32
    a_oInfo.Rows............................3
    a_oInfo.Cols............................3
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................384
    
    //////////////////////////////////////////////////
    test_dmat3x4_array_cm[0]
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0,
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0,
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0
    
    Read values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0,
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0,
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat3x4_array_cm[0]
    a_oInfo.Index...........................28
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................9056
    a_oInfo.Size............................4
    a_oInfo.Type............................36684
    a_oInfo.TypeSize........................96
    a_oInfo.ArrayStride.....................96
    a_oInfo.MatrixStride....................32
    a_oInfo.Rows............................4
    a_oInfo.Cols............................3
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................384
    
    //////////////////////////////////////////////////
    test_dmat4x2_array_cm[0]
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0
    
    Read values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat4x2_array_cm[0]
    a_oInfo.Index...........................32
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................9440
    a_oInfo.Size............................4
    a_oInfo.Type............................36685
    a_oInfo.TypeSize........................64
    a_oInfo.ArrayStride.....................64
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................2
    a_oInfo.Cols............................4
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................256
    
    //////////////////////////////////////////////////
    test_dmat4x3_array_cm[0]
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0
    
    Read values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat4x3_array_cm[0]
    a_oInfo.Index...........................36
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................9696
    a_oInfo.Size............................4
    a_oInfo.Type............................36686
    a_oInfo.TypeSize........................96
    a_oInfo.ArrayStride.....................128
    a_oInfo.MatrixStride....................32
    a_oInfo.Rows............................3
    a_oInfo.Cols............................4
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................512
    
    //////////////////////////////////////////////////
    test_dmat4x4_array_cm[0]
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16,
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16,
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16
    
    Read values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16,
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16,
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat4x4_array_cm[0]
    a_oInfo.Index...........................40
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................10208
    a_oInfo.Size............................4
    a_oInfo.Type............................36680
    a_oInfo.TypeSize........................128
    a_oInfo.ArrayStride.....................128
    a_oInfo.MatrixStride....................32
    a_oInfo.Rows............................4
    a_oInfo.Cols............................4
    a_oInfo.RowMajor........................0
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................512
    
    //////////////////////////////////////////////////
    test_dmat2x2_array_rm[0]
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Read values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat2x2_array_rm[0]
    a_oInfo.Index...........................9
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................10720
    a_oInfo.Size............................4
    a_oInfo.Type............................36678
    a_oInfo.TypeSize........................32
    a_oInfo.ArrayStride.....................32
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................2
    a_oInfo.Cols............................2
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................128
    
    //////////////////////////////////////////////////
    test_dmat2x3_array_rm[0]
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Read values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat2x3_array_rm[0]
    a_oInfo.Index...........................13
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................10848
    a_oInfo.Size............................4
    a_oInfo.Type............................36681
    a_oInfo.TypeSize........................48
    a_oInfo.ArrayStride.....................48
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................3
    a_oInfo.Cols............................2
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................192
    
    //////////////////////////////////////////////////
    test_dmat2x4_array_rm[0]
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Read values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0,
    1, 2, 3, 4,
    5, 6, 7, 8,
    0, 0, 0, 0,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat2x4_array_rm[0]
    a_oInfo.Index...........................17
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................11040
    a_oInfo.Size............................4
    a_oInfo.Type............................36682
    a_oInfo.TypeSize........................64
    a_oInfo.ArrayStride.....................64
    a_oInfo.MatrixStride....................16
    a_oInfo.Rows............................4
    a_oInfo.Cols............................2
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................256
    
    //////////////////////////////////////////////////
    test_dmat3x2_array_rm[0]
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0
    
    Read values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat3x2_array_rm[0]
    a_oInfo.Index...........................21
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................11296
    a_oInfo.Size............................4
    a_oInfo.Type............................36683
    a_oInfo.TypeSize........................48
    a_oInfo.ArrayStride.....................64
    a_oInfo.MatrixStride....................32
    a_oInfo.Rows............................2
    a_oInfo.Cols............................3
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................256
    
    //////////////////////////////////////////////////
    test_dmat3x3_array_rm[0]
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0
    
    Read values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat3x3_array_rm[0]
    a_oInfo.Index...........................25
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................11552
    a_oInfo.Size............................4
    a_oInfo.Type............................36679
    a_oInfo.TypeSize........................72
    a_oInfo.ArrayStride.....................96
    a_oInfo.MatrixStride....................32
    a_oInfo.Rows............................3
    a_oInfo.Cols............................3
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................384
    
    //////////////////////////////////////////////////
    test_dmat3x4_array_rm[0]
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0,
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0,
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0
    
    Read values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0,
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0,
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    0, 0, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat3x4_array_rm[0]
    a_oInfo.Index...........................29
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................11936
    a_oInfo.Size............................4
    a_oInfo.Type............................36684
    a_oInfo.TypeSize........................96
    a_oInfo.ArrayStride.....................128
    a_oInfo.MatrixStride....................32
    a_oInfo.Rows............................4
    a_oInfo.Cols............................3
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................512
    
    //////////////////////////////////////////////////
    test_dmat4x2_array_rm[0]
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0
    
    Read values:
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0,
    1, 2, 0, 0,
    3, 4, 0, 0,
    5, 6, 0, 0,
    7, 8, 0, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat4x2_array_rm[0]
    a_oInfo.Index...........................33
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................12448
    a_oInfo.Size............................4
    a_oInfo.Type............................36685
    a_oInfo.TypeSize........................64
    a_oInfo.ArrayStride.....................64
    a_oInfo.MatrixStride....................32
    a_oInfo.Rows............................2
    a_oInfo.Cols............................4
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................256
    
    //////////////////////////////////////////////////
    test_dmat4x3_array_rm[0]
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0
    
    Read values:
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0,
    1, 2, 3, 0,
    4, 5, 6, 0,
    7, 8, 9, 0,
    10, 11, 12, 0
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat4x3_array_rm[0]
    a_oInfo.Index...........................37
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................12704
    a_oInfo.Size............................4
    a_oInfo.Type............................36686
    a_oInfo.TypeSize........................96
    a_oInfo.ArrayStride.....................96
    a_oInfo.MatrixStride....................32
    a_oInfo.Rows............................3
    a_oInfo.Cols............................4
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................384
    
    //////////////////////////////////////////////////
    test_dmat4x4_array_rm[0]
    //////////////////////////////////////////////////
    
    Write values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16,
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16,
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16
    
    Read values:
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16,
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16,
    1, 2, 3, 4,
    5, 6, 7, 8,
    9, 10, 11, 12,
    13, 14, 15, 16
    
    Result of memcmp(): 0 [ 0 = passed, any non-zero = fail ]
    
    a_oInfo.Name............................test_dmat4x4_array_rm[0]
    a_oInfo.Index...........................41
    a_oInfo.BufferIndex.....................0
    a_oInfo.BufferBinding...................-1
    a_oInfo.BufferType......................3
    a_oInfo.Location........................-1
    a_oInfo.Offset..........................13088
    a_oInfo.Size............................4
    a_oInfo.Type............................36680
    a_oInfo.TypeSize........................128
    a_oInfo.ArrayStride.....................128
    a_oInfo.MatrixStride....................32
    a_oInfo.Rows............................4
    a_oInfo.Cols............................4
    a_oInfo.RowMajor........................1
    a_oInfo.TopLevelArraySize...............0
    a_oInfo.TopLevelArrayStride.............0
    a_oInfo.IsMemberOfTopLevelArray.........0
    a_oInfo.IsMemberOfTopLevelUnsizedArray..0
    a_oInfo.GetTotalSize....................512
    
    Executed: ApplicationRunTests
    

    This is how you can verify that your hardware successfully reads and writes uniform buffers. You can search this log for the word "FAILED" to find any tests that did not pass.

    This exercise is complete. Return to tutorials.

Get The Test Code Path

  1. Select File » Get Application Script Path... from the main menu.

    The software displays a dialog that allows you to select a script.

    This is a picture of the desktop.
  2. Type app_service_test_uniform_buffer_util.ssl and left click the script when it appears.
  3. Click OK or hit ENTER when you are finished.

    The software copies the full path to the script to the Windows¯ clipboard.

Examine The Test Code 'Execute' Function

  1. Start a text editor of your choice and select the option to open a file from disk.
  2. Select CTRL + V to paste the fragment shader file path (into the place in the dialog where you specify the file to open) and open the file.
  3. Use the text editor search feature to find a function named Execute. There are a few clearly delineated sections.
    1. Set up a shader program.
    2. Set up a shader buffer for testing.
    3. Set up a memory barrier.
    4. A section for testing a single function at a time.
    5. A section that performs all tests.
    ///////////////////////////////////////////////////////////////////////////////
    // function
    ///////////////////////////////////////////////////////////////////////////////
    
    function bool Execute()
    {
       auto GpuTestDevice a_oTest;
    
       Render3D a_oAccel = Application.GetAccelerate3D();
       a_oTest.m_pAccel = a_oAccel;
    
       auto Program a_oProgram;
       a_oTest.m_pProgram = a_oProgram;
    
       // Create and bind the uniform buffer.
       a_oTest.m_sGlslTestFile = "test_uniform_buffer_read_write.glsl";
       a_oTest.m_sBufferName = "test_buffer";
    
       a_oTest.m_slInfo.Add( LibAppServiceTest.Bar() );
       a_oTest.m_slInfo.Add( "// Starting Uniform Buffer Tests" );
       a_oTest.m_slInfo.Add( LibAppServiceTest.Bar() );
       a_oTest.m_slInfo.AddBlank();
    
       bool a_bInit = LibAppServiceTest.Initialize( a_oTest );
       if( !( a_bInit ) )
       {
          return false;
       }
    
       Console.Clear();
    
       // Create and bind the uniform buffer.
       auto UniformBufferNode a_oUniformBuffer;
    
       auto UniformBufferInfo a_oUniformBufferInfo;
       a_oUniformBufferInfo.m_pAccel = a_oTest.m_pAccel;
       a_oUniformBufferInfo.m_pRenderInfo = a_oTest.m_pRenderInfo;
       a_oUniformBufferInfo.m_pBuffer = a_oUniformBuffer;
       a_oUniformBufferInfo.m_pProgram = a_oTest.m_pProgram;
       a_oUniformBufferInfo.m_sBufferName = a_oTest.m_sBufferName;
       a_oUniformBufferInfo.m_eBufferUsage = Enum.RBU_DynamicDraw();
    
       bool a_bCreatedBuffer = LibRender3D.CreateUniformBuffer(
          a_oUniformBufferInfo, a_oTest.m_slInfo );
    
       if( !( a_bCreatedBuffer ) )
       {
          a_oTest.m_slInfo.AddBlank();
          a_oTest.m_slInfo.Add( LibAssert.PrintCallStack() );
          LibAppServiceBuild.Out( a_oTest.m_slInfo );
          return false;
       }
    
       // Since we're writing to a shader buffer, we
       // need to use a memory barrier between
       // accesses to the buffer.
       auto MemoryBarrier m;
       m.GlShaderStorageBarrierBit = true;
    
       //////////////////////////////////////////////////
       // Execute single tests.
       //////////////////////////////////////////////////
    
       if( false )
       {
          // Column Major
          /*
          TestFloat32Matrix( a_oTest, m, 2, 2, false );
          TestFloat32Matrix( a_oTest, m, 2, 3, false );
          TestFloat32Matrix( a_oTest, m, 2, 4, false );
          TestFloat32Matrix( a_oTest, m, 3, 2, false );
          TestFloat32Matrix( a_oTest, m, 3, 3, false );
          TestFloat32Matrix( a_oTest, m, 3, 4, false );
          TestFloat32Matrix( a_oTest, m, 4, 2, false );
          TestFloat32Matrix( a_oTest, m, 4, 3, false );
          TestFloat32Matrix( a_oTest, m, 4, 4, false );
          */
    
          // Row Major
          /*
          TestFloat32Matrix( a_oTest, m, 2, 2, true );
          TestFloat32Matrix( a_oTest, m, 2, 3, true );
          TestFloat32Matrix( a_oTest, m, 2, 4, true );
          TestFloat32Matrix( a_oTest, m, 3, 2, true );
          TestFloat32Matrix( a_oTest, m, 3, 3, true );
          TestFloat32Matrix( a_oTest, m, 3, 4, true );
          TestFloat32Matrix( a_oTest, m, 4, 2, true );
          TestFloat32Matrix( a_oTest, m, 4, 3, true );
          TestFloat32Matrix( a_oTest, m, 4, 4, true );
          */
    
          LibAppServiceBuild.Out( a_oTest.m_slInfo );
    
          // Do cleanup.
          //Console.Alert( "DESTROYING PROGRAM AND BUFFER!" );
          a_oAccel.DeleteProgram( a_oProgram.GetHandle() );
          a_oAccel.DestroyUniformBuffer( a_oUniformBuffer.GetParams() );
          delete a_oTest.m_pRenderInfo;
    
          return false;
       }
    
       //////////////////////////////////////////////////
       // Execute all tests.
       //////////////////////////////////////////////////
    
       // This only works on hardware with
       // the 8-bit signed/unsigned, 16-bit signed/unsigned
       // 16-bit FP, and 64-bit signed/unsigned extension.
    
       // Check extensions.
       RenderDeviceCaps a_oCaps = a_oAccel.GetDeviceCapabilities();
    
       bool a_bNvGpuShader5       = a_oCaps.QueryExtension( "GL_NV_gpu_shader5" );
       bool a_bAmdInt64           = a_oCaps.QueryExtension( "GL_AMD_gpu_shader_int64" );
       bool a_bArbInt64           = a_oCaps.QueryExtension( "GL_ARB_gpu_shader_int64" );
    
       bool a_bHighPrecInt  = a_bNvGpuShader5 || a_bAmdInt64 || a_bArbInt64;
       bool a_bLowPrecInt   = a_bNvGpuShader5;
       bool a_bLowPrecFloat = a_bNvGpuShader5;
    
       // Begin tests.
       TestBool( a_oTest, m );
       TestBoolArray( a_oTest, m );
       TestBoolVector( a_oTest, m, 2 );
       TestBoolVector( a_oTest, m, 3 );
       TestBoolVector( a_oTest, m, 4 );
       TestBoolVectorArray( a_oTest, m, 2 );
       TestBoolVectorArray( a_oTest, m, 3 );
       TestBoolVectorArray( a_oTest, m, 4 );
    
       if( a_bLowPrecInt )
       {
          TestUint8( a_oTest, m );
          TestUint8Array( a_oTest, m );
          TestUint8Vector( a_oTest, m, 2 );
          TestUint8Vector( a_oTest, m, 3 );
          TestUint8Vector( a_oTest, m, 4 );
          TestUint8VectorArray( a_oTest, m, 2 );
          TestUint8VectorArray( a_oTest, m, 3 );
          TestUint8VectorArray( a_oTest, m, 4 );
    
          TestUint16( a_oTest, m );
          TestUint16Array( a_oTest, m );
          TestUint16Vector( a_oTest, m, 2 );
          TestUint16Vector( a_oTest, m, 3 );
          TestUint16Vector( a_oTest, m, 4 );
          TestUint16VectorArray( a_oTest, m, 2 );
          TestUint16VectorArray( a_oTest, m, 3 );
          TestUint16VectorArray( a_oTest, m, 4 );
       }
    
       TestUint32( a_oTest, m );
       TestUint32Array( a_oTest, m );
       TestUint32Vector( a_oTest, m, 2 );
       TestUint32Vector( a_oTest, m, 3 );
       TestUint32Vector( a_oTest, m, 4 );
       TestUint32VectorArray( a_oTest, m, 2 );
       TestUint32VectorArray( a_oTest, m, 3 );
       TestUint32VectorArray( a_oTest, m, 4 );
    
       if( a_bHighPrecInt )
       {
          TestUint64( a_oTest, m );
          TestUint64Array( a_oTest, m );
          TestUint64Vector( a_oTest, m, 2 );
          TestUint64Vector( a_oTest, m, 3 );
          TestUint64Vector( a_oTest, m, 4 );
          TestUint64VectorArray( a_oTest, m, 2 );
          TestUint64VectorArray( a_oTest, m, 3 );
          TestUint64VectorArray( a_oTest, m, 4 );
       }
    
       if( a_bLowPrecInt )
       {
          TestInt8( a_oTest, m );
          TestInt8Array( a_oTest, m );
          TestInt8Vector( a_oTest, m, 2 );
          TestInt8Vector( a_oTest, m, 3 );
          TestInt8Vector( a_oTest, m, 4 );
          TestInt8VectorArray( a_oTest, m, 2 );
          TestInt8VectorArray( a_oTest, m, 3 );
          TestInt8VectorArray( a_oTest, m, 4 );
    
          TestInt16( a_oTest, m );
          TestInt16Array( a_oTest, m );
          TestInt16Vector( a_oTest, m, 2 );
          TestInt16Vector( a_oTest, m, 3 );
          TestInt16Vector( a_oTest, m, 4 );
          TestInt16VectorArray( a_oTest, m, 2 );
          TestInt16VectorArray( a_oTest, m, 3 );
          TestInt16VectorArray( a_oTest, m, 4 );
       }
    
       TestInt32( a_oTest, m );
       TestInt32Array( a_oTest, m );
       TestInt32Vector( a_oTest, m, 2 );
       TestInt32Vector( a_oTest, m, 3 );
       TestInt32Vector( a_oTest, m, 4 );
       TestInt32VectorArray( a_oTest, m, 2 );
       TestInt32VectorArray( a_oTest, m, 3 );
       TestInt32VectorArray( a_oTest, m, 4 );
    
       if( a_bHighPrecInt )
       {
          TestInt64( a_oTest, m );
          TestInt64Array( a_oTest, m );
          TestInt64Vector( a_oTest, m, 2 );
          TestInt64Vector( a_oTest, m, 3 );
          TestInt64Vector( a_oTest, m, 4 );
          TestInt64VectorArray( a_oTest, m, 2 );
          TestInt64VectorArray( a_oTest, m, 3 );
          TestInt64VectorArray( a_oTest, m, 4 );
       }
    
       if( a_bLowPrecFloat )
       {
          TestFloat16( a_oTest, m );
          TestFloat16Array( a_oTest, m );
          TestFloat16Vector( a_oTest, m, 2 );
          TestFloat16Vector( a_oTest, m, 3 );
          TestFloat16Vector( a_oTest, m, 4 );
          TestFloat16VectorArray( a_oTest, m, 2 );
          TestFloat16VectorArray( a_oTest, m, 3 );
          TestFloat16VectorArray( a_oTest, m, 4 );
       }
    
       TestFloat32( a_oTest, m );
       TestFloat32Array( a_oTest, m );
       TestFloat32Vector( a_oTest, m, 2 );
       TestFloat32Vector( a_oTest, m, 3 );
       TestFloat32Vector( a_oTest, m, 4 );
       TestFloat32VectorArray( a_oTest, m, 2 );
       TestFloat32VectorArray( a_oTest, m, 3 );
       TestFloat32VectorArray( a_oTest, m, 4 );
    
       // Column Major
       TestFloat32Matrix( a_oTest, m, 2, 2, false );
       TestFloat32Matrix( a_oTest, m, 2, 3, false );
       TestFloat32Matrix( a_oTest, m, 2, 4, false );
       TestFloat32Matrix( a_oTest, m, 3, 2, false );
       TestFloat32Matrix( a_oTest, m, 3, 3, false );
       TestFloat32Matrix( a_oTest, m, 3, 4, false );
       TestFloat32Matrix( a_oTest, m, 4, 2, false );
       TestFloat32Matrix( a_oTest, m, 4, 3, false );
       TestFloat32Matrix( a_oTest, m, 4, 4, false );
    
       // Row Major
       TestFloat32Matrix( a_oTest, m, 2, 2, true );
       TestFloat32Matrix( a_oTest, m, 2, 3, true );
       TestFloat32Matrix( a_oTest, m, 2, 4, true );
       TestFloat32Matrix( a_oTest, m, 3, 2, true );
       TestFloat32Matrix( a_oTest, m, 3, 3, true );
       TestFloat32Matrix( a_oTest, m, 3, 4, true );
       TestFloat32Matrix( a_oTest, m, 4, 2, true );
       TestFloat32Matrix( a_oTest, m, 4, 3, true );
       TestFloat32Matrix( a_oTest, m, 4, 4, true );
    
       // Column Major
       TestFloat32MatrixArray( a_oTest, m, 2, 2, false );
       TestFloat32MatrixArray( a_oTest, m, 2, 3, false );
       TestFloat32MatrixArray( a_oTest, m, 2, 4, false );
       TestFloat32MatrixArray( a_oTest, m, 3, 2, false );
       TestFloat32MatrixArray( a_oTest, m, 3, 3, false );
       TestFloat32MatrixArray( a_oTest, m, 3, 4, false );
       TestFloat32MatrixArray( a_oTest, m, 4, 2, false );
       TestFloat32MatrixArray( a_oTest, m, 4, 3, false );
       TestFloat32MatrixArray( a_oTest, m, 4, 4, false );
    
       // Row Major
       TestFloat32MatrixArray( a_oTest, m, 2, 2, true );
       TestFloat32MatrixArray( a_oTest, m, 2, 3, true );
       TestFloat32MatrixArray( a_oTest, m, 2, 4, true );
       TestFloat32MatrixArray( a_oTest, m, 3, 2, true );
       TestFloat32MatrixArray( a_oTest, m, 3, 3, true );
       TestFloat32MatrixArray( a_oTest, m, 3, 4, true );
       TestFloat32MatrixArray( a_oTest, m, 4, 2, true );
       TestFloat32MatrixArray( a_oTest, m, 4, 3, true );
       TestFloat32MatrixArray( a_oTest, m, 4, 4, true );
    
       TestFloat64( a_oTest, m );
       TestFloat64Array( a_oTest, m );
       TestFloat64Vector( a_oTest, m, 2 );
       TestFloat64Vector( a_oTest, m, 3 );
       TestFloat64Vector( a_oTest, m, 4 );
       TestFloat64VectorArray( a_oTest, m, 2 );
       TestFloat64VectorArray( a_oTest, m, 3 );
       TestFloat64VectorArray( a_oTest, m, 4 );
    
       // Column Major
       TestFloat64Matrix( a_oTest, m, 2, 2, false );
       TestFloat64Matrix( a_oTest, m, 2, 3, false );
       TestFloat64Matrix( a_oTest, m, 2, 4, false );
       TestFloat64Matrix( a_oTest, m, 3, 2, false );
       TestFloat64Matrix( a_oTest, m, 3, 3, false );
       TestFloat64Matrix( a_oTest, m, 3, 4, false );
       TestFloat64Matrix( a_oTest, m, 4, 2, false );
       TestFloat64Matrix( a_oTest, m, 4, 3, false );
       TestFloat64Matrix( a_oTest, m, 4, 4, false );
    
       // Row Major
       TestFloat64Matrix( a_oTest, m, 2, 2, true );
       TestFloat64Matrix( a_oTest, m, 2, 3, true );
       TestFloat64Matrix( a_oTest, m, 2, 4, true );
       TestFloat64Matrix( a_oTest, m, 3, 2, true );
       TestFloat64Matrix( a_oTest, m, 3, 3, true );
       TestFloat64Matrix( a_oTest, m, 3, 4, true );
       TestFloat64Matrix( a_oTest, m, 4, 2, true );
       TestFloat64Matrix( a_oTest, m, 4, 3, true );
       TestFloat64Matrix( a_oTest, m, 4, 4, true );
    
       // Column Major
       TestFloat64MatrixArray( a_oTest, m, 2, 2, false );
       TestFloat64MatrixArray( a_oTest, m, 2, 3, false );
       TestFloat64MatrixArray( a_oTest, m, 2, 4, false );
       TestFloat64MatrixArray( a_oTest, m, 3, 2, false );
       TestFloat64MatrixArray( a_oTest, m, 3, 3, false );
       TestFloat64MatrixArray( a_oTest, m, 3, 4, false );
       TestFloat64MatrixArray( a_oTest, m, 4, 2, false );
       TestFloat64MatrixArray( a_oTest, m, 4, 3, false );
       TestFloat64MatrixArray( a_oTest, m, 4, 4, false );
    
       // Row Major
       TestFloat64MatrixArray( a_oTest, m, 2, 2, true );
       TestFloat64MatrixArray( a_oTest, m, 2, 3, true );
       TestFloat64MatrixArray( a_oTest, m, 2, 4, true );
       TestFloat64MatrixArray( a_oTest, m, 3, 2, true );
       TestFloat64MatrixArray( a_oTest, m, 3, 3, true );
       TestFloat64MatrixArray( a_oTest, m, 3, 4, true );
       TestFloat64MatrixArray( a_oTest, m, 4, 2, true );
       TestFloat64MatrixArray( a_oTest, m, 4, 3, true );
       TestFloat64MatrixArray( a_oTest, m, 4, 4, true );
    
       // Do cleanup.
       //Console.Alert( "DESTROYING PROGRAM AND BUFFER!" );
       a_oAccel.DeleteProgram( a_oProgram.GetHandle() );
       a_oAccel.DestroyUniformBuffer( a_oUniformBuffer.GetParams() );
    
       delete a_oTest.m_pRenderInfo;
    
       //////////////////////////////////////////////////
       // Finis~
       //////////////////////////////////////////////////
    
       LibAppServiceBuild.Out( a_oTest.m_slInfo );
    
       Console.Blank();
       Console.Out( "Executed: " + Script.Runtime.CurrentFunction.Name );
    
       return true;
    }
             

Examine The Test Code 'TestUint8VectorArray' Function

  1. Use the text editor search feature to find a function named TestUint8VectorArray. There are a few key sections.

    1. Create the variable name.
    2. Get reflection information for the buffer variable or return upon failure.
    3. Create the data we want to write and declare storage for the readback.
    4. Write data the device and execute the shader program.
    5. Read back the values that were written to the shader buffer variable during program execution.
    6. Print data.
    7. Print test results.
    8. Print shader buffer variable reflection information.

    ///////////////////////////////////////////////////////////////////////////////
    // function
    ///////////////////////////////////////////////////////////////////////////////
    
    function void TestUint8VectorArray( GpuTestDevice p_oTest, MemoryBarrier m, int p_nVectorDim )
    {
       string a_sName = "test_u8vec" + p_nVectorDim + "_array[0]";
    
       LibAppServiceTest.MakeHeader( p_oTest.m_slInfo,
          Script.Runtime.CurrentFunction.Name, "" );
    
       auto ProgramConstantInfo a_oInfo;
       bool a_bValid = GetConstantInfo( p_oTest, a_oInfo, a_sName );
       if( !( a_bValid ) )
       {
          return;
       }
    
       ////////////////////////////////////////
       // Create Data
       ////////////////////////////////////////
    
       auto Uint8ArrayAlgorithms a_auAlgorithms;
       auto Uint8VectorArrayAlgorithms a_avuAlgorithms;
    
       auto Uint8VectorArray a_avDataIn;
       auto Uint8Vector wa = new Uint8Vector( 0,  1,  2,  3 );
       auto Uint8Vector wb = new Uint8Vector( 4,  5,  6,  7 );
       auto Uint8Vector wc = new Uint8Vector( 8,  9,  10, 11 );
       auto Uint8Vector wd = new Uint8Vector( 12, 13, 14, 15 );
       a_avDataIn.Add( wa );
       a_avDataIn.Add( wb );
       a_avDataIn.Add( wc );
       a_avDataIn.Add( wd );
    
       auto Uint8VectorArray a_avDataOut;
       auto Uint8Vector ra = new Uint8Vector( 0, 0, 0, 0 );
       auto Uint8Vector rb = new Uint8Vector( 0, 0, 0, 0 );
       auto Uint8Vector rc = new Uint8Vector( 0, 0, 0, 0 );
       auto Uint8Vector rd = new Uint8Vector( 0, 0, 0, 0 );
       a_avDataOut.Add( ra );
       a_avDataOut.Add( rb );
       a_avDataOut.Add( rc );
       a_avDataOut.Add( rd );
    
       for( int v = 0; v < a_avDataIn.GetCount(); ++v )
       {
          Uint8Vector a_vVector = a_avDataIn.Get( v );
          for( int s = p_nVectorDim; s < Enum.GLSL_DataType_Vec4(); ++s )
          {
             a_vVector.SetComponent( s, 0 );
          }
       }
    
       auto Uint8ArrayView src_view = a_avDataIn.GetView();
       auto Uint8ArrayView dst_view = a_avDataOut.GetView();
    
       ////////////////////////////////////////
       // Write Data
       ////////////////////////////////////////
    
       bool a_bZeroMemory = true;
    
       int a_nWriteSize = a_avuAlgorithms.GetWriteSizeInBytes(
          a_oInfo, src_view.First, src_view.Last, p_nVectorDim );
    
       auto Uint8Array a_auWrite;
       a_auWrite.ConvertBytesToCount( a_nWriteSize );
       auto Uint8ArrayView write_view = a_auWrite.GetView();
    
       a_avuAlgorithms.ConvertToGpuMemoryLayout(
          a_oInfo, a_bZeroMemory, p_nVectorDim,
          src_view.First, src_view.Last, write_view.First );
    
       auto MemoryPointer a_oSrcPtr = a_auWrite.GetPointer();
       //LibUint8Array.Out( a_auWrite );
    
       p_oTest.m_pAccel.WriteUniformSubBuffer(
          a_oInfo.Offset, a_oSrcPtr.SizeInBytes(), a_oSrcPtr );
    
       ////////////////////////////////////////
       // Execute Program
       ////////////////////////////////////////
    
       p_oTest.m_pAccel.ExecuteProgram( true, 128, 128, 1, 32, 32, 1 );
       p_oTest.m_pAccel.InsertMemoryBarrier( m );
    
       ////////////////////////////////////////
       // Read Data
       ////////////////////////////////////////
    
       auto Uint8Array a_auRead;
       a_auRead.Count = a_auWrite.GetCount();
       auto Uint8ArrayView read_view = a_auRead.GetView();
    
       auto MemoryPointer a_oDstPtr = a_auRead.GetPointer();
    
       p_oTest.m_pAccel.ReadUniformSubBuffer(
          a_oInfo.Offset, a_oDstPtr.SizeInBytes(), a_oDstPtr );
       //LibUint8Array.Out( a_auRead );
    
       a_avuAlgorithms.ConvertToCpuMemoryLayout(
          a_oInfo, a_bZeroMemory, p_nVectorDim,
          read_view.First, read_view.Last, dst_view.First );
       //LibUint8VectorArray.Out( a_avDataOut );
    
       ////////////////////////////////////////
       // Test Data
       ////////////////////////////////////////
    
       p_oTest.m_slInfo.Add( "Write values:" );
       LibUint8VectorArray.ConvertToString(
          a_avDataIn, 0, src_view.First.GetCount(), p_oTest.m_slInfo );
    
       p_oTest.m_slInfo.AddBlank();
    
       p_oTest.m_slInfo.Add( "Read values:" );
       LibUint8VectorArray.ConvertToString(
          a_avDataOut, 0, dst_view.First.GetCount(), p_oTest.m_slInfo );
    
       LibAppServiceTest.DoMemcmp( p_oTest.m_slInfo,
          a_auAlgorithms.Memcmp( src_view.First, dst_view.First, a_avDataIn.SizeInBytes() ) );
    
       LibProgramConstantInfo.Print( a_oInfo, p_oTest.m_slInfo );
    }
             

    This exercise is complete. Return to tutorials.