Example #1
0
     private void Create()
     {
         Type = default(TSubObject) switch
         {
             ID3D12RootSignature => D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE,
             D3D12_STREAM_OUTPUT_DESC => D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT,
             D3D12_BLEND_DESC => D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND,
             uint => D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK,
             D3D12_RASTERIZER_DESC => D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER,
             D3D12_DEPTH_STENCIL_DESC => D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL,
             D3D12_INPUT_LAYOUT_DESC => D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT,
             D3D12_INDEX_BUFFER_STRIP_CUT_VALUE => D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE,
             D3D12_PRIMITIVE_TOPOLOGY_TYPE => D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY,
             D3D12_RT_FORMAT_ARRAY => D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS,
             DXGI_FORMAT => D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT,
             DXGI_SAMPLE_DESC => D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC,
             D3D12_NODE_MASK => D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK,
             D3D12_CACHED_PIPELINE_STATE => D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO,
             D3D12_PIPELINE_STATE_FLAGS => D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS,
             D3D12_DEPTH_STENCIL_DESC1 => D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1,
             D3D12_VIEW_INSTANCING_DESC => D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING,
             _ => D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID
         };
     }
 }
Example #2
0
 public static int GetSubobjectSize(D3D12_PIPELINE_STATE_SUBOBJECT_TYPE type)
 {
     return(type switch
     {
         D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE => sizeof(ID3D12RootSignature *),
         D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT => sizeof(D3D12_STREAM_OUTPUT_DESC),
         D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND => sizeof(D3D12_BLEND_DESC),
         D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK => sizeof(uint),
         D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER => sizeof(D3D12_RASTERIZER_DESC),
         D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL => sizeof(D3D12_DEPTH_STENCIL_DESC),
         D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT => sizeof(D3D12_INPUT_LAYOUT_DESC),
         D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE => sizeof(D3D12_INDEX_BUFFER_STRIP_CUT_VALUE),
         D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY => sizeof(D3D12_PRIMITIVE_TOPOLOGY_TYPE),
         D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS => sizeof(D3D12_RT_FORMAT_ARRAY),
         D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT => sizeof(DXGI_FORMAT),
         D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC => sizeof(DXGI_SAMPLE_DESC),
         D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK => sizeof(D3D12_NODE_MASK),
         D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO => sizeof(D3D12_CACHED_PIPELINE_STATE),
         D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS => sizeof(D3D12_PIPELINE_STATE_FLAGS),
         D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 => sizeof(D3D12_DEPTH_STENCIL_DESC1),
         D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING => sizeof(D3D12_VIEW_INSTANCING_DESC),
         D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS => sizeof(D3D12_SHADER_BYTECODE),
         D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS => sizeof(D3D12_SHADER_BYTECODE),
         D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS => sizeof(D3D12_SHADER_BYTECODE),
         D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS => sizeof(D3D12_SHADER_BYTECODE),
         D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS => sizeof(D3D12_SHADER_BYTECODE),
         D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS => sizeof(D3D12_SHADER_BYTECODE),
         D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_AS => sizeof(D3D12_SHADER_BYTECODE),
         D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MS => sizeof(D3D12_SHADER_BYTECODE),
         _ => throw new InvalidDataException("Didn't find a valid subobject type")
     });
Example #3
0
 public void ErrorDuplicateSubobject(D3D12_PIPELINE_STATE_SUBOBJECT_TYPE param0)
 {
     ((delegate * unmanaged <ID3DX12PipelineParserCallbacks *, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE, void>)(lpVtbl[26]))((ID3DX12PipelineParserCallbacks *)Unsafe.AsPointer(ref this), param0);
 }