# RUN: yaml2obj %s | obj2yaml | FileCheck %s
--- !dxcontainer
Header:
  Hash:            [ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
                     0x0, 0x0, 0x0, 0x0, 0x0, 0x0 ]
  Version:
    Major:           1
    Minor:           0
  FileSize:        4616
  PartCount:       8
  PartOffsets:     [ 64, 80, 140, 200, 580, 952, 2756, 2784 ]
Parts:
  - Name:            SFI0
    Size:            8
    Flags:
      Doubles:         false
      ComputeShadersPlusRawAndStructuredBuffers: false
      UAVsAtEveryStage: false
      Max64UAVs:       false
      MinimumPrecision: false
      DX11_1_DoubleExtensions: false
      DX11_1_ShaderExtensions: false
      LEVEL9ComparisonFiltering: false
      TiledResources:  false
      StencilRef:      false
      InnerCoverage:   false
      TypedUAVLoadAdditionalFormats: false
      ROVs:            false
      ViewportAndRTArrayIndexFromAnyShaderFeedingRasterizer: false
      WaveOps:         false
      Int64Ops:        false
      ViewID:          true
      Barycentrics:    false
      NativeLowPrecision: false
      ShadingRate:     false
      Raytracing_Tier_1_1: false
      SamplerFeedback: false
      AtomicInt64OnTypedResource: false
      AtomicInt64OnGroupShared: false
      DerivativesInMeshAndAmpShaders: false
      ResourceDescriptorHeapIndexing: false
      SamplerDescriptorHeapIndexing: false
      RESERVED:        false
      AtomicInt64OnHeapResource: false
      AdvancedTextureOps: false
      WriteableMSAATextures: false
      NextUnusedBit:   false
  - Name:            ISG1
    Size:            52
  - Name:            OSG1
    Size:            52
  - Name:            PSG1
    Size:            372
  - Name:            PSV0
    Size:            364
    PSVInfo:
      Version:         2
      ShaderStage:     4
      InputControlPointCount: 16
      OutputPositionPresent: 1
      TessellatorDomain: 3
      MinimumWaveLaneCount: 0
      MaximumWaveLaneCount: 4294967295
      UsesViewID:      1
      SigPatchConstOrPrimVectors: 7
      SigInputVectors: 1
      SigOutputVectors: [ 1, 0, 0, 0 ]
      NumThreadsX:     0
      NumThreadsY:     0
      NumThreadsZ:     0
      ResourceStride:  24
      Resources:
        - Type:            2
          Space:           0
          LowerBound:      0
          UpperBound:      0
          Kind:            13
          Flags:           0
      SigInputElements:
        - Name:            AAA_HSFoo
          Indices:         [ 0 ]
          StartRow:        0
          Cols:            3
          StartCol:        0
          Allocated:       true
          Kind:            Arbitrary
          ComponentType:   Float32
          Interpolation:   Linear
          DynamicMask:     0x0
          Stream:          0
      SigOutputElements:
        - Name:            ''
          Indices:         [ 0 ]
          StartRow:        0
          Cols:            4
          StartCol:        0
          Allocated:       true
          Kind:            Position
          ComponentType:   Float32
          Interpolation:   LinearNoperspective
          DynamicMask:     0x0
          Stream:          0
      SigPatchOrPrimElements:
        - Name:            ''
          Indices:         [ 0, 1, 2, 3 ]
          StartRow:        0
          Cols:            1
          StartCol:        3
          Allocated:       true
          Kind:            TessFactor
          ComponentType:   Float32
          Interpolation:   Undefined
          DynamicMask:     0x0
          Stream:          0
        - Name:            ''
          Indices:         [ 0, 1 ]
          StartRow:        4
          Cols:            1
          StartCol:        3
          Allocated:       true
          Kind:            InsideTessFactor
          ComponentType:   Float32
          Interpolation:   Undefined
          DynamicMask:     0x0
          Stream:          0
        - Name:            AAA
          Indices:         [ 0 ]
          StartRow:        6
          Cols:            4
          StartCol:        0
          Allocated:       true
          Kind:            Arbitrary
          ComponentType:   Float32
          Interpolation:   Undefined
          DynamicMask:     0x0
          Stream:          0
        - Name:            BBB
          Indices:         [ 0, 1, 2 ]
          StartRow:        0
          Cols:            3
          StartCol:        0
          Allocated:       true
          Kind:            Arbitrary
          ComponentType:   Float32
          Interpolation:   Undefined
          DynamicMask:     0x0
          Stream:          0
      OutputVectorMasks:
        - [ 0x1 ]
        - [  ]
        - [  ]
        - [  ]
      InputOutputMap:
        - [ 0x0, 0xD, 0x0, 0x0 ]
        - [  ]
        - [  ]
        - [  ]
      PatchOutputMap:  [ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 
                         0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
                         0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0 ]
  - Name:            STAT
    Size:            1796
  - Name:            HASH
    Size:            20
    Hash:
      IncludesSource:  false
      Digest:          [ 0xD4, 0x48, 0xCB, 0xFE, 0xF9, 0xCD, 0x92, 0x7B, 
                         0xBD, 0x2B, 0x9A, 0x9D, 0xB4, 0x6F, 0x3E, 0x83 ]
  - Name:            DXIL
    Size:            24
    Program:
      MajorVersion:    6
      MinorVersion:    1
      ShaderKind:      4
      Size:            6
      DXILMajorVersion: 1
      DXILMinorVersion: 1
      DXILSize:        0
...

# Verify the vector sizes and ViewID use.
# CHECK: UsesViewID:      1
# CHECK-NEXT: SigPatchConstOrPrimVectors: 7
# CHECK-NEXT: SigInputVectors: 1
# CHECK-NEXT: SigOutputVectors: [ 1, 0, 0, 0 ]

# Verify the vector mask encodings.
# CHECK: OutputVectorMasks:
# CHECK-NEXT:   - [ 0x1 ]
# CHECK-NEXT:   - [  ]
# CHECK-NEXT:   - [  ]
# CHECK-NEXT:   - [  ]
# CHECK-NEXT: InputOutputMap:
# CHECK-NEXT:   - [ 0x0, 0xD, 0x0, 0x0 ]
# CHECK-NEXT:   - [  ]
# CHECK-NEXT:   - [  ]
# CHECK-NEXT:   - [  ]
# CHECK-NEXT: PatchOutputMap:  [ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 
# CHECK-NEXT:                    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
# CHECK-NEXT:                    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0 ]
