# 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
  PartCount:       1
  PartOffsets:     [ 60 ]
Parts:
  - Name:            RTS0
    Size:            200
    RootSignature:
      Version: 2
      NumRootParameters: 3
      RootParametersOffset: 24
      NumStaticSamplers: 0
      StaticSamplersOffset: 60
      Parameters:         
      - ParameterType: 1 # Constants32Bit
        ShaderVisibility: 2 # Hull
        Constants:
          Num32BitValues: 16
          ShaderRegister: 15
          RegisterSpace: 14
      - ParameterType: 1 # Constants32Bit
        ShaderVisibility: 4 # Geometry
        Constants:
          Num32BitValues: 21
          ShaderRegister: 22
          RegisterSpace: 23     
      - ParameterType: 2 # SRV
        ShaderVisibility: 3 # Domain
        Descriptor:
          ShaderRegister: 31
          RegisterSpace: 32
          DATA_STATIC_WHILE_SET_AT_EXECUTE: true
      - ParameterType: 0 # SRV
        ShaderVisibility: 3 # Domain
        Table:
          NumRanges: 1
          Ranges:
            - RangeType: 0
              NumDescriptors: -1
              BaseShaderRegister: 42
              RegisterSpace: 43
              OffsetInDescriptorsFromTableStart: 41
              DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS: true
      AllowInputAssemblerInputLayout: true
      DenyGeometryShaderRootAccess: true

# CHECK:  - Name:            RTS0
# CHECK-NEXT:    Size:            200
# CHECK-NEXT:    RootSignature:
# CHECK-NEXT:      Version:         2
# CHECK-NEXT:      NumRootParameters: 4
# CHECK-NEXT:      RootParametersOffset: 24
# CHECK-NEXT:      NumStaticSamplers: 0
# CHECK-NEXT:      StaticSamplersOffset: 60
# CHECK-NEXT:      Parameters:
# CHECK-NEXT:        - ParameterType:   1
# CHECK-NEXT:          ShaderVisibility: 2
# CHECK-NEXT:          Constants:
# CHECK-NEXT:            Num32BitValues:  16
# CHECK-NEXT:            RegisterSpace:   14
# CHECK-NEXT:            ShaderRegister:  15
# CHECK-NEXT:        - ParameterType:   1
# CHECK-NEXT:          ShaderVisibility: 4
# CHECK-NEXT:          Constants:
# CHECK-NEXT:            Num32BitValues:  21
# CHECK-NEXT:            RegisterSpace:   23
# CHECK-NEXT:            ShaderRegister:  22
# CHECK-NEXT:        - ParameterType:   2
# CHECK-NEXT:          ShaderVisibility: 3
# CHECK-NEXT:          Descriptor:
# CHECK-NEXT:            RegisterSpace:   32
# CHECK-NEXT:            ShaderRegister:  31
# CHECK-NEXT:            DATA_STATIC_WHILE_SET_AT_EXECUTE: true
# CHECK-NEXT:        - ParameterType:   0
# CHECK-NEXT:          ShaderVisibility: 3
# CHECK-NEXT:          Table:
# CHECK-NEXT:            NumRanges:       1
# CHECK-NEXT:            RangesOffset:    116
# CHECK-NEXT:            Ranges:
# CHECK-NEXT:              - RangeType:       0
# CHECK-NEXT:                NumDescriptors:  -1
# CHECK-NEXT:                BaseShaderRegister: 42
# CHECK-NEXT:                RegisterSpace:   43
# CHECK-NEXT:                OffsetInDescriptorsFromTableStart: 41
# CHECK-NEXT:                DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS: true
# CHECK-NEXT:      AllowInputAssemblerInputLayout: true
# CHECK-NEXT:      DenyGeometryShaderRootAccess: true
