// ------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
// ------------------------------------------------------------------------------

namespace Win32.Graphics.Direct3D12;

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_COMMAND_QUEUE_DESC"]/*' />
/// <unmanaged>D3D12_COMMAND_QUEUE_DESC</unmanaged>
public partial struct CommandQueueDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_COMMAND_QUEUE_DESC::Type"]/*' />
	public CommandListType Type;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_COMMAND_QUEUE_DESC::Priority"]/*' />
	public int Priority;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_COMMAND_QUEUE_DESC::Flags"]/*' />
	public CommandQueueFlags Flags;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_COMMAND_QUEUE_DESC::NodeMask"]/*' />
	public uint NodeMask;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_INPUT_ELEMENT_DESC"]/*' />
/// <unmanaged>D3D12_INPUT_ELEMENT_DESC</unmanaged>
public partial struct InputElementDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_INPUT_ELEMENT_DESC::SemanticName"]/*' />
	public unsafe sbyte* SemanticName;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_INPUT_ELEMENT_DESC::SemanticIndex"]/*' />
	public uint SemanticIndex;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_INPUT_ELEMENT_DESC::Format"]/*' />
	public Graphics.Dxgi.Common.Format Format;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_INPUT_ELEMENT_DESC::InputSlot"]/*' />
	public uint InputSlot;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_INPUT_ELEMENT_DESC::AlignedByteOffset"]/*' />
	public uint AlignedByteOffset;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_INPUT_ELEMENT_DESC::InputSlotClass"]/*' />
	public InputClassification InputSlotClass;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_INPUT_ELEMENT_DESC::InstanceDataStepRate"]/*' />
	public uint InstanceDataStepRate;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SO_DECLARATION_ENTRY"]/*' />
/// <unmanaged>D3D12_SO_DECLARATION_ENTRY</unmanaged>
public partial struct SODeclarationEntry
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SO_DECLARATION_ENTRY::Stream"]/*' />
	public uint Stream;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SO_DECLARATION_ENTRY::SemanticName"]/*' />
	public unsafe sbyte* SemanticName;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SO_DECLARATION_ENTRY::SemanticIndex"]/*' />
	public uint SemanticIndex;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SO_DECLARATION_ENTRY::StartComponent"]/*' />
	public byte StartComponent;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SO_DECLARATION_ENTRY::ComponentCount"]/*' />
	public byte ComponentCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SO_DECLARATION_ENTRY::OutputSlot"]/*' />
	public byte OutputSlot;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BOX"]/*' />
/// <unmanaged>D3D12_BOX</unmanaged>
public partial struct Box
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BOX::left"]/*' />
	public uint left;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BOX::top"]/*' />
	public uint top;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BOX::front"]/*' />
	public uint front;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BOX::right"]/*' />
	public uint right;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BOX::bottom"]/*' />
	public uint bottom;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BOX::back"]/*' />
	public uint back;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCILOP_DESC"]/*' />
/// <unmanaged>D3D12_DEPTH_STENCILOP_DESC</unmanaged>
public partial struct DepthStencilOperationDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCILOP_DESC::StencilFailOp"]/*' />
	public StencilOperation StencilFailOp;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCILOP_DESC::StencilDepthFailOp"]/*' />
	public StencilOperation StencilDepthFailOp;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCILOP_DESC::StencilPassOp"]/*' />
	public StencilOperation StencilPassOp;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCILOP_DESC::StencilFunc"]/*' />
	public ComparisonFunction StencilFunc;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_DESC"]/*' />
/// <unmanaged>D3D12_DEPTH_STENCIL_DESC</unmanaged>
public partial struct DepthStencilDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_DESC::DepthEnable"]/*' />
	public Bool32 DepthEnable;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_DESC::DepthWriteMask"]/*' />
	public DepthWriteMask DepthWriteMask;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_DESC::DepthFunc"]/*' />
	public ComparisonFunction DepthFunc;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_DESC::StencilEnable"]/*' />
	public Bool32 StencilEnable;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_DESC::StencilReadMask"]/*' />
	public byte StencilReadMask;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_DESC::StencilWriteMask"]/*' />
	public byte StencilWriteMask;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_DESC::FrontFace"]/*' />
	public DepthStencilOperationDescription FrontFace;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_DESC::BackFace"]/*' />
	public DepthStencilOperationDescription BackFace;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_DESC1"]/*' />
/// <unmanaged>D3D12_DEPTH_STENCIL_DESC1</unmanaged>
public partial struct DepthStencilDescription1
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_DESC1::DepthEnable"]/*' />
	public Bool32 DepthEnable;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_DESC1::DepthWriteMask"]/*' />
	public DepthWriteMask DepthWriteMask;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_DESC1::DepthFunc"]/*' />
	public ComparisonFunction DepthFunc;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_DESC1::StencilEnable"]/*' />
	public Bool32 StencilEnable;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_DESC1::StencilReadMask"]/*' />
	public byte StencilReadMask;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_DESC1::StencilWriteMask"]/*' />
	public byte StencilWriteMask;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_DESC1::FrontFace"]/*' />
	public DepthStencilOperationDescription FrontFace;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_DESC1::BackFace"]/*' />
	public DepthStencilOperationDescription BackFace;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_DESC1::DepthBoundsTestEnable"]/*' />
	public Bool32 DepthBoundsTestEnable;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_TARGET_BLEND_DESC"]/*' />
/// <unmanaged>D3D12_RENDER_TARGET_BLEND_DESC</unmanaged>
public partial struct RenderTargetBlendDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_TARGET_BLEND_DESC::BlendEnable"]/*' />
	public Bool32 BlendEnable;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_TARGET_BLEND_DESC::LogicOpEnable"]/*' />
	public Bool32 LogicOpEnable;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_TARGET_BLEND_DESC::SrcBlend"]/*' />
	public Blend SrcBlend;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_TARGET_BLEND_DESC::DestBlend"]/*' />
	public Blend DestBlend;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_TARGET_BLEND_DESC::BlendOp"]/*' />
	public BlendOperation BlendOp;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_TARGET_BLEND_DESC::SrcBlendAlpha"]/*' />
	public Blend SrcBlendAlpha;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_TARGET_BLEND_DESC::DestBlendAlpha"]/*' />
	public Blend DestBlendAlpha;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_TARGET_BLEND_DESC::BlendOpAlpha"]/*' />
	public BlendOperation BlendOpAlpha;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_TARGET_BLEND_DESC::LogicOp"]/*' />
	public LogicOperation LogicOp;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_TARGET_BLEND_DESC::RenderTargetWriteMask"]/*' />
	public ColorWriteEnable RenderTargetWriteMask;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BLEND_DESC"]/*' />
/// <unmanaged>D3D12_BLEND_DESC</unmanaged>
public partial struct BlendDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BLEND_DESC::AlphaToCoverageEnable"]/*' />
	public Bool32 AlphaToCoverageEnable;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BLEND_DESC::IndependentBlendEnable"]/*' />
	public Bool32 IndependentBlendEnable;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BLEND_DESC::RenderTarget"]/*' />
	public RenderTarget__FixedBuffer RenderTarget;

	public unsafe struct RenderTarget__FixedBuffer
	{
		public RenderTargetBlendDescription e0;
		public RenderTargetBlendDescription e1;
		public RenderTargetBlendDescription e2;
		public RenderTargetBlendDescription e3;
		public RenderTargetBlendDescription e4;
		public RenderTargetBlendDescription e5;
		public RenderTargetBlendDescription e6;
		public RenderTargetBlendDescription e7;

		[UnscopedRef]
		public ref RenderTargetBlendDescription this[int index]
		{
			[MethodImpl(MethodImplOptions.AggressiveInlining)]
			get
			{
				return ref AsSpan()[index];
			}
		}

		[UnscopedRef]
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		public Span<RenderTargetBlendDescription> AsSpan()
		{
			return MemoryMarshal.CreateSpan(ref e0, 8);
		}
	}
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RASTERIZER_DESC"]/*' />
/// <unmanaged>D3D12_RASTERIZER_DESC</unmanaged>
public partial struct RasterizerDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RASTERIZER_DESC::FillMode"]/*' />
	public FillMode FillMode;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RASTERIZER_DESC::CullMode"]/*' />
	public CullMode CullMode;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RASTERIZER_DESC::FrontCounterClockwise"]/*' />
	public Bool32 FrontCounterClockwise;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RASTERIZER_DESC::DepthBias"]/*' />
	public int DepthBias;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RASTERIZER_DESC::DepthBiasClamp"]/*' />
	public float DepthBiasClamp;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RASTERIZER_DESC::SlopeScaledDepthBias"]/*' />
	public float SlopeScaledDepthBias;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RASTERIZER_DESC::DepthClipEnable"]/*' />
	public Bool32 DepthClipEnable;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RASTERIZER_DESC::MultisampleEnable"]/*' />
	public Bool32 MultisampleEnable;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RASTERIZER_DESC::AntialiasedLineEnable"]/*' />
	public Bool32 AntialiasedLineEnable;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RASTERIZER_DESC::ForcedSampleCount"]/*' />
	public uint ForcedSampleCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RASTERIZER_DESC::ConservativeRaster"]/*' />
	public ConservativeRasterizationMode ConservativeRaster;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_BYTECODE"]/*' />
/// <unmanaged>D3D12_SHADER_BYTECODE</unmanaged>
public partial struct ShaderBytecode
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_BYTECODE::pShaderBytecode"]/*' />
	public unsafe void* pShaderBytecode;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_BYTECODE::BytecodeLength"]/*' />
	public nuint BytecodeLength;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STREAM_OUTPUT_DESC"]/*' />
/// <unmanaged>D3D12_STREAM_OUTPUT_DESC</unmanaged>
public partial struct StreamOutputDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STREAM_OUTPUT_DESC::pSODeclaration"]/*' />
	public unsafe SODeclarationEntry* pSODeclaration;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STREAM_OUTPUT_DESC::NumEntries"]/*' />
	public uint NumEntries;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STREAM_OUTPUT_DESC::pBufferStrides"]/*' />
	public unsafe uint* pBufferStrides;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STREAM_OUTPUT_DESC::NumStrides"]/*' />
	public uint NumStrides;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STREAM_OUTPUT_DESC::RasterizedStream"]/*' />
	public uint RasterizedStream;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_INPUT_LAYOUT_DESC"]/*' />
/// <unmanaged>D3D12_INPUT_LAYOUT_DESC</unmanaged>
public partial struct InputLayoutDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_INPUT_LAYOUT_DESC::pInputElementDescs"]/*' />
	public unsafe InputElementDescription* pInputElementDescs;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_INPUT_LAYOUT_DESC::NumElements"]/*' />
	public uint NumElements;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_CACHED_PIPELINE_STATE"]/*' />
/// <unmanaged>D3D12_CACHED_PIPELINE_STATE</unmanaged>
public partial struct CachedPipelineState
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_CACHED_PIPELINE_STATE::pCachedBlob"]/*' />
	public unsafe void* pCachedBlob;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_CACHED_PIPELINE_STATE::CachedBlobSizeInBytes"]/*' />
	public nuint CachedBlobSizeInBytes;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GRAPHICS_PIPELINE_STATE_DESC"]/*' />
/// <unmanaged>D3D12_GRAPHICS_PIPELINE_STATE_DESC</unmanaged>
public partial struct GraphicsPipelineStateDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GRAPHICS_PIPELINE_STATE_DESC::pRootSignature"]/*' />
	public unsafe ID3D12RootSignature* pRootSignature;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GRAPHICS_PIPELINE_STATE_DESC::VS"]/*' />
	public ShaderBytecode VS;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GRAPHICS_PIPELINE_STATE_DESC::PS"]/*' />
	public ShaderBytecode PS;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GRAPHICS_PIPELINE_STATE_DESC::DS"]/*' />
	public ShaderBytecode DS;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GRAPHICS_PIPELINE_STATE_DESC::HS"]/*' />
	public ShaderBytecode HS;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GRAPHICS_PIPELINE_STATE_DESC::GS"]/*' />
	public ShaderBytecode GS;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GRAPHICS_PIPELINE_STATE_DESC::StreamOutput"]/*' />
	public StreamOutputDescription StreamOutput;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GRAPHICS_PIPELINE_STATE_DESC::BlendState"]/*' />
	public BlendDescription BlendState;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GRAPHICS_PIPELINE_STATE_DESC::SampleMask"]/*' />
	public uint SampleMask;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GRAPHICS_PIPELINE_STATE_DESC::RasterizerState"]/*' />
	public RasterizerDescription RasterizerState;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GRAPHICS_PIPELINE_STATE_DESC::DepthStencilState"]/*' />
	public DepthStencilDescription DepthStencilState;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GRAPHICS_PIPELINE_STATE_DESC::InputLayout"]/*' />
	public InputLayoutDescription InputLayout;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GRAPHICS_PIPELINE_STATE_DESC::IBStripCutValue"]/*' />
	public IndexBufferStripCutValue IBStripCutValue;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GRAPHICS_PIPELINE_STATE_DESC::PrimitiveTopologyType"]/*' />
	public PrimitiveTopologyType PrimitiveTopologyType;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GRAPHICS_PIPELINE_STATE_DESC::NumRenderTargets"]/*' />
	public uint NumRenderTargets;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GRAPHICS_PIPELINE_STATE_DESC::RTVFormats"]/*' />
	public RTVFormats__FixedBuffer RTVFormats;

	public unsafe struct RTVFormats__FixedBuffer
	{
		public Graphics.Dxgi.Common.Format e0;
		public Graphics.Dxgi.Common.Format e1;
		public Graphics.Dxgi.Common.Format e2;
		public Graphics.Dxgi.Common.Format e3;
		public Graphics.Dxgi.Common.Format e4;
		public Graphics.Dxgi.Common.Format e5;
		public Graphics.Dxgi.Common.Format e6;
		public Graphics.Dxgi.Common.Format e7;

		[UnscopedRef]
		public ref Graphics.Dxgi.Common.Format this[int index]
		{
			[MethodImpl(MethodImplOptions.AggressiveInlining)]
			get
			{
				return ref AsSpan()[index];
			}
		}

		[UnscopedRef]
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		public Span<Graphics.Dxgi.Common.Format> AsSpan()
		{
			return MemoryMarshal.CreateSpan(ref e0, 8);
		}
	}

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GRAPHICS_PIPELINE_STATE_DESC::DSVFormat"]/*' />
	public Graphics.Dxgi.Common.Format DSVFormat;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GRAPHICS_PIPELINE_STATE_DESC::SampleDesc"]/*' />
	public Graphics.Dxgi.Common.SampleDescription SampleDesc;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GRAPHICS_PIPELINE_STATE_DESC::NodeMask"]/*' />
	public uint NodeMask;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GRAPHICS_PIPELINE_STATE_DESC::CachedPSO"]/*' />
	public CachedPipelineState CachedPSO;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GRAPHICS_PIPELINE_STATE_DESC::Flags"]/*' />
	public PipelineStateFlags Flags;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_COMPUTE_PIPELINE_STATE_DESC"]/*' />
/// <unmanaged>D3D12_COMPUTE_PIPELINE_STATE_DESC</unmanaged>
public partial struct ComputePipelineStateDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_COMPUTE_PIPELINE_STATE_DESC::pRootSignature"]/*' />
	public unsafe ID3D12RootSignature* pRootSignature;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_COMPUTE_PIPELINE_STATE_DESC::CS"]/*' />
	public ShaderBytecode CS;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_COMPUTE_PIPELINE_STATE_DESC::NodeMask"]/*' />
	public uint NodeMask;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_COMPUTE_PIPELINE_STATE_DESC::CachedPSO"]/*' />
	public CachedPipelineState CachedPSO;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_COMPUTE_PIPELINE_STATE_DESC::Flags"]/*' />
	public PipelineStateFlags Flags;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RT_FORMAT_ARRAY"]/*' />
/// <unmanaged>D3D12_RT_FORMAT_ARRAY</unmanaged>
public partial struct RtFormatArray
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RT_FORMAT_ARRAY::RTFormats"]/*' />
	public RTFormats__FixedBuffer RTFormats;

	public unsafe struct RTFormats__FixedBuffer
	{
		public Graphics.Dxgi.Common.Format e0;
		public Graphics.Dxgi.Common.Format e1;
		public Graphics.Dxgi.Common.Format e2;
		public Graphics.Dxgi.Common.Format e3;
		public Graphics.Dxgi.Common.Format e4;
		public Graphics.Dxgi.Common.Format e5;
		public Graphics.Dxgi.Common.Format e6;
		public Graphics.Dxgi.Common.Format e7;

		[UnscopedRef]
		public ref Graphics.Dxgi.Common.Format this[int index]
		{
			[MethodImpl(MethodImplOptions.AggressiveInlining)]
			get
			{
				return ref AsSpan()[index];
			}
		}

		[UnscopedRef]
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		public Span<Graphics.Dxgi.Common.Format> AsSpan()
		{
			return MemoryMarshal.CreateSpan(ref e0, 8);
		}
	}

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RT_FORMAT_ARRAY::NumRenderTargets"]/*' />
	public uint NumRenderTargets;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_PIPELINE_STATE_STREAM_DESC"]/*' />
/// <unmanaged>D3D12_PIPELINE_STATE_STREAM_DESC</unmanaged>
public partial struct PipelineStateStreamDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_PIPELINE_STATE_STREAM_DESC::SizeInBytes"]/*' />
	public nuint SizeInBytes;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_PIPELINE_STATE_STREAM_DESC::pPipelineStateSubobjectStream"]/*' />
	public unsafe void* pPipelineStateSubobjectStream;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS"]/*' />
/// <unmanaged>D3D12_FEATURE_DATA_D3D12_OPTIONS</unmanaged>
public partial struct FeatureDataD3D12Options
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS::DoublePrecisionFloatShaderOps"]/*' />
	public Bool32 DoublePrecisionFloatShaderOps;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS::OutputMergerLogicOp"]/*' />
	public Bool32 OutputMergerLogicOp;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS::MinPrecisionSupport"]/*' />
	public ShaderMinPrecisionSupport MinPrecisionSupport;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS::TiledResourcesTier"]/*' />
	public TiledResourcesTier TiledResourcesTier;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS::ResourceBindingTier"]/*' />
	public ResourceBindingTier ResourceBindingTier;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS::PSSpecifiedStencilRefSupported"]/*' />
	public Bool32 PSSpecifiedStencilRefSupported;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS::TypedUAVLoadAdditionalFormats"]/*' />
	public Bool32 TypedUAVLoadAdditionalFormats;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS::ROVsSupported"]/*' />
	public Bool32 ROVsSupported;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS::ConservativeRasterizationTier"]/*' />
	public ConservativeRasterizationTier ConservativeRasterizationTier;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS::MaxGPUVirtualAddressBitsPerResource"]/*' />
	public uint MaxGPUVirtualAddressBitsPerResource;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS::StandardSwizzle64KBSupported"]/*' />
	public Bool32 StandardSwizzle64KBSupported;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS::CrossNodeSharingTier"]/*' />
	public CrossNodeSharingTier CrossNodeSharingTier;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS::CrossAdapterRowMajorTextureSupported"]/*' />
	public Bool32 CrossAdapterRowMajorTextureSupported;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS::VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation"]/*' />
	public Bool32 VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS::ResourceHeapTier"]/*' />
	public ResourceHeapTier ResourceHeapTier;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS1"]/*' />
/// <unmanaged>D3D12_FEATURE_DATA_D3D12_OPTIONS1</unmanaged>
public partial struct FeatureDataD3D12Options1
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS1::WaveOps"]/*' />
	public Bool32 WaveOps;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS1::WaveLaneCountMin"]/*' />
	public uint WaveLaneCountMin;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS1::WaveLaneCountMax"]/*' />
	public uint WaveLaneCountMax;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS1::TotalLaneCount"]/*' />
	public uint TotalLaneCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS1::ExpandedComputeResourceStates"]/*' />
	public Bool32 ExpandedComputeResourceStates;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS1::Int64ShaderOps"]/*' />
	public Bool32 Int64ShaderOps;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS2"]/*' />
/// <unmanaged>D3D12_FEATURE_DATA_D3D12_OPTIONS2</unmanaged>
public partial struct FeatureDataD3D12Options2
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS2::DepthBoundsTestSupported"]/*' />
	public Bool32 DepthBoundsTestSupported;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS2::ProgrammableSamplePositionsTier"]/*' />
	public ProgrammableSamplePositionsTier ProgrammableSamplePositionsTier;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_ROOT_SIGNATURE"]/*' />
/// <unmanaged>D3D12_FEATURE_DATA_ROOT_SIGNATURE</unmanaged>
public partial struct FeatureDataRootSignature
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_ROOT_SIGNATURE::HighestVersion"]/*' />
	public RootSignatureVersion HighestVersion;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_ARCHITECTURE"]/*' />
/// <unmanaged>D3D12_FEATURE_DATA_ARCHITECTURE</unmanaged>
public partial struct FeatureDataArchitecture
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_ARCHITECTURE::NodeIndex"]/*' />
	public uint NodeIndex;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_ARCHITECTURE::TileBasedRenderer"]/*' />
	public Bool32 TileBasedRenderer;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_ARCHITECTURE::UMA"]/*' />
	public Bool32 UMA;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_ARCHITECTURE::CacheCoherentUMA"]/*' />
	public Bool32 CacheCoherentUMA;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_ARCHITECTURE1"]/*' />
/// <unmanaged>D3D12_FEATURE_DATA_ARCHITECTURE1</unmanaged>
public partial struct FeatureDataArchitecture1
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_ARCHITECTURE1::NodeIndex"]/*' />
	public uint NodeIndex;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_ARCHITECTURE1::TileBasedRenderer"]/*' />
	public Bool32 TileBasedRenderer;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_ARCHITECTURE1::UMA"]/*' />
	public Bool32 UMA;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_ARCHITECTURE1::CacheCoherentUMA"]/*' />
	public Bool32 CacheCoherentUMA;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_ARCHITECTURE1::IsolatedMMU"]/*' />
	public Bool32 IsolatedMMU;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_FEATURE_LEVELS"]/*' />
/// <unmanaged>D3D12_FEATURE_DATA_FEATURE_LEVELS</unmanaged>
public partial struct FeatureDataFeatureLevels
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_FEATURE_LEVELS::NumFeatureLevels"]/*' />
	public uint NumFeatureLevels;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_FEATURE_LEVELS::pFeatureLevelsRequested"]/*' />
	public unsafe Graphics.Direct3D.FeatureLevel* pFeatureLevelsRequested;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_FEATURE_LEVELS::MaxSupportedFeatureLevel"]/*' />
	public Graphics.Direct3D.FeatureLevel MaxSupportedFeatureLevel;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_SHADER_MODEL"]/*' />
/// <unmanaged>D3D12_FEATURE_DATA_SHADER_MODEL</unmanaged>
public partial struct FeatureDataShaderModel
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_SHADER_MODEL::HighestShaderModel"]/*' />
	public ShaderModel HighestShaderModel;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_FORMAT_SUPPORT"]/*' />
/// <unmanaged>D3D12_FEATURE_DATA_FORMAT_SUPPORT</unmanaged>
public partial struct FeatureDataFormatSupport
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_FORMAT_SUPPORT::Format"]/*' />
	public Graphics.Dxgi.Common.Format Format;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_FORMAT_SUPPORT::Support1"]/*' />
	public FormatSupport1 Support1;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_FORMAT_SUPPORT::Support2"]/*' />
	public FormatSupport2 Support2;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS"]/*' />
/// <unmanaged>D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS</unmanaged>
public partial struct FeatureDataMultisampleQualityLevels
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS::Format"]/*' />
	public Graphics.Dxgi.Common.Format Format;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS::SampleCount"]/*' />
	public uint SampleCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS::Flags"]/*' />
	public MultisampleQualityLevelFlags Flags;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS::NumQualityLevels"]/*' />
	public uint NumQualityLevels;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_FORMAT_INFO"]/*' />
/// <unmanaged>D3D12_FEATURE_DATA_FORMAT_INFO</unmanaged>
public partial struct FeatureDataFormatInfo
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_FORMAT_INFO::Format"]/*' />
	public Graphics.Dxgi.Common.Format Format;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_FORMAT_INFO::PlaneCount"]/*' />
	public byte PlaneCount;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT"]/*' />
/// <unmanaged>D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT</unmanaged>
public partial struct FeatureDataGpuVirtualAddressSupport
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT::MaxGPUVirtualAddressBitsPerResource"]/*' />
	public uint MaxGPUVirtualAddressBitsPerResource;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT::MaxGPUVirtualAddressBitsPerProcess"]/*' />
	public uint MaxGPUVirtualAddressBitsPerProcess;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_SHADER_CACHE"]/*' />
/// <unmanaged>D3D12_FEATURE_DATA_SHADER_CACHE</unmanaged>
public partial struct FeatureDataShaderCache
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_SHADER_CACHE::SupportFlags"]/*' />
	public ShaderCacheSupportFlags SupportFlags;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY"]/*' />
/// <unmanaged>D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY</unmanaged>
public partial struct FeatureDataCommandQueuePriority
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY::CommandListType"]/*' />
	public CommandListType CommandListType;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY::Priority"]/*' />
	public uint Priority;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY::PriorityForTypeIsSupported"]/*' />
	public Bool32 PriorityForTypeIsSupported;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS3"]/*' />
/// <unmanaged>D3D12_FEATURE_DATA_D3D12_OPTIONS3</unmanaged>
public partial struct FeatureDataD3D12Options3
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS3::CopyQueueTimestampQueriesSupported"]/*' />
	public Bool32 CopyQueueTimestampQueriesSupported;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS3::CastingFullyTypedFormatSupported"]/*' />
	public Bool32 CastingFullyTypedFormatSupported;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS3::WriteBufferImmediateSupportFlags"]/*' />
	public CommandListSupportFlags WriteBufferImmediateSupportFlags;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS3::ViewInstancingTier"]/*' />
	public ViewInstancingTier ViewInstancingTier;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS3::BarycentricsSupported"]/*' />
	public Bool32 BarycentricsSupported;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_EXISTING_HEAPS"]/*' />
/// <unmanaged>D3D12_FEATURE_DATA_EXISTING_HEAPS</unmanaged>
public partial struct FeatureDataExistingHeaps
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_EXISTING_HEAPS::Supported"]/*' />
	public Bool32 Supported;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_DISPLAYABLE"]/*' />
/// <unmanaged>D3D12_FEATURE_DATA_DISPLAYABLE</unmanaged>
public partial struct FeatureDataDisplayable
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_DISPLAYABLE::DisplayableTexture"]/*' />
	public Bool32 DisplayableTexture;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_DISPLAYABLE::SharedResourceCompatibilityTier"]/*' />
	public SharedResourceCompatibilityTier SharedResourceCompatibilityTier;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS4"]/*' />
/// <unmanaged>D3D12_FEATURE_DATA_D3D12_OPTIONS4</unmanaged>
public partial struct FeatureDataD3D12Options4
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS4::MSAA64KBAlignedTextureSupported"]/*' />
	public Bool32 MSAA64KBAlignedTextureSupported;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS4::SharedResourceCompatibilityTier"]/*' />
	public SharedResourceCompatibilityTier SharedResourceCompatibilityTier;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS4::Native16BitShaderOpsSupported"]/*' />
	public Bool32 Native16BitShaderOpsSupported;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_SERIALIZATION"]/*' />
/// <unmanaged>D3D12_FEATURE_DATA_SERIALIZATION</unmanaged>
public partial struct FeatureDataSerialization
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_SERIALIZATION::NodeIndex"]/*' />
	public uint NodeIndex;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_SERIALIZATION::HeapSerializationTier"]/*' />
	public HeapSerializationTier HeapSerializationTier;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_CROSS_NODE"]/*' />
/// <unmanaged>D3D12_FEATURE_DATA_CROSS_NODE</unmanaged>
public partial struct FeatureDataCrossNode
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_CROSS_NODE::SharingTier"]/*' />
	public CrossNodeSharingTier SharingTier;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_CROSS_NODE::AtomicShaderInstructions"]/*' />
	public Bool32 AtomicShaderInstructions;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS5"]/*' />
/// <unmanaged>D3D12_FEATURE_DATA_D3D12_OPTIONS5</unmanaged>
public partial struct FeatureDataD3D12Options5
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS5::SRVOnlyTiledResourceTier3"]/*' />
	public Bool32 SRVOnlyTiledResourceTier3;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS5::RenderPassesTier"]/*' />
	public RenderPassTier RenderPassesTier;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS5::RaytracingTier"]/*' />
	public RaytracingTier RaytracingTier;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS6"]/*' />
/// <unmanaged>D3D12_FEATURE_DATA_D3D12_OPTIONS6</unmanaged>
public partial struct FeatureDataD3D12Options6
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS6::AdditionalShadingRatesSupported"]/*' />
	public Bool32 AdditionalShadingRatesSupported;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS6::PerPrimitiveShadingRateSupportedWithViewportIndexing"]/*' />
	public Bool32 PerPrimitiveShadingRateSupportedWithViewportIndexing;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS6::VariableShadingRateTier"]/*' />
	public VariableShadingRateTier VariableShadingRateTier;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS6::ShadingRateImageTileSize"]/*' />
	public uint ShadingRateImageTileSize;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS6::BackgroundProcessingSupported"]/*' />
	public Bool32 BackgroundProcessingSupported;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS7"]/*' />
/// <unmanaged>D3D12_FEATURE_DATA_D3D12_OPTIONS7</unmanaged>
public partial struct FeatureDataD3D12Options7
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS7::MeshShaderTier"]/*' />
	public MeshShaderTier MeshShaderTier;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS7::SamplerFeedbackTier"]/*' />
	public SamplerFeedbackTier SamplerFeedbackTier;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_QUERY_META_COMMAND"]/*' />
/// <unmanaged>D3D12_FEATURE_DATA_QUERY_META_COMMAND</unmanaged>
public partial struct FeatureDataQueryMetaCommand
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_QUERY_META_COMMAND::CommandId"]/*' />
	public Guid CommandId;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_QUERY_META_COMMAND::NodeMask"]/*' />
	public uint NodeMask;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_QUERY_META_COMMAND::pQueryInputData"]/*' />
	public unsafe void* pQueryInputData;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_QUERY_META_COMMAND::QueryInputDataSizeInBytes"]/*' />
	public nuint QueryInputDataSizeInBytes;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_QUERY_META_COMMAND::pQueryOutputData"]/*' />
	public unsafe void* pQueryOutputData;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_QUERY_META_COMMAND::QueryOutputDataSizeInBytes"]/*' />
	public nuint QueryOutputDataSizeInBytes;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS8"]/*' />
/// <unmanaged>D3D12_FEATURE_DATA_D3D12_OPTIONS8</unmanaged>
public partial struct FeatureDataD3D12Options8
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS8::UnalignedBlockTexturesSupported"]/*' />
	public Bool32 UnalignedBlockTexturesSupported;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS9"]/*' />
/// <unmanaged>D3D12_FEATURE_DATA_D3D12_OPTIONS9</unmanaged>
public partial struct FeatureDataD3D12Options9
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS9::MeshShaderPipelineStatsSupported"]/*' />
	public Bool32 MeshShaderPipelineStatsSupported;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS9::MeshShaderSupportsFullRangeRenderTargetArrayIndex"]/*' />
	public Bool32 MeshShaderSupportsFullRangeRenderTargetArrayIndex;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS9::AtomicInt64OnTypedResourceSupported"]/*' />
	public Bool32 AtomicInt64OnTypedResourceSupported;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS9::AtomicInt64OnGroupSharedSupported"]/*' />
	public Bool32 AtomicInt64OnGroupSharedSupported;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS9::DerivativesInMeshAndAmplificationShadersSupported"]/*' />
	public Bool32 DerivativesInMeshAndAmplificationShadersSupported;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS9::WaveMMATier"]/*' />
	public WaveMmaTier WaveMMATier;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS10"]/*' />
/// <unmanaged>D3D12_FEATURE_DATA_D3D12_OPTIONS10</unmanaged>
public partial struct FeatureDataD3D12Options10
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS10::VariableRateShadingSumCombinerSupported"]/*' />
	public Bool32 VariableRateShadingSumCombinerSupported;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS10::MeshShaderPerPrimitiveShadingRateSupported"]/*' />
	public Bool32 MeshShaderPerPrimitiveShadingRateSupported;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS11"]/*' />
/// <unmanaged>D3D12_FEATURE_DATA_D3D12_OPTIONS11</unmanaged>
public partial struct FeatureDataD3D12Options11
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_D3D12_OPTIONS11::AtomicInt64OnDescriptorHeapResourceSupported"]/*' />
	public Bool32 AtomicInt64OnDescriptorHeapResourceSupported;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_ALLOCATION_INFO"]/*' />
/// <unmanaged>D3D12_RESOURCE_ALLOCATION_INFO</unmanaged>
public partial struct ResourceAllocationInfo
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_ALLOCATION_INFO::SizeInBytes"]/*' />
	public ulong SizeInBytes;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_ALLOCATION_INFO::Alignment"]/*' />
	public ulong Alignment;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_ALLOCATION_INFO1"]/*' />
/// <unmanaged>D3D12_RESOURCE_ALLOCATION_INFO1</unmanaged>
public partial struct ResourceAllocationInfo1
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_ALLOCATION_INFO1::Offset"]/*' />
	public ulong Offset;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_ALLOCATION_INFO1::Alignment"]/*' />
	public ulong Alignment;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_ALLOCATION_INFO1::SizeInBytes"]/*' />
	public ulong SizeInBytes;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_HEAP_PROPERTIES"]/*' />
/// <unmanaged>D3D12_HEAP_PROPERTIES</unmanaged>
public partial struct HeapProperties
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_HEAP_PROPERTIES::Type"]/*' />
	public HeapType Type;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_HEAP_PROPERTIES::CPUPageProperty"]/*' />
	public CpuPageProperty CPUPageProperty;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_HEAP_PROPERTIES::MemoryPoolPreference"]/*' />
	public MemoryPool MemoryPoolPreference;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_HEAP_PROPERTIES::CreationNodeMask"]/*' />
	public uint CreationNodeMask;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_HEAP_PROPERTIES::VisibleNodeMask"]/*' />
	public uint VisibleNodeMask;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_HEAP_DESC"]/*' />
/// <unmanaged>D3D12_HEAP_DESC</unmanaged>
public partial struct HeapDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_HEAP_DESC::SizeInBytes"]/*' />
	public ulong SizeInBytes;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_HEAP_DESC::Properties"]/*' />
	public HeapProperties Properties;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_HEAP_DESC::Alignment"]/*' />
	public ulong Alignment;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_HEAP_DESC::Flags"]/*' />
	public HeapFlags Flags;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_MIP_REGION"]/*' />
/// <unmanaged>D3D12_MIP_REGION</unmanaged>
public partial struct MipRegion
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_MIP_REGION::Width"]/*' />
	public uint Width;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_MIP_REGION::Height"]/*' />
	public uint Height;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_MIP_REGION::Depth"]/*' />
	public uint Depth;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_DESC"]/*' />
/// <unmanaged>D3D12_RESOURCE_DESC</unmanaged>
public partial struct ResourceDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_DESC::Dimension"]/*' />
	public ResourceDimension Dimension;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_DESC::Alignment"]/*' />
	public ulong Alignment;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_DESC::Width"]/*' />
	public ulong Width;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_DESC::Height"]/*' />
	public uint Height;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_DESC::DepthOrArraySize"]/*' />
	public ushort DepthOrArraySize;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_DESC::MipLevels"]/*' />
	public ushort MipLevels;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_DESC::Format"]/*' />
	public Graphics.Dxgi.Common.Format Format;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_DESC::SampleDesc"]/*' />
	public Graphics.Dxgi.Common.SampleDescription SampleDesc;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_DESC::Layout"]/*' />
	public TextureLayout Layout;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_DESC::Flags"]/*' />
	public ResourceFlags Flags;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_DESC1"]/*' />
/// <unmanaged>D3D12_RESOURCE_DESC1</unmanaged>
public partial struct ResourceDescription1
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_DESC1::Dimension"]/*' />
	public ResourceDimension Dimension;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_DESC1::Alignment"]/*' />
	public ulong Alignment;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_DESC1::Width"]/*' />
	public ulong Width;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_DESC1::Height"]/*' />
	public uint Height;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_DESC1::DepthOrArraySize"]/*' />
	public ushort DepthOrArraySize;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_DESC1::MipLevels"]/*' />
	public ushort MipLevels;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_DESC1::Format"]/*' />
	public Graphics.Dxgi.Common.Format Format;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_DESC1::SampleDesc"]/*' />
	public Graphics.Dxgi.Common.SampleDescription SampleDesc;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_DESC1::Layout"]/*' />
	public TextureLayout Layout;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_DESC1::Flags"]/*' />
	public ResourceFlags Flags;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_DESC1::SamplerFeedbackMipRegion"]/*' />
	public MipRegion SamplerFeedbackMipRegion;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_VALUE"]/*' />
/// <unmanaged>D3D12_DEPTH_STENCIL_VALUE</unmanaged>
public partial struct DepthStencilValue
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_VALUE::Depth"]/*' />
	public float Depth;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_VALUE::Stencil"]/*' />
	public byte Stencil;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_CLEAR_VALUE"]/*' />
/// <unmanaged>D3D12_CLEAR_VALUE</unmanaged>
public partial struct ClearValue
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_CLEAR_VALUE::Format"]/*' />
	public Graphics.Dxgi.Common.Format Format;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_CLEAR_VALUE::Anonymous"]/*' />
	public _Anonymous_e__Union Anonymous;

	[UnscopedRef]
	public unsafe Span<float> Color
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return MemoryMarshal.CreateSpan(ref Anonymous.Color[0], 4);
		}
	}

	[UnscopedRef]
	public ref DepthStencilValue DepthStencil
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.DepthStencil;
		}
	}

	[StructLayout(LayoutKind.Explicit)]
	public partial struct _Anonymous_e__Union
	{
		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Color"]/*' />
		[FieldOffset(0)]
		public unsafe fixed float Color[4];

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::DepthStencil"]/*' />
		[FieldOffset(0)]
		public DepthStencilValue DepthStencil;
	}
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RANGE"]/*' />
/// <unmanaged>D3D12_RANGE</unmanaged>
public partial struct Range
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RANGE::Begin"]/*' />
	public nuint Begin;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RANGE::End"]/*' />
	public nuint End;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RANGE_UINT64"]/*' />
/// <unmanaged>D3D12_RANGE_UINT64</unmanaged>
public partial struct RangeUInt64
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RANGE_UINT64::Begin"]/*' />
	public ulong Begin;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RANGE_UINT64::End"]/*' />
	public ulong End;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SUBRESOURCE_RANGE_UINT64"]/*' />
/// <unmanaged>D3D12_SUBRESOURCE_RANGE_UINT64</unmanaged>
public partial struct SubresourceRangeUInt64
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SUBRESOURCE_RANGE_UINT64::Subresource"]/*' />
	public uint Subresource;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SUBRESOURCE_RANGE_UINT64::Range"]/*' />
	public RangeUInt64 Range;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SUBRESOURCE_INFO"]/*' />
/// <unmanaged>D3D12_SUBRESOURCE_INFO</unmanaged>
public partial struct SubresourceInfo
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SUBRESOURCE_INFO::Offset"]/*' />
	public ulong Offset;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SUBRESOURCE_INFO::RowPitch"]/*' />
	public uint RowPitch;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SUBRESOURCE_INFO::DepthPitch"]/*' />
	public uint DepthPitch;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TILED_RESOURCE_COORDINATE"]/*' />
/// <unmanaged>D3D12_TILED_RESOURCE_COORDINATE</unmanaged>
public partial struct TiledResourceCoordinate
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TILED_RESOURCE_COORDINATE::X"]/*' />
	public uint X;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TILED_RESOURCE_COORDINATE::Y"]/*' />
	public uint Y;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TILED_RESOURCE_COORDINATE::Z"]/*' />
	public uint Z;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TILED_RESOURCE_COORDINATE::Subresource"]/*' />
	public uint Subresource;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TILE_REGION_SIZE"]/*' />
/// <unmanaged>D3D12_TILE_REGION_SIZE</unmanaged>
public partial struct TileRegionSize
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TILE_REGION_SIZE::NumTiles"]/*' />
	public uint NumTiles;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TILE_REGION_SIZE::UseBox"]/*' />
	public Bool32 UseBox;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TILE_REGION_SIZE::Width"]/*' />
	public uint Width;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TILE_REGION_SIZE::Height"]/*' />
	public ushort Height;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TILE_REGION_SIZE::Depth"]/*' />
	public ushort Depth;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SUBRESOURCE_TILING"]/*' />
/// <unmanaged>D3D12_SUBRESOURCE_TILING</unmanaged>
public partial struct SubresourceTiling
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SUBRESOURCE_TILING::WidthInTiles"]/*' />
	public uint WidthInTiles;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SUBRESOURCE_TILING::HeightInTiles"]/*' />
	public ushort HeightInTiles;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SUBRESOURCE_TILING::DepthInTiles"]/*' />
	public ushort DepthInTiles;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SUBRESOURCE_TILING::StartTileIndexInOverallResource"]/*' />
	public uint StartTileIndexInOverallResource;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TILE_SHAPE"]/*' />
/// <unmanaged>D3D12_TILE_SHAPE</unmanaged>
public partial struct TileShape
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TILE_SHAPE::WidthInTexels"]/*' />
	public uint WidthInTexels;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TILE_SHAPE::HeightInTexels"]/*' />
	public uint HeightInTexels;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TILE_SHAPE::DepthInTexels"]/*' />
	public uint DepthInTexels;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_PACKED_MIP_INFO"]/*' />
/// <unmanaged>D3D12_PACKED_MIP_INFO</unmanaged>
public partial struct PackedMipInfo
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_PACKED_MIP_INFO::NumStandardMips"]/*' />
	public byte NumStandardMips;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_PACKED_MIP_INFO::NumPackedMips"]/*' />
	public byte NumPackedMips;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_PACKED_MIP_INFO::NumTilesForPackedMips"]/*' />
	public uint NumTilesForPackedMips;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_PACKED_MIP_INFO::StartTileIndexInOverallResource"]/*' />
	public uint StartTileIndexInOverallResource;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_TRANSITION_BARRIER"]/*' />
/// <unmanaged>D3D12_RESOURCE_TRANSITION_BARRIER</unmanaged>
public partial struct ResourceTransitionBarrier
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_TRANSITION_BARRIER::pResource"]/*' />
	public unsafe ID3D12Resource* pResource;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_TRANSITION_BARRIER::Subresource"]/*' />
	public uint Subresource;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_TRANSITION_BARRIER::StateBefore"]/*' />
	public ResourceStates StateBefore;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_TRANSITION_BARRIER::StateAfter"]/*' />
	public ResourceStates StateAfter;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_ALIASING_BARRIER"]/*' />
/// <unmanaged>D3D12_RESOURCE_ALIASING_BARRIER</unmanaged>
public partial struct ResourceAliasingBarrier
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_ALIASING_BARRIER::pResourceBefore"]/*' />
	public unsafe ID3D12Resource* pResourceBefore;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_ALIASING_BARRIER::pResourceAfter"]/*' />
	public unsafe ID3D12Resource* pResourceAfter;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_UAV_BARRIER"]/*' />
/// <unmanaged>D3D12_RESOURCE_UAV_BARRIER</unmanaged>
public partial struct ResourceUavBarrier
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_UAV_BARRIER::pResource"]/*' />
	public unsafe ID3D12Resource* pResource;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_BARRIER"]/*' />
/// <unmanaged>D3D12_RESOURCE_BARRIER</unmanaged>
public partial struct ResourceBarrier
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_BARRIER::Type"]/*' />
	public ResourceBarrierType Type;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_BARRIER::Flags"]/*' />
	public ResourceBarrierFlags Flags;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RESOURCE_BARRIER::Anonymous"]/*' />
	public _Anonymous_e__Union Anonymous;

	[UnscopedRef]
	public ref ResourceTransitionBarrier Transition
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Transition;
		}
	}

	[UnscopedRef]
	public ref ResourceAliasingBarrier Aliasing
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Aliasing;
		}
	}

	[UnscopedRef]
	public ref ResourceUavBarrier UAV
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.UAV;
		}
	}

	[StructLayout(LayoutKind.Explicit)]
	public partial struct _Anonymous_e__Union
	{
		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Transition"]/*' />
		[FieldOffset(0)]
		public ResourceTransitionBarrier Transition;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Aliasing"]/*' />
		[FieldOffset(0)]
		public ResourceAliasingBarrier Aliasing;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::UAV"]/*' />
		[FieldOffset(0)]
		public ResourceUavBarrier UAV;
	}
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SUBRESOURCE_FOOTPRINT"]/*' />
/// <unmanaged>D3D12_SUBRESOURCE_FOOTPRINT</unmanaged>
public partial struct SubresourceFootprint
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SUBRESOURCE_FOOTPRINT::Format"]/*' />
	public Graphics.Dxgi.Common.Format Format;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SUBRESOURCE_FOOTPRINT::Width"]/*' />
	public uint Width;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SUBRESOURCE_FOOTPRINT::Height"]/*' />
	public uint Height;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SUBRESOURCE_FOOTPRINT::Depth"]/*' />
	public uint Depth;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SUBRESOURCE_FOOTPRINT::RowPitch"]/*' />
	public uint RowPitch;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_PLACED_SUBRESOURCE_FOOTPRINT"]/*' />
/// <unmanaged>D3D12_PLACED_SUBRESOURCE_FOOTPRINT</unmanaged>
public partial struct PlacedSubresourceFootprint
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_PLACED_SUBRESOURCE_FOOTPRINT::Offset"]/*' />
	public ulong Offset;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_PLACED_SUBRESOURCE_FOOTPRINT::Footprint"]/*' />
	public SubresourceFootprint Footprint;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEXTURE_COPY_LOCATION"]/*' />
/// <unmanaged>D3D12_TEXTURE_COPY_LOCATION</unmanaged>
public partial struct TextureCopyLocation
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEXTURE_COPY_LOCATION::pResource"]/*' />
	public unsafe ID3D12Resource* pResource;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEXTURE_COPY_LOCATION::Type"]/*' />
	public TextureCopyType Type;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEXTURE_COPY_LOCATION::Anonymous"]/*' />
	public _Anonymous_e__Union Anonymous;

	[UnscopedRef]
	public ref PlacedSubresourceFootprint PlacedFootprint
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.PlacedFootprint;
		}
	}

	[UnscopedRef]
	public ref uint SubresourceIndex
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.SubresourceIndex;
		}
	}

	[StructLayout(LayoutKind.Explicit)]
	public partial struct _Anonymous_e__Union
	{
		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::PlacedFootprint"]/*' />
		[FieldOffset(0)]
		public PlacedSubresourceFootprint PlacedFootprint;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::SubresourceIndex"]/*' />
		[FieldOffset(0)]
		public uint SubresourceIndex;
	}
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SAMPLE_POSITION"]/*' />
/// <unmanaged>D3D12_SAMPLE_POSITION</unmanaged>
public partial struct SamplePosition
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SAMPLE_POSITION::X"]/*' />
	public sbyte X;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SAMPLE_POSITION::Y"]/*' />
	public sbyte Y;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_VIEW_INSTANCE_LOCATION"]/*' />
/// <unmanaged>D3D12_VIEW_INSTANCE_LOCATION</unmanaged>
public partial struct ViewInstanceLocation
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_VIEW_INSTANCE_LOCATION::ViewportArrayIndex"]/*' />
	public uint ViewportArrayIndex;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_VIEW_INSTANCE_LOCATION::RenderTargetArrayIndex"]/*' />
	public uint RenderTargetArrayIndex;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_VIEW_INSTANCING_DESC"]/*' />
/// <unmanaged>D3D12_VIEW_INSTANCING_DESC</unmanaged>
public partial struct ViewInstancingDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_VIEW_INSTANCING_DESC::ViewInstanceCount"]/*' />
	public uint ViewInstanceCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_VIEW_INSTANCING_DESC::pViewInstanceLocations"]/*' />
	public unsafe ViewInstanceLocation* pViewInstanceLocations;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_VIEW_INSTANCING_DESC::Flags"]/*' />
	public ViewInstancingFlags Flags;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BUFFER_SRV"]/*' />
/// <unmanaged>D3D12_BUFFER_SRV</unmanaged>
public partial struct BufferSrv
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BUFFER_SRV::FirstElement"]/*' />
	public ulong FirstElement;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BUFFER_SRV::NumElements"]/*' />
	public uint NumElements;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BUFFER_SRV::StructureByteStride"]/*' />
	public uint StructureByteStride;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BUFFER_SRV::Flags"]/*' />
	public BufferSrvFlags Flags;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX1D_SRV"]/*' />
/// <unmanaged>D3D12_TEX1D_SRV</unmanaged>
public partial struct Texture1DSrv
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX1D_SRV::MostDetailedMip"]/*' />
	public uint MostDetailedMip;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX1D_SRV::MipLevels"]/*' />
	public uint MipLevels;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX1D_SRV::ResourceMinLODClamp"]/*' />
	public float ResourceMinLODClamp;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX1D_ARRAY_SRV"]/*' />
/// <unmanaged>D3D12_TEX1D_ARRAY_SRV</unmanaged>
public partial struct Texture1DArraySrv
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX1D_ARRAY_SRV::MostDetailedMip"]/*' />
	public uint MostDetailedMip;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX1D_ARRAY_SRV::MipLevels"]/*' />
	public uint MipLevels;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX1D_ARRAY_SRV::FirstArraySlice"]/*' />
	public uint FirstArraySlice;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX1D_ARRAY_SRV::ArraySize"]/*' />
	public uint ArraySize;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX1D_ARRAY_SRV::ResourceMinLODClamp"]/*' />
	public float ResourceMinLODClamp;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_SRV"]/*' />
/// <unmanaged>D3D12_TEX2D_SRV</unmanaged>
public partial struct Texture2DSrv
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_SRV::MostDetailedMip"]/*' />
	public uint MostDetailedMip;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_SRV::MipLevels"]/*' />
	public uint MipLevels;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_SRV::PlaneSlice"]/*' />
	public uint PlaneSlice;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_SRV::ResourceMinLODClamp"]/*' />
	public float ResourceMinLODClamp;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_ARRAY_SRV"]/*' />
/// <unmanaged>D3D12_TEX2D_ARRAY_SRV</unmanaged>
public partial struct Texture2DArraySrv
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_ARRAY_SRV::MostDetailedMip"]/*' />
	public uint MostDetailedMip;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_ARRAY_SRV::MipLevels"]/*' />
	public uint MipLevels;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_ARRAY_SRV::FirstArraySlice"]/*' />
	public uint FirstArraySlice;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_ARRAY_SRV::ArraySize"]/*' />
	public uint ArraySize;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_ARRAY_SRV::PlaneSlice"]/*' />
	public uint PlaneSlice;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_ARRAY_SRV::ResourceMinLODClamp"]/*' />
	public float ResourceMinLODClamp;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX3D_SRV"]/*' />
/// <unmanaged>D3D12_TEX3D_SRV</unmanaged>
public partial struct Texture3DSrv
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX3D_SRV::MostDetailedMip"]/*' />
	public uint MostDetailedMip;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX3D_SRV::MipLevels"]/*' />
	public uint MipLevels;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX3D_SRV::ResourceMinLODClamp"]/*' />
	public float ResourceMinLODClamp;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEXCUBE_SRV"]/*' />
/// <unmanaged>D3D12_TEXCUBE_SRV</unmanaged>
public partial struct TexureCubeSrv
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEXCUBE_SRV::MostDetailedMip"]/*' />
	public uint MostDetailedMip;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEXCUBE_SRV::MipLevels"]/*' />
	public uint MipLevels;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEXCUBE_SRV::ResourceMinLODClamp"]/*' />
	public float ResourceMinLODClamp;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEXCUBE_ARRAY_SRV"]/*' />
/// <unmanaged>D3D12_TEXCUBE_ARRAY_SRV</unmanaged>
public partial struct TexureCubeArraySrv
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEXCUBE_ARRAY_SRV::MostDetailedMip"]/*' />
	public uint MostDetailedMip;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEXCUBE_ARRAY_SRV::MipLevels"]/*' />
	public uint MipLevels;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEXCUBE_ARRAY_SRV::First2DArrayFace"]/*' />
	public uint First2DArrayFace;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEXCUBE_ARRAY_SRV::NumCubes"]/*' />
	public uint NumCubes;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEXCUBE_ARRAY_SRV::ResourceMinLODClamp"]/*' />
	public float ResourceMinLODClamp;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2DMS_SRV"]/*' />
/// <unmanaged>D3D12_TEX2DMS_SRV</unmanaged>
public partial struct Texture2DMsSrv
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2DMS_SRV::UnusedField_NothingToDefine"]/*' />
	public uint UnusedField_NothingToDefine;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2DMS_ARRAY_SRV"]/*' />
/// <unmanaged>D3D12_TEX2DMS_ARRAY_SRV</unmanaged>
public partial struct Texture2DMsArraySrv
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2DMS_ARRAY_SRV::FirstArraySlice"]/*' />
	public uint FirstArraySlice;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2DMS_ARRAY_SRV::ArraySize"]/*' />
	public uint ArraySize;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV"]/*' />
/// <unmanaged>D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV</unmanaged>
public partial struct RaytracingAccelerationStructureSrv
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV::Location"]/*' />
	public ulong Location;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_RESOURCE_VIEW_DESC"]/*' />
/// <unmanaged>D3D12_SHADER_RESOURCE_VIEW_DESC</unmanaged>
public partial struct ShaderResourceViewDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_RESOURCE_VIEW_DESC::Format"]/*' />
	public Graphics.Dxgi.Common.Format Format;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_RESOURCE_VIEW_DESC::ViewDimension"]/*' />
	public SrvDimension ViewDimension;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_RESOURCE_VIEW_DESC::Shader4ComponentMapping"]/*' />
	public uint Shader4ComponentMapping;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_RESOURCE_VIEW_DESC::Anonymous"]/*' />
	public _Anonymous_e__Union Anonymous;

	[UnscopedRef]
	public ref BufferSrv Buffer
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Buffer;
		}
	}

	[UnscopedRef]
	public ref Texture1DSrv Texture1D
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Texture1D;
		}
	}

	[UnscopedRef]
	public ref Texture1DArraySrv Texture1DArray
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Texture1DArray;
		}
	}

	[UnscopedRef]
	public ref Texture2DSrv Texture2D
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Texture2D;
		}
	}

	[UnscopedRef]
	public ref Texture2DArraySrv Texture2DArray
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Texture2DArray;
		}
	}

	[UnscopedRef]
	public ref Texture2DMsSrv Texture2DMS
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Texture2DMS;
		}
	}

	[UnscopedRef]
	public ref Texture2DMsArraySrv Texture2DMSArray
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Texture2DMSArray;
		}
	}

	[UnscopedRef]
	public ref Texture3DSrv Texture3D
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Texture3D;
		}
	}

	[UnscopedRef]
	public ref TexureCubeSrv TextureCube
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.TextureCube;
		}
	}

	[UnscopedRef]
	public ref TexureCubeArraySrv TextureCubeArray
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.TextureCubeArray;
		}
	}

	[UnscopedRef]
	public ref RaytracingAccelerationStructureSrv RaytracingAccelerationStructure
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.RaytracingAccelerationStructure;
		}
	}

	[StructLayout(LayoutKind.Explicit)]
	public partial struct _Anonymous_e__Union
	{
		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Buffer"]/*' />
		[FieldOffset(0)]
		public BufferSrv Buffer;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Texture1D"]/*' />
		[FieldOffset(0)]
		public Texture1DSrv Texture1D;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Texture1DArray"]/*' />
		[FieldOffset(0)]
		public Texture1DArraySrv Texture1DArray;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Texture2D"]/*' />
		[FieldOffset(0)]
		public Texture2DSrv Texture2D;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Texture2DArray"]/*' />
		[FieldOffset(0)]
		public Texture2DArraySrv Texture2DArray;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Texture2DMS"]/*' />
		[FieldOffset(0)]
		public Texture2DMsSrv Texture2DMS;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Texture2DMSArray"]/*' />
		[FieldOffset(0)]
		public Texture2DMsArraySrv Texture2DMSArray;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Texture3D"]/*' />
		[FieldOffset(0)]
		public Texture3DSrv Texture3D;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::TextureCube"]/*' />
		[FieldOffset(0)]
		public TexureCubeSrv TextureCube;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::TextureCubeArray"]/*' />
		[FieldOffset(0)]
		public TexureCubeArraySrv TextureCubeArray;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::RaytracingAccelerationStructure"]/*' />
		[FieldOffset(0)]
		public RaytracingAccelerationStructureSrv RaytracingAccelerationStructure;
	}
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_CONSTANT_BUFFER_VIEW_DESC"]/*' />
/// <unmanaged>D3D12_CONSTANT_BUFFER_VIEW_DESC</unmanaged>
public partial struct ConstantBufferViewDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_CONSTANT_BUFFER_VIEW_DESC::BufferLocation"]/*' />
	public ulong BufferLocation;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_CONSTANT_BUFFER_VIEW_DESC::SizeInBytes"]/*' />
	public uint SizeInBytes;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SAMPLER_DESC"]/*' />
/// <unmanaged>D3D12_SAMPLER_DESC</unmanaged>
public partial struct SamplerDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SAMPLER_DESC::Filter"]/*' />
	public Filter Filter;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SAMPLER_DESC::AddressU"]/*' />
	public TextureAddressMode AddressU;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SAMPLER_DESC::AddressV"]/*' />
	public TextureAddressMode AddressV;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SAMPLER_DESC::AddressW"]/*' />
	public TextureAddressMode AddressW;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SAMPLER_DESC::MipLODBias"]/*' />
	public float MipLODBias;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SAMPLER_DESC::MaxAnisotropy"]/*' />
	public uint MaxAnisotropy;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SAMPLER_DESC::ComparisonFunc"]/*' />
	public ComparisonFunction ComparisonFunc;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SAMPLER_DESC::BorderColor"]/*' />
	public unsafe fixed float BorderColor[4];

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SAMPLER_DESC::MinLOD"]/*' />
	public float MinLOD;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SAMPLER_DESC::MaxLOD"]/*' />
	public float MaxLOD;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BUFFER_UAV"]/*' />
/// <unmanaged>D3D12_BUFFER_UAV</unmanaged>
public partial struct BufferUav
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BUFFER_UAV::FirstElement"]/*' />
	public ulong FirstElement;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BUFFER_UAV::NumElements"]/*' />
	public uint NumElements;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BUFFER_UAV::StructureByteStride"]/*' />
	public uint StructureByteStride;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BUFFER_UAV::CounterOffsetInBytes"]/*' />
	public ulong CounterOffsetInBytes;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BUFFER_UAV::Flags"]/*' />
	public BufferUavFlags Flags;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX1D_UAV"]/*' />
/// <unmanaged>D3D12_TEX1D_UAV</unmanaged>
public partial struct Texture1DUav
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX1D_UAV::MipSlice"]/*' />
	public uint MipSlice;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX1D_ARRAY_UAV"]/*' />
/// <unmanaged>D3D12_TEX1D_ARRAY_UAV</unmanaged>
public partial struct Texture1DArrayUav
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX1D_ARRAY_UAV::MipSlice"]/*' />
	public uint MipSlice;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX1D_ARRAY_UAV::FirstArraySlice"]/*' />
	public uint FirstArraySlice;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX1D_ARRAY_UAV::ArraySize"]/*' />
	public uint ArraySize;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_UAV"]/*' />
/// <unmanaged>D3D12_TEX2D_UAV</unmanaged>
public partial struct Texture2DUav
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_UAV::MipSlice"]/*' />
	public uint MipSlice;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_UAV::PlaneSlice"]/*' />
	public uint PlaneSlice;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_ARRAY_UAV"]/*' />
/// <unmanaged>D3D12_TEX2D_ARRAY_UAV</unmanaged>
public partial struct Texture2DArrayUav
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_ARRAY_UAV::MipSlice"]/*' />
	public uint MipSlice;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_ARRAY_UAV::FirstArraySlice"]/*' />
	public uint FirstArraySlice;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_ARRAY_UAV::ArraySize"]/*' />
	public uint ArraySize;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_ARRAY_UAV::PlaneSlice"]/*' />
	public uint PlaneSlice;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX3D_UAV"]/*' />
/// <unmanaged>D3D12_TEX3D_UAV</unmanaged>
public partial struct Texture3DUav
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX3D_UAV::MipSlice"]/*' />
	public uint MipSlice;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX3D_UAV::FirstWSlice"]/*' />
	public uint FirstWSlice;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX3D_UAV::WSize"]/*' />
	public uint WSize;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_UNORDERED_ACCESS_VIEW_DESC"]/*' />
/// <unmanaged>D3D12_UNORDERED_ACCESS_VIEW_DESC</unmanaged>
public partial struct UnorderedAccessViewDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_UNORDERED_ACCESS_VIEW_DESC::Format"]/*' />
	public Graphics.Dxgi.Common.Format Format;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_UNORDERED_ACCESS_VIEW_DESC::ViewDimension"]/*' />
	public UavDimension ViewDimension;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_UNORDERED_ACCESS_VIEW_DESC::Anonymous"]/*' />
	public _Anonymous_e__Union Anonymous;

	[UnscopedRef]
	public ref BufferUav Buffer
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Buffer;
		}
	}

	[UnscopedRef]
	public ref Texture1DUav Texture1D
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Texture1D;
		}
	}

	[UnscopedRef]
	public ref Texture1DArrayUav Texture1DArray
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Texture1DArray;
		}
	}

	[UnscopedRef]
	public ref Texture2DUav Texture2D
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Texture2D;
		}
	}

	[UnscopedRef]
	public ref Texture2DArrayUav Texture2DArray
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Texture2DArray;
		}
	}

	[UnscopedRef]
	public ref Texture3DUav Texture3D
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Texture3D;
		}
	}

	[StructLayout(LayoutKind.Explicit)]
	public partial struct _Anonymous_e__Union
	{
		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Buffer"]/*' />
		[FieldOffset(0)]
		public BufferUav Buffer;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Texture1D"]/*' />
		[FieldOffset(0)]
		public Texture1DUav Texture1D;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Texture1DArray"]/*' />
		[FieldOffset(0)]
		public Texture1DArrayUav Texture1DArray;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Texture2D"]/*' />
		[FieldOffset(0)]
		public Texture2DUav Texture2D;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Texture2DArray"]/*' />
		[FieldOffset(0)]
		public Texture2DArrayUav Texture2DArray;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Texture3D"]/*' />
		[FieldOffset(0)]
		public Texture3DUav Texture3D;
	}
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BUFFER_RTV"]/*' />
/// <unmanaged>D3D12_BUFFER_RTV</unmanaged>
public partial struct BufferRtv
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BUFFER_RTV::FirstElement"]/*' />
	public ulong FirstElement;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BUFFER_RTV::NumElements"]/*' />
	public uint NumElements;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX1D_RTV"]/*' />
/// <unmanaged>D3D12_TEX1D_RTV</unmanaged>
public partial struct Texture1DRtv
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX1D_RTV::MipSlice"]/*' />
	public uint MipSlice;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX1D_ARRAY_RTV"]/*' />
/// <unmanaged>D3D12_TEX1D_ARRAY_RTV</unmanaged>
public partial struct Texture1DArrayRtv
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX1D_ARRAY_RTV::MipSlice"]/*' />
	public uint MipSlice;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX1D_ARRAY_RTV::FirstArraySlice"]/*' />
	public uint FirstArraySlice;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX1D_ARRAY_RTV::ArraySize"]/*' />
	public uint ArraySize;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_RTV"]/*' />
/// <unmanaged>D3D12_TEX2D_RTV</unmanaged>
public partial struct Texture2DRtv
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_RTV::MipSlice"]/*' />
	public uint MipSlice;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_RTV::PlaneSlice"]/*' />
	public uint PlaneSlice;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2DMS_RTV"]/*' />
/// <unmanaged>D3D12_TEX2DMS_RTV</unmanaged>
public partial struct Texture2DMsRtv
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2DMS_RTV::UnusedField_NothingToDefine"]/*' />
	public uint UnusedField_NothingToDefine;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_ARRAY_RTV"]/*' />
/// <unmanaged>D3D12_TEX2D_ARRAY_RTV</unmanaged>
public partial struct Texture2DArrayRtv
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_ARRAY_RTV::MipSlice"]/*' />
	public uint MipSlice;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_ARRAY_RTV::FirstArraySlice"]/*' />
	public uint FirstArraySlice;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_ARRAY_RTV::ArraySize"]/*' />
	public uint ArraySize;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_ARRAY_RTV::PlaneSlice"]/*' />
	public uint PlaneSlice;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2DMS_ARRAY_RTV"]/*' />
/// <unmanaged>D3D12_TEX2DMS_ARRAY_RTV</unmanaged>
public partial struct Texture2DMsArrayRtv
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2DMS_ARRAY_RTV::FirstArraySlice"]/*' />
	public uint FirstArraySlice;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2DMS_ARRAY_RTV::ArraySize"]/*' />
	public uint ArraySize;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX3D_RTV"]/*' />
/// <unmanaged>D3D12_TEX3D_RTV</unmanaged>
public partial struct Texture3DRtv
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX3D_RTV::MipSlice"]/*' />
	public uint MipSlice;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX3D_RTV::FirstWSlice"]/*' />
	public uint FirstWSlice;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX3D_RTV::WSize"]/*' />
	public uint WSize;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_TARGET_VIEW_DESC"]/*' />
/// <unmanaged>D3D12_RENDER_TARGET_VIEW_DESC</unmanaged>
public partial struct RenderTargetViewDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_TARGET_VIEW_DESC::Format"]/*' />
	public Graphics.Dxgi.Common.Format Format;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_TARGET_VIEW_DESC::ViewDimension"]/*' />
	public RtvDimension ViewDimension;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_TARGET_VIEW_DESC::Anonymous"]/*' />
	public _Anonymous_e__Union Anonymous;

	[UnscopedRef]
	public ref BufferRtv Buffer
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Buffer;
		}
	}

	[UnscopedRef]
	public ref Texture1DRtv Texture1D
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Texture1D;
		}
	}

	[UnscopedRef]
	public ref Texture1DArrayRtv Texture1DArray
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Texture1DArray;
		}
	}

	[UnscopedRef]
	public ref Texture2DRtv Texture2D
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Texture2D;
		}
	}

	[UnscopedRef]
	public ref Texture2DArrayRtv Texture2DArray
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Texture2DArray;
		}
	}

	[UnscopedRef]
	public ref Texture2DMsRtv Texture2DMS
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Texture2DMS;
		}
	}

	[UnscopedRef]
	public ref Texture2DMsArrayRtv Texture2DMSArray
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Texture2DMSArray;
		}
	}

	[UnscopedRef]
	public ref Texture3DRtv Texture3D
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Texture3D;
		}
	}

	[StructLayout(LayoutKind.Explicit)]
	public partial struct _Anonymous_e__Union
	{
		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Buffer"]/*' />
		[FieldOffset(0)]
		public BufferRtv Buffer;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Texture1D"]/*' />
		[FieldOffset(0)]
		public Texture1DRtv Texture1D;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Texture1DArray"]/*' />
		[FieldOffset(0)]
		public Texture1DArrayRtv Texture1DArray;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Texture2D"]/*' />
		[FieldOffset(0)]
		public Texture2DRtv Texture2D;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Texture2DArray"]/*' />
		[FieldOffset(0)]
		public Texture2DArrayRtv Texture2DArray;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Texture2DMS"]/*' />
		[FieldOffset(0)]
		public Texture2DMsRtv Texture2DMS;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Texture2DMSArray"]/*' />
		[FieldOffset(0)]
		public Texture2DMsArrayRtv Texture2DMSArray;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Texture3D"]/*' />
		[FieldOffset(0)]
		public Texture3DRtv Texture3D;
	}
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX1D_DSV"]/*' />
/// <unmanaged>D3D12_TEX1D_DSV</unmanaged>
public partial struct Texture1DDsv
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX1D_DSV::MipSlice"]/*' />
	public uint MipSlice;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX1D_ARRAY_DSV"]/*' />
/// <unmanaged>D3D12_TEX1D_ARRAY_DSV</unmanaged>
public partial struct Texture1DArrayDsv
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX1D_ARRAY_DSV::MipSlice"]/*' />
	public uint MipSlice;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX1D_ARRAY_DSV::FirstArraySlice"]/*' />
	public uint FirstArraySlice;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX1D_ARRAY_DSV::ArraySize"]/*' />
	public uint ArraySize;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_DSV"]/*' />
/// <unmanaged>D3D12_TEX2D_DSV</unmanaged>
public partial struct Texture2DDsv
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_DSV::MipSlice"]/*' />
	public uint MipSlice;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_ARRAY_DSV"]/*' />
/// <unmanaged>D3D12_TEX2D_ARRAY_DSV</unmanaged>
public partial struct Texture2DArrayDsv
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_ARRAY_DSV::MipSlice"]/*' />
	public uint MipSlice;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_ARRAY_DSV::FirstArraySlice"]/*' />
	public uint FirstArraySlice;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2D_ARRAY_DSV::ArraySize"]/*' />
	public uint ArraySize;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2DMS_DSV"]/*' />
/// <unmanaged>D3D12_TEX2DMS_DSV</unmanaged>
public partial struct Texture2DMsDsv
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2DMS_DSV::UnusedField_NothingToDefine"]/*' />
	public uint UnusedField_NothingToDefine;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2DMS_ARRAY_DSV"]/*' />
/// <unmanaged>D3D12_TEX2DMS_ARRAY_DSV</unmanaged>
public partial struct Texture2DMsArrayDsv
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2DMS_ARRAY_DSV::FirstArraySlice"]/*' />
	public uint FirstArraySlice;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_TEX2DMS_ARRAY_DSV::ArraySize"]/*' />
	public uint ArraySize;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_VIEW_DESC"]/*' />
/// <unmanaged>D3D12_DEPTH_STENCIL_VIEW_DESC</unmanaged>
public partial struct DepthStencilViewDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_VIEW_DESC::Format"]/*' />
	public Graphics.Dxgi.Common.Format Format;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_VIEW_DESC::ViewDimension"]/*' />
	public DsvDimension ViewDimension;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_VIEW_DESC::Flags"]/*' />
	public DsvFlags Flags;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEPTH_STENCIL_VIEW_DESC::Anonymous"]/*' />
	public _Anonymous_e__Union Anonymous;

	[UnscopedRef]
	public ref Texture1DDsv Texture1D
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Texture1D;
		}
	}

	[UnscopedRef]
	public ref Texture1DArrayDsv Texture1DArray
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Texture1DArray;
		}
	}

	[UnscopedRef]
	public ref Texture2DDsv Texture2D
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Texture2D;
		}
	}

	[UnscopedRef]
	public ref Texture2DArrayDsv Texture2DArray
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Texture2DArray;
		}
	}

	[UnscopedRef]
	public ref Texture2DMsDsv Texture2DMS
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Texture2DMS;
		}
	}

	[UnscopedRef]
	public ref Texture2DMsArrayDsv Texture2DMSArray
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Texture2DMSArray;
		}
	}

	[StructLayout(LayoutKind.Explicit)]
	public partial struct _Anonymous_e__Union
	{
		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Texture1D"]/*' />
		[FieldOffset(0)]
		public Texture1DDsv Texture1D;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Texture1DArray"]/*' />
		[FieldOffset(0)]
		public Texture1DArrayDsv Texture1DArray;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Texture2D"]/*' />
		[FieldOffset(0)]
		public Texture2DDsv Texture2D;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Texture2DArray"]/*' />
		[FieldOffset(0)]
		public Texture2DArrayDsv Texture2DArray;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Texture2DMS"]/*' />
		[FieldOffset(0)]
		public Texture2DMsDsv Texture2DMS;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Texture2DMSArray"]/*' />
		[FieldOffset(0)]
		public Texture2DMsArrayDsv Texture2DMSArray;
	}
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DESCRIPTOR_HEAP_DESC"]/*' />
/// <unmanaged>D3D12_DESCRIPTOR_HEAP_DESC</unmanaged>
public partial struct DescriptorHeapDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DESCRIPTOR_HEAP_DESC::Type"]/*' />
	public DescriptorHeapType Type;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DESCRIPTOR_HEAP_DESC::NumDescriptors"]/*' />
	public uint NumDescriptors;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DESCRIPTOR_HEAP_DESC::Flags"]/*' />
	public DescriptorHeapFlags Flags;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DESCRIPTOR_HEAP_DESC::NodeMask"]/*' />
	public uint NodeMask;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DESCRIPTOR_RANGE"]/*' />
/// <unmanaged>D3D12_DESCRIPTOR_RANGE</unmanaged>
public partial struct DescriptorRange
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DESCRIPTOR_RANGE::RangeType"]/*' />
	public DescriptorRangeType RangeType;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DESCRIPTOR_RANGE::NumDescriptors"]/*' />
	public uint NumDescriptors;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DESCRIPTOR_RANGE::BaseShaderRegister"]/*' />
	public uint BaseShaderRegister;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DESCRIPTOR_RANGE::RegisterSpace"]/*' />
	public uint RegisterSpace;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DESCRIPTOR_RANGE::OffsetInDescriptorsFromTableStart"]/*' />
	public uint OffsetInDescriptorsFromTableStart;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_DESCRIPTOR_TABLE"]/*' />
/// <unmanaged>D3D12_ROOT_DESCRIPTOR_TABLE</unmanaged>
public partial struct RootDescriptorTable
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_DESCRIPTOR_TABLE::NumDescriptorRanges"]/*' />
	public uint NumDescriptorRanges;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_DESCRIPTOR_TABLE::pDescriptorRanges"]/*' />
	public unsafe DescriptorRange* pDescriptorRanges;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_CONSTANTS"]/*' />
/// <unmanaged>D3D12_ROOT_CONSTANTS</unmanaged>
public partial struct RootConstants
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_CONSTANTS::ShaderRegister"]/*' />
	public uint ShaderRegister;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_CONSTANTS::RegisterSpace"]/*' />
	public uint RegisterSpace;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_CONSTANTS::Num32BitValues"]/*' />
	public uint Num32BitValues;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_DESCRIPTOR"]/*' />
/// <unmanaged>D3D12_ROOT_DESCRIPTOR</unmanaged>
public partial struct RootDescriptor
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_DESCRIPTOR::ShaderRegister"]/*' />
	public uint ShaderRegister;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_DESCRIPTOR::RegisterSpace"]/*' />
	public uint RegisterSpace;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_PARAMETER"]/*' />
/// <unmanaged>D3D12_ROOT_PARAMETER</unmanaged>
public partial struct RootParameter
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_PARAMETER::ParameterType"]/*' />
	public RootParameterType ParameterType;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_PARAMETER::Anonymous"]/*' />
	public _Anonymous_e__Union Anonymous;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_PARAMETER::ShaderVisibility"]/*' />
	public ShaderVisibility ShaderVisibility;

	[UnscopedRef]
	public ref RootDescriptorTable DescriptorTable
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.DescriptorTable;
		}
	}

	[UnscopedRef]
	public ref RootConstants Constants
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Constants;
		}
	}

	[UnscopedRef]
	public ref RootDescriptor Descriptor
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Descriptor;
		}
	}

	[StructLayout(LayoutKind.Explicit)]
	public partial struct _Anonymous_e__Union
	{
		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::DescriptorTable"]/*' />
		[FieldOffset(0)]
		public RootDescriptorTable DescriptorTable;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Constants"]/*' />
		[FieldOffset(0)]
		public RootConstants Constants;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Descriptor"]/*' />
		[FieldOffset(0)]
		public RootDescriptor Descriptor;
	}
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STATIC_SAMPLER_DESC"]/*' />
/// <unmanaged>D3D12_STATIC_SAMPLER_DESC</unmanaged>
public partial struct StaticSamplerDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STATIC_SAMPLER_DESC::Filter"]/*' />
	public Filter Filter;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STATIC_SAMPLER_DESC::AddressU"]/*' />
	public TextureAddressMode AddressU;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STATIC_SAMPLER_DESC::AddressV"]/*' />
	public TextureAddressMode AddressV;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STATIC_SAMPLER_DESC::AddressW"]/*' />
	public TextureAddressMode AddressW;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STATIC_SAMPLER_DESC::MipLODBias"]/*' />
	public float MipLODBias;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STATIC_SAMPLER_DESC::MaxAnisotropy"]/*' />
	public uint MaxAnisotropy;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STATIC_SAMPLER_DESC::ComparisonFunc"]/*' />
	public ComparisonFunction ComparisonFunc;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STATIC_SAMPLER_DESC::BorderColor"]/*' />
	public StaticBorderColor BorderColor;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STATIC_SAMPLER_DESC::MinLOD"]/*' />
	public float MinLOD;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STATIC_SAMPLER_DESC::MaxLOD"]/*' />
	public float MaxLOD;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STATIC_SAMPLER_DESC::ShaderRegister"]/*' />
	public uint ShaderRegister;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STATIC_SAMPLER_DESC::RegisterSpace"]/*' />
	public uint RegisterSpace;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STATIC_SAMPLER_DESC::ShaderVisibility"]/*' />
	public ShaderVisibility ShaderVisibility;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_SIGNATURE_DESC"]/*' />
/// <unmanaged>D3D12_ROOT_SIGNATURE_DESC</unmanaged>
public partial struct RootSignatureDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_SIGNATURE_DESC::NumParameters"]/*' />
	public uint NumParameters;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_SIGNATURE_DESC::pParameters"]/*' />
	public unsafe RootParameter* pParameters;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_SIGNATURE_DESC::NumStaticSamplers"]/*' />
	public uint NumStaticSamplers;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_SIGNATURE_DESC::pStaticSamplers"]/*' />
	public unsafe StaticSamplerDescription* pStaticSamplers;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_SIGNATURE_DESC::Flags"]/*' />
	public RootSignatureFlags Flags;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DESCRIPTOR_RANGE1"]/*' />
/// <unmanaged>D3D12_DESCRIPTOR_RANGE1</unmanaged>
public partial struct DescriptorRange1
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DESCRIPTOR_RANGE1::RangeType"]/*' />
	public DescriptorRangeType RangeType;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DESCRIPTOR_RANGE1::NumDescriptors"]/*' />
	public uint NumDescriptors;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DESCRIPTOR_RANGE1::BaseShaderRegister"]/*' />
	public uint BaseShaderRegister;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DESCRIPTOR_RANGE1::RegisterSpace"]/*' />
	public uint RegisterSpace;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DESCRIPTOR_RANGE1::Flags"]/*' />
	public DescriptorRangeFlags Flags;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DESCRIPTOR_RANGE1::OffsetInDescriptorsFromTableStart"]/*' />
	public uint OffsetInDescriptorsFromTableStart;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_DESCRIPTOR_TABLE1"]/*' />
/// <unmanaged>D3D12_ROOT_DESCRIPTOR_TABLE1</unmanaged>
public partial struct RootDescriptorTable1
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_DESCRIPTOR_TABLE1::NumDescriptorRanges"]/*' />
	public uint NumDescriptorRanges;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_DESCRIPTOR_TABLE1::pDescriptorRanges"]/*' />
	public unsafe DescriptorRange1* pDescriptorRanges;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_DESCRIPTOR1"]/*' />
/// <unmanaged>D3D12_ROOT_DESCRIPTOR1</unmanaged>
public partial struct RootDescriptor1
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_DESCRIPTOR1::ShaderRegister"]/*' />
	public uint ShaderRegister;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_DESCRIPTOR1::RegisterSpace"]/*' />
	public uint RegisterSpace;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_DESCRIPTOR1::Flags"]/*' />
	public RootDescriptorFlags Flags;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_PARAMETER1"]/*' />
/// <unmanaged>D3D12_ROOT_PARAMETER1</unmanaged>
public partial struct RootParameter1
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_PARAMETER1::ParameterType"]/*' />
	public RootParameterType ParameterType;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_PARAMETER1::Anonymous"]/*' />
	public _Anonymous_e__Union Anonymous;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_PARAMETER1::ShaderVisibility"]/*' />
	public ShaderVisibility ShaderVisibility;

	[UnscopedRef]
	public ref RootDescriptorTable1 DescriptorTable
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.DescriptorTable;
		}
	}

	[UnscopedRef]
	public ref RootConstants Constants
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Constants;
		}
	}

	[UnscopedRef]
	public ref RootDescriptor1 Descriptor
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Descriptor;
		}
	}

	[StructLayout(LayoutKind.Explicit)]
	public partial struct _Anonymous_e__Union
	{
		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::DescriptorTable"]/*' />
		[FieldOffset(0)]
		public RootDescriptorTable1 DescriptorTable;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Constants"]/*' />
		[FieldOffset(0)]
		public RootConstants Constants;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Descriptor"]/*' />
		[FieldOffset(0)]
		public RootDescriptor1 Descriptor;
	}
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_SIGNATURE_DESC1"]/*' />
/// <unmanaged>D3D12_ROOT_SIGNATURE_DESC1</unmanaged>
public partial struct RootSignatureDescription1
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_SIGNATURE_DESC1::NumParameters"]/*' />
	public uint NumParameters;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_SIGNATURE_DESC1::pParameters"]/*' />
	public unsafe RootParameter1* pParameters;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_SIGNATURE_DESC1::NumStaticSamplers"]/*' />
	public uint NumStaticSamplers;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_SIGNATURE_DESC1::pStaticSamplers"]/*' />
	public unsafe StaticSamplerDescription* pStaticSamplers;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_ROOT_SIGNATURE_DESC1::Flags"]/*' />
	public RootSignatureFlags Flags;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_VERSIONED_ROOT_SIGNATURE_DESC"]/*' />
/// <unmanaged>D3D12_VERSIONED_ROOT_SIGNATURE_DESC</unmanaged>
public partial struct VersionedRootSignatureDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_VERSIONED_ROOT_SIGNATURE_DESC::Version"]/*' />
	public RootSignatureVersion Version;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_VERSIONED_ROOT_SIGNATURE_DESC::Anonymous"]/*' />
	public _Anonymous_e__Union Anonymous;

	[UnscopedRef]
	public ref RootSignatureDescription Desc_1_0
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Desc_1_0;
		}
	}

	[UnscopedRef]
	public ref RootSignatureDescription1 Desc_1_1
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Desc_1_1;
		}
	}

	[StructLayout(LayoutKind.Explicit)]
	public partial struct _Anonymous_e__Union
	{
		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Desc_1_0"]/*' />
		[FieldOffset(0)]
		public RootSignatureDescription Desc_1_0;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Desc_1_1"]/*' />
		[FieldOffset(0)]
		public RootSignatureDescription1 Desc_1_1;
	}
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_CPU_DESCRIPTOR_HANDLE"]/*' />
/// <unmanaged>D3D12_CPU_DESCRIPTOR_HANDLE</unmanaged>
public partial struct CpuDescriptorHandle
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_CPU_DESCRIPTOR_HANDLE::ptr"]/*' />
	public nuint ptr;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GPU_DESCRIPTOR_HANDLE"]/*' />
/// <unmanaged>D3D12_GPU_DESCRIPTOR_HANDLE</unmanaged>
public partial struct GpuDescriptorHandle
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GPU_DESCRIPTOR_HANDLE::ptr"]/*' />
	public ulong ptr;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DISCARD_REGION"]/*' />
/// <unmanaged>D3D12_DISCARD_REGION</unmanaged>
public partial struct DiscardRegion
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DISCARD_REGION::NumRects"]/*' />
	public uint NumRects;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DISCARD_REGION::pRects"]/*' />
	public unsafe RawRect* pRects;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DISCARD_REGION::FirstSubresource"]/*' />
	public uint FirstSubresource;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DISCARD_REGION::NumSubresources"]/*' />
	public uint NumSubresources;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_HEAP_DESC"]/*' />
/// <unmanaged>D3D12_QUERY_HEAP_DESC</unmanaged>
public partial struct QueryHeapDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_HEAP_DESC::Type"]/*' />
	public QueryHeapType Type;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_HEAP_DESC::Count"]/*' />
	public uint Count;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_HEAP_DESC::NodeMask"]/*' />
	public uint NodeMask;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_DATA_PIPELINE_STATISTICS"]/*' />
/// <unmanaged>D3D12_QUERY_DATA_PIPELINE_STATISTICS</unmanaged>
public partial struct QueryDataPipelineStatistics
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_DATA_PIPELINE_STATISTICS::IAVertices"]/*' />
	public ulong IAVertices;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_DATA_PIPELINE_STATISTICS::IAPrimitives"]/*' />
	public ulong IAPrimitives;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_DATA_PIPELINE_STATISTICS::VSInvocations"]/*' />
	public ulong VSInvocations;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_DATA_PIPELINE_STATISTICS::GSInvocations"]/*' />
	public ulong GSInvocations;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_DATA_PIPELINE_STATISTICS::GSPrimitives"]/*' />
	public ulong GSPrimitives;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_DATA_PIPELINE_STATISTICS::CInvocations"]/*' />
	public ulong CInvocations;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_DATA_PIPELINE_STATISTICS::CPrimitives"]/*' />
	public ulong CPrimitives;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_DATA_PIPELINE_STATISTICS::PSInvocations"]/*' />
	public ulong PSInvocations;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_DATA_PIPELINE_STATISTICS::HSInvocations"]/*' />
	public ulong HSInvocations;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_DATA_PIPELINE_STATISTICS::DSInvocations"]/*' />
	public ulong DSInvocations;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_DATA_PIPELINE_STATISTICS::CSInvocations"]/*' />
	public ulong CSInvocations;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_DATA_PIPELINE_STATISTICS1"]/*' />
/// <unmanaged>D3D12_QUERY_DATA_PIPELINE_STATISTICS1</unmanaged>
public partial struct QueryDataPipelineStatistics1
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_DATA_PIPELINE_STATISTICS1::IAVertices"]/*' />
	public ulong IAVertices;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_DATA_PIPELINE_STATISTICS1::IAPrimitives"]/*' />
	public ulong IAPrimitives;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_DATA_PIPELINE_STATISTICS1::VSInvocations"]/*' />
	public ulong VSInvocations;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_DATA_PIPELINE_STATISTICS1::GSInvocations"]/*' />
	public ulong GSInvocations;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_DATA_PIPELINE_STATISTICS1::GSPrimitives"]/*' />
	public ulong GSPrimitives;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_DATA_PIPELINE_STATISTICS1::CInvocations"]/*' />
	public ulong CInvocations;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_DATA_PIPELINE_STATISTICS1::CPrimitives"]/*' />
	public ulong CPrimitives;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_DATA_PIPELINE_STATISTICS1::PSInvocations"]/*' />
	public ulong PSInvocations;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_DATA_PIPELINE_STATISTICS1::HSInvocations"]/*' />
	public ulong HSInvocations;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_DATA_PIPELINE_STATISTICS1::DSInvocations"]/*' />
	public ulong DSInvocations;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_DATA_PIPELINE_STATISTICS1::CSInvocations"]/*' />
	public ulong CSInvocations;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_DATA_PIPELINE_STATISTICS1::ASInvocations"]/*' />
	public ulong ASInvocations;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_DATA_PIPELINE_STATISTICS1::MSInvocations"]/*' />
	public ulong MSInvocations;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_DATA_PIPELINE_STATISTICS1::MSPrimitives"]/*' />
	public ulong MSPrimitives;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_DATA_SO_STATISTICS"]/*' />
/// <unmanaged>D3D12_QUERY_DATA_SO_STATISTICS</unmanaged>
public partial struct QueryDataSOStatistics
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_DATA_SO_STATISTICS::NumPrimitivesWritten"]/*' />
	public ulong NumPrimitivesWritten;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_QUERY_DATA_SO_STATISTICS::PrimitivesStorageNeeded"]/*' />
	public ulong PrimitivesStorageNeeded;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STREAM_OUTPUT_BUFFER_VIEW"]/*' />
/// <unmanaged>D3D12_STREAM_OUTPUT_BUFFER_VIEW</unmanaged>
public partial struct StreamOutputBufferView
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STREAM_OUTPUT_BUFFER_VIEW::BufferLocation"]/*' />
	public ulong BufferLocation;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STREAM_OUTPUT_BUFFER_VIEW::SizeInBytes"]/*' />
	public ulong SizeInBytes;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STREAM_OUTPUT_BUFFER_VIEW::BufferFilledSizeLocation"]/*' />
	public ulong BufferFilledSizeLocation;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRAW_ARGUMENTS"]/*' />
/// <unmanaged>D3D12_DRAW_ARGUMENTS</unmanaged>
public partial struct DrawArguments
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRAW_ARGUMENTS::VertexCountPerInstance"]/*' />
	public uint VertexCountPerInstance;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRAW_ARGUMENTS::InstanceCount"]/*' />
	public uint InstanceCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRAW_ARGUMENTS::StartVertexLocation"]/*' />
	public uint StartVertexLocation;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRAW_ARGUMENTS::StartInstanceLocation"]/*' />
	public uint StartInstanceLocation;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRAW_INDEXED_ARGUMENTS"]/*' />
/// <unmanaged>D3D12_DRAW_INDEXED_ARGUMENTS</unmanaged>
public partial struct DrawIndexedArguments
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRAW_INDEXED_ARGUMENTS::IndexCountPerInstance"]/*' />
	public uint IndexCountPerInstance;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRAW_INDEXED_ARGUMENTS::InstanceCount"]/*' />
	public uint InstanceCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRAW_INDEXED_ARGUMENTS::StartIndexLocation"]/*' />
	public uint StartIndexLocation;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRAW_INDEXED_ARGUMENTS::BaseVertexLocation"]/*' />
	public int BaseVertexLocation;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRAW_INDEXED_ARGUMENTS::StartInstanceLocation"]/*' />
	public uint StartInstanceLocation;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DISPATCH_ARGUMENTS"]/*' />
/// <unmanaged>D3D12_DISPATCH_ARGUMENTS</unmanaged>
public partial struct DispatchArguments
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DISPATCH_ARGUMENTS::ThreadGroupCountX"]/*' />
	public uint ThreadGroupCountX;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DISPATCH_ARGUMENTS::ThreadGroupCountY"]/*' />
	public uint ThreadGroupCountY;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DISPATCH_ARGUMENTS::ThreadGroupCountZ"]/*' />
	public uint ThreadGroupCountZ;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_VERTEX_BUFFER_VIEW"]/*' />
/// <unmanaged>D3D12_VERTEX_BUFFER_VIEW</unmanaged>
public partial struct VertexBufferView
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_VERTEX_BUFFER_VIEW::BufferLocation"]/*' />
	public ulong BufferLocation;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_VERTEX_BUFFER_VIEW::SizeInBytes"]/*' />
	public uint SizeInBytes;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_VERTEX_BUFFER_VIEW::StrideInBytes"]/*' />
	public uint StrideInBytes;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_INDEX_BUFFER_VIEW"]/*' />
/// <unmanaged>D3D12_INDEX_BUFFER_VIEW</unmanaged>
public partial struct IndexBufferView
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_INDEX_BUFFER_VIEW::BufferLocation"]/*' />
	public ulong BufferLocation;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_INDEX_BUFFER_VIEW::SizeInBytes"]/*' />
	public uint SizeInBytes;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_INDEX_BUFFER_VIEW::Format"]/*' />
	public Graphics.Dxgi.Common.Format Format;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_INDIRECT_ARGUMENT_DESC"]/*' />
/// <unmanaged>D3D12_INDIRECT_ARGUMENT_DESC</unmanaged>
public partial struct IndirectArgumentDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_INDIRECT_ARGUMENT_DESC::Type"]/*' />
	public IndirectArgumentType Type;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_INDIRECT_ARGUMENT_DESC::Anonymous"]/*' />
	public _Anonymous_e__Union Anonymous;

	[UnscopedRef]
	public ref _Anonymous_e__Union._VertexBuffer_e__Struct VertexBuffer
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.VertexBuffer;
		}
	}

	[UnscopedRef]
	public ref _Anonymous_e__Union._Constant_e__Struct Constant
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Constant;
		}
	}

	[UnscopedRef]
	public ref _Anonymous_e__Union._ConstantBufferView_e__Struct ConstantBufferView
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.ConstantBufferView;
		}
	}

	[UnscopedRef]
	public ref _Anonymous_e__Union._ShaderResourceView_e__Struct ShaderResourceView
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.ShaderResourceView;
		}
	}

	[UnscopedRef]
	public ref _Anonymous_e__Union._UnorderedAccessView_e__Struct UnorderedAccessView
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.UnorderedAccessView;
		}
	}

	[StructLayout(LayoutKind.Explicit)]
	public partial struct _Anonymous_e__Union
	{
		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::VertexBuffer"]/*' />
		[FieldOffset(0)]
		public _Anonymous_e__Union._VertexBuffer_e__Struct VertexBuffer;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Constant"]/*' />
		[FieldOffset(0)]
		public _Anonymous_e__Union._Constant_e__Struct Constant;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::ConstantBufferView"]/*' />
		[FieldOffset(0)]
		public _Anonymous_e__Union._ConstantBufferView_e__Struct ConstantBufferView;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::ShaderResourceView"]/*' />
		[FieldOffset(0)]
		public _Anonymous_e__Union._ShaderResourceView_e__Struct ShaderResourceView;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::UnorderedAccessView"]/*' />
		[FieldOffset(0)]
		public _Anonymous_e__Union._UnorderedAccessView_e__Struct UnorderedAccessView;

		public partial struct _ShaderResourceView_e__Struct
		{
			/// <include file='../Direct3D12.xml' path='doc/member[@name="_ShaderResourceView_e__Struct::RootParameterIndex"]/*' />
			public uint RootParameterIndex;
		}
		public partial struct _Constant_e__Struct
		{
			/// <include file='../Direct3D12.xml' path='doc/member[@name="_Constant_e__Struct::RootParameterIndex"]/*' />
			public uint RootParameterIndex;

			/// <include file='../Direct3D12.xml' path='doc/member[@name="_Constant_e__Struct::DestOffsetIn32BitValues"]/*' />
			public uint DestOffsetIn32BitValues;

			/// <include file='../Direct3D12.xml' path='doc/member[@name="_Constant_e__Struct::Num32BitValuesToSet"]/*' />
			public uint Num32BitValuesToSet;
		}
		public partial struct _UnorderedAccessView_e__Struct
		{
			/// <include file='../Direct3D12.xml' path='doc/member[@name="_UnorderedAccessView_e__Struct::RootParameterIndex"]/*' />
			public uint RootParameterIndex;
		}
		public partial struct _VertexBuffer_e__Struct
		{
			/// <include file='../Direct3D12.xml' path='doc/member[@name="_VertexBuffer_e__Struct::Slot"]/*' />
			public uint Slot;
		}
		public partial struct _ConstantBufferView_e__Struct
		{
			/// <include file='../Direct3D12.xml' path='doc/member[@name="_ConstantBufferView_e__Struct::RootParameterIndex"]/*' />
			public uint RootParameterIndex;
		}
	}
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_COMMAND_SIGNATURE_DESC"]/*' />
/// <unmanaged>D3D12_COMMAND_SIGNATURE_DESC</unmanaged>
public partial struct CommandSignatureDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_COMMAND_SIGNATURE_DESC::ByteStride"]/*' />
	public uint ByteStride;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_COMMAND_SIGNATURE_DESC::NumArgumentDescs"]/*' />
	public uint NumArgumentDescs;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_COMMAND_SIGNATURE_DESC::pArgumentDescs"]/*' />
	public unsafe IndirectArgumentDescription* pArgumentDescs;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_COMMAND_SIGNATURE_DESC::NodeMask"]/*' />
	public uint NodeMask;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_WRITEBUFFERIMMEDIATE_PARAMETER"]/*' />
/// <unmanaged>D3D12_WRITEBUFFERIMMEDIATE_PARAMETER</unmanaged>
public partial struct WriteBufferImmediateParameter
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_WRITEBUFFERIMMEDIATE_PARAMETER::Dest"]/*' />
	public ulong Dest;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_WRITEBUFFERIMMEDIATE_PARAMETER::Value"]/*' />
	public uint Value;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT"]/*' />
/// <unmanaged>D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT</unmanaged>
public partial struct FeatureDataProtectedResourceSessionSupport
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT::NodeIndex"]/*' />
	public uint NodeIndex;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT::Support"]/*' />
	public ProtectedResourceSessionSupportFlags Support;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_PROTECTED_RESOURCE_SESSION_DESC"]/*' />
/// <unmanaged>D3D12_PROTECTED_RESOURCE_SESSION_DESC</unmanaged>
public partial struct ProtectedResourceSessionDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_PROTECTED_RESOURCE_SESSION_DESC::NodeMask"]/*' />
	public uint NodeMask;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_PROTECTED_RESOURCE_SESSION_DESC::Flags"]/*' />
	public ProtectedResourceSessionFlags Flags;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_META_COMMAND_PARAMETER_DESC"]/*' />
/// <unmanaged>D3D12_META_COMMAND_PARAMETER_DESC</unmanaged>
public partial struct MetaCommandParameterDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_META_COMMAND_PARAMETER_DESC::Name"]/*' />
	public unsafe ushort* Name;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_META_COMMAND_PARAMETER_DESC::Type"]/*' />
	public MetaCommandParameterType Type;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_META_COMMAND_PARAMETER_DESC::Flags"]/*' />
	public MetaCommandParameterFlags Flags;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_META_COMMAND_PARAMETER_DESC::RequiredResourceState"]/*' />
	public ResourceStates RequiredResourceState;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_META_COMMAND_PARAMETER_DESC::StructureOffset"]/*' />
	public uint StructureOffset;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_META_COMMAND_DESC"]/*' />
/// <unmanaged>D3D12_META_COMMAND_DESC</unmanaged>
public partial struct MetaCommandDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_META_COMMAND_DESC::Id"]/*' />
	public Guid Id;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_META_COMMAND_DESC::Name"]/*' />
	public unsafe ushort* Name;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_META_COMMAND_DESC::InitializationDirtyState"]/*' />
	public GraphicsStates InitializationDirtyState;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_META_COMMAND_DESC::ExecutionDirtyState"]/*' />
	public GraphicsStates ExecutionDirtyState;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STATE_SUBOBJECT"]/*' />
/// <unmanaged>D3D12_STATE_SUBOBJECT</unmanaged>
public partial struct StateSubObject
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STATE_SUBOBJECT::Type"]/*' />
	public StateSubObjectType Type;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STATE_SUBOBJECT::pDesc"]/*' />
	public unsafe void* pDesc;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STATE_OBJECT_CONFIG"]/*' />
/// <unmanaged>D3D12_STATE_OBJECT_CONFIG</unmanaged>
public partial struct StateObjectConfig
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STATE_OBJECT_CONFIG::Flags"]/*' />
	public StateObjectFlags Flags;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GLOBAL_ROOT_SIGNATURE"]/*' />
/// <unmanaged>D3D12_GLOBAL_ROOT_SIGNATURE</unmanaged>
public partial struct GlobalRootSignature
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GLOBAL_ROOT_SIGNATURE::pGlobalRootSignature"]/*' />
	public unsafe ID3D12RootSignature* pGlobalRootSignature;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_LOCAL_ROOT_SIGNATURE"]/*' />
/// <unmanaged>D3D12_LOCAL_ROOT_SIGNATURE</unmanaged>
public partial struct LocalRootSignature
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_LOCAL_ROOT_SIGNATURE::pLocalRootSignature"]/*' />
	public unsafe ID3D12RootSignature* pLocalRootSignature;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_NODE_MASK"]/*' />
/// <unmanaged>D3D12_NODE_MASK</unmanaged>
public partial struct NodeMask
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_NODE_MASK::NodeMask"]/*' />
	public uint Mask;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_EXPORT_DESC"]/*' />
/// <unmanaged>D3D12_EXPORT_DESC</unmanaged>
public partial struct ExportDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_EXPORT_DESC::Name"]/*' />
	public unsafe ushort* Name;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_EXPORT_DESC::ExportToRename"]/*' />
	public unsafe ushort* ExportToRename;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_EXPORT_DESC::Flags"]/*' />
	public ExportFlags Flags;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DXIL_LIBRARY_DESC"]/*' />
/// <unmanaged>D3D12_DXIL_LIBRARY_DESC</unmanaged>
public partial struct DxilLibraryDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DXIL_LIBRARY_DESC::DXILLibrary"]/*' />
	public ShaderBytecode DXILLibrary;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DXIL_LIBRARY_DESC::NumExports"]/*' />
	public uint NumExports;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DXIL_LIBRARY_DESC::pExports"]/*' />
	public unsafe ExportDescription* pExports;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_EXISTING_COLLECTION_DESC"]/*' />
/// <unmanaged>D3D12_EXISTING_COLLECTION_DESC</unmanaged>
public partial struct ExistingCollectionDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_EXISTING_COLLECTION_DESC::pExistingCollection"]/*' />
	public unsafe ID3D12StateObject* pExistingCollection;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_EXISTING_COLLECTION_DESC::NumExports"]/*' />
	public uint NumExports;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_EXISTING_COLLECTION_DESC::pExports"]/*' />
	public unsafe ExportDescription* pExports;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION"]/*' />
/// <unmanaged>D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION</unmanaged>
public partial struct SubObjectToExportsAssociation
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION::pSubobjectToAssociate"]/*' />
	public unsafe StateSubObject* pSubobjectToAssociate;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION::NumExports"]/*' />
	public uint NumExports;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION::pExports"]/*' />
	public unsafe ushort** pExports;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION"]/*' />
/// <unmanaged>D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION</unmanaged>
public partial struct DxilSubObjectToExportsAssociation
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION::SubobjectToAssociate"]/*' />
	public unsafe ushort* SubobjectToAssociate;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION::NumExports"]/*' />
	public uint NumExports;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION::pExports"]/*' />
	public unsafe ushort** pExports;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_HIT_GROUP_DESC"]/*' />
/// <unmanaged>D3D12_HIT_GROUP_DESC</unmanaged>
public partial struct HitGroupDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_HIT_GROUP_DESC::HitGroupExport"]/*' />
	public unsafe ushort* HitGroupExport;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_HIT_GROUP_DESC::Type"]/*' />
	public HitGroupType Type;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_HIT_GROUP_DESC::AnyHitShaderImport"]/*' />
	public unsafe ushort* AnyHitShaderImport;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_HIT_GROUP_DESC::ClosestHitShaderImport"]/*' />
	public unsafe ushort* ClosestHitShaderImport;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_HIT_GROUP_DESC::IntersectionShaderImport"]/*' />
	public unsafe ushort* IntersectionShaderImport;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_SHADER_CONFIG"]/*' />
/// <unmanaged>D3D12_RAYTRACING_SHADER_CONFIG</unmanaged>
public partial struct RaytracingShaderConfig
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_SHADER_CONFIG::MaxPayloadSizeInBytes"]/*' />
	public uint MaxPayloadSizeInBytes;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_SHADER_CONFIG::MaxAttributeSizeInBytes"]/*' />
	public uint MaxAttributeSizeInBytes;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_PIPELINE_CONFIG"]/*' />
/// <unmanaged>D3D12_RAYTRACING_PIPELINE_CONFIG</unmanaged>
public partial struct RaytracingPipelineConfig
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_PIPELINE_CONFIG::MaxTraceRecursionDepth"]/*' />
	public uint MaxTraceRecursionDepth;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_PIPELINE_CONFIG1"]/*' />
/// <unmanaged>D3D12_RAYTRACING_PIPELINE_CONFIG1</unmanaged>
public partial struct RaytracingPipelineConfig1
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_PIPELINE_CONFIG1::MaxTraceRecursionDepth"]/*' />
	public uint MaxTraceRecursionDepth;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_PIPELINE_CONFIG1::Flags"]/*' />
	public RaytracingPipelineFlags Flags;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STATE_OBJECT_DESC"]/*' />
/// <unmanaged>D3D12_STATE_OBJECT_DESC</unmanaged>
public partial struct StateObjectDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STATE_OBJECT_DESC::Type"]/*' />
	public StateObjectType Type;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STATE_OBJECT_DESC::NumSubobjects"]/*' />
	public uint NumSubobjects;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_STATE_OBJECT_DESC::pSubobjects"]/*' />
	public unsafe StateSubObject* pSubobjects;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE"]/*' />
/// <unmanaged>D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE</unmanaged>
public partial struct GpuVirtualAddressAndStride
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE::StartAddress"]/*' />
	public ulong StartAddress;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE::StrideInBytes"]/*' />
	public ulong StrideInBytes;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GPU_VIRTUAL_ADDRESS_RANGE"]/*' />
/// <unmanaged>D3D12_GPU_VIRTUAL_ADDRESS_RANGE</unmanaged>
public partial struct GpuVirtualAddressRange
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GPU_VIRTUAL_ADDRESS_RANGE::StartAddress"]/*' />
	public ulong StartAddress;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GPU_VIRTUAL_ADDRESS_RANGE::SizeInBytes"]/*' />
	public ulong SizeInBytes;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE"]/*' />
/// <unmanaged>D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE</unmanaged>
public partial struct GpuVirtualAddressRangeAndStride
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE::StartAddress"]/*' />
	public ulong StartAddress;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE::SizeInBytes"]/*' />
	public ulong SizeInBytes;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE::StrideInBytes"]/*' />
	public ulong StrideInBytes;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC"]/*' />
/// <unmanaged>D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC</unmanaged>
public partial struct RaytracingGeometryTrianglesDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC::Transform3x4"]/*' />
	public ulong Transform3x4;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC::IndexFormat"]/*' />
	public Graphics.Dxgi.Common.Format IndexFormat;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC::VertexFormat"]/*' />
	public Graphics.Dxgi.Common.Format VertexFormat;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC::IndexCount"]/*' />
	public uint IndexCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC::VertexCount"]/*' />
	public uint VertexCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC::IndexBuffer"]/*' />
	public ulong IndexBuffer;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC::VertexBuffer"]/*' />
	public GpuVirtualAddressAndStride VertexBuffer;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_AABB"]/*' />
/// <unmanaged>D3D12_RAYTRACING_AABB</unmanaged>
public partial struct RaytracingAabb
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_AABB::MinX"]/*' />
	public float MinX;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_AABB::MinY"]/*' />
	public float MinY;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_AABB::MinZ"]/*' />
	public float MinZ;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_AABB::MaxX"]/*' />
	public float MaxX;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_AABB::MaxY"]/*' />
	public float MaxY;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_AABB::MaxZ"]/*' />
	public float MaxZ;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_GEOMETRY_AABBS_DESC"]/*' />
/// <unmanaged>D3D12_RAYTRACING_GEOMETRY_AABBS_DESC</unmanaged>
public partial struct RaytracingGeometryAabbsDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_GEOMETRY_AABBS_DESC::AABBCount"]/*' />
	public ulong AABBCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_GEOMETRY_AABBS_DESC::AABBs"]/*' />
	public GpuVirtualAddressAndStride AABBs;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC"]/*' />
/// <unmanaged>D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC</unmanaged>
public partial struct RaytracingAccelerationStructurePostbuildInfoDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC::DestBuffer"]/*' />
	public ulong DestBuffer;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC::InfoType"]/*' />
	public RaytracingAccelerationStructurePostbuildInfoType InfoType;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC"]/*' />
/// <unmanaged>D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC</unmanaged>
public partial struct RaytracingAccelerationStructurePostbuildInfoCompactedSizeDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC::CompactedSizeInBytes"]/*' />
	public ulong CompactedSizeInBytes;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC"]/*' />
/// <unmanaged>D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC</unmanaged>
public partial struct RaytracingAccelerationStructurePostbuildInfoToolsVisualizationDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC::DecodedSizeInBytes"]/*' />
	public ulong DecodedSizeInBytes;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER"]/*' />
/// <unmanaged>D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER</unmanaged>
public partial struct BuildRaytracingAccelerationStructureToolsVisualizationHeader
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER::Type"]/*' />
	public RaytracingAccelerationStructureType Type;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER::NumDescs"]/*' />
	public uint NumDescs;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC"]/*' />
/// <unmanaged>D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC</unmanaged>
public partial struct RaytracingAccelerationStructurePostbuildInfoSerializationDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC::SerializedSizeInBytes"]/*' />
	public ulong SerializedSizeInBytes;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC::NumBottomLevelAccelerationStructurePointers"]/*' />
	public ulong NumBottomLevelAccelerationStructurePointers;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER"]/*' />
/// <unmanaged>D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER</unmanaged>
public partial struct SerializedDataDriverMatchingIdentifier
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER::DriverOpaqueGUID"]/*' />
	public Guid DriverOpaqueGUID;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER::DriverOpaqueVersioningData"]/*' />
	public unsafe fixed byte DriverOpaqueVersioningData[16];
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER"]/*' />
/// <unmanaged>D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER</unmanaged>
public partial struct SerializedRaytracingAccelerationStructureHeader
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER::DriverMatchingIdentifier"]/*' />
	public SerializedDataDriverMatchingIdentifier DriverMatchingIdentifier;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER::SerializedSizeInBytesIncludingHeader"]/*' />
	public ulong SerializedSizeInBytesIncludingHeader;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER::DeserializedSizeInBytes"]/*' />
	public ulong DeserializedSizeInBytes;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER::NumBottomLevelAccelerationStructurePointersAfterHeader"]/*' />
	public ulong NumBottomLevelAccelerationStructurePointersAfterHeader;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC"]/*' />
/// <unmanaged>D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC</unmanaged>
public partial struct RaytracingAccelerationStructurePostbuildInfoCurrentSizeDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC::CurrentSizeInBytes"]/*' />
	public ulong CurrentSizeInBytes;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_INSTANCE_DESC"]/*' />
/// <unmanaged>D3D12_RAYTRACING_INSTANCE_DESC</unmanaged>
public partial struct RaytracingInstanceDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_INSTANCE_DESC::Transform"]/*' />
	public unsafe fixed float Transform[12];

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_INSTANCE_DESC::_bitfield1"]/*' />
	public uint _bitfield1;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_INSTANCE_DESC::_bitfield2"]/*' />
	public uint _bitfield2;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_INSTANCE_DESC::AccelerationStructure"]/*' />
	public ulong AccelerationStructure;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_GEOMETRY_DESC"]/*' />
/// <unmanaged>D3D12_RAYTRACING_GEOMETRY_DESC</unmanaged>
public partial struct RaytracingGeometryDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_GEOMETRY_DESC::Type"]/*' />
	public RaytracingGeometryType Type;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_GEOMETRY_DESC::Flags"]/*' />
	public RaytracingGeometryFlags Flags;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_GEOMETRY_DESC::Anonymous"]/*' />
	public _Anonymous_e__Union Anonymous;

	[UnscopedRef]
	public ref RaytracingGeometryTrianglesDescription Triangles
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Triangles;
		}
	}

	[UnscopedRef]
	public ref RaytracingGeometryAabbsDescription AABBs
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.AABBs;
		}
	}

	[StructLayout(LayoutKind.Explicit)]
	public partial struct _Anonymous_e__Union
	{
		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Triangles"]/*' />
		[FieldOffset(0)]
		public RaytracingGeometryTrianglesDescription Triangles;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::AABBs"]/*' />
		[FieldOffset(0)]
		public RaytracingGeometryAabbsDescription AABBs;
	}
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS"]/*' />
/// <unmanaged>D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS</unmanaged>
public partial struct BuildRaytracingAccelerationStructureInputs
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS::Type"]/*' />
	public RaytracingAccelerationStructureType Type;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS::Flags"]/*' />
	public RaytracingAccelerationStructureBuildFlags Flags;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS::NumDescs"]/*' />
	public uint NumDescs;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS::DescsLayout"]/*' />
	public ElementsLayout DescsLayout;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS::Anonymous"]/*' />
	public _Anonymous_e__Union Anonymous;

	[UnscopedRef]
	public ref ulong InstanceDescs
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.InstanceDescs;
		}
	}

	[UnscopedRef]
	public unsafe ref RaytracingGeometryDescription* pGeometryDescs
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.pGeometryDescs;
		}
	}

	[UnscopedRef]
	public unsafe ref RaytracingGeometryDescription** ppGeometryDescs
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.ppGeometryDescs;
		}
	}

	[StructLayout(LayoutKind.Explicit)]
	public partial struct _Anonymous_e__Union
	{
		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::InstanceDescs"]/*' />
		[FieldOffset(0)]
		public ulong InstanceDescs;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::pGeometryDescs"]/*' />
		[FieldOffset(0)]
		public unsafe RaytracingGeometryDescription* pGeometryDescs;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::ppGeometryDescs"]/*' />
		[FieldOffset(0)]
		public unsafe RaytracingGeometryDescription** ppGeometryDescs;
	}
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC"]/*' />
/// <unmanaged>D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC</unmanaged>
public partial struct BuildRaytracingAccelerationStructureDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC::DestAccelerationStructureData"]/*' />
	public ulong DestAccelerationStructureData;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC::Inputs"]/*' />
	public BuildRaytracingAccelerationStructureInputs Inputs;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC::SourceAccelerationStructureData"]/*' />
	public ulong SourceAccelerationStructureData;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC::ScratchAccelerationStructureData"]/*' />
	public ulong ScratchAccelerationStructureData;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO"]/*' />
/// <unmanaged>D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO</unmanaged>
public partial struct RaytracingAccelerationStructurePrebuildInfo
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO::ResultDataMaxSizeInBytes"]/*' />
	public ulong ResultDataMaxSizeInBytes;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO::ScratchDataSizeInBytes"]/*' />
	public ulong ScratchDataSizeInBytes;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO::UpdateScratchDataSizeInBytes"]/*' />
	public ulong UpdateScratchDataSizeInBytes;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_AUTO_BREADCRUMB_NODE"]/*' />
/// <unmanaged>D3D12_AUTO_BREADCRUMB_NODE</unmanaged>
public partial struct AutoBreadcrumbNode
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_AUTO_BREADCRUMB_NODE::pCommandListDebugNameA"]/*' />
	public unsafe byte* pCommandListDebugNameA;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_AUTO_BREADCRUMB_NODE::pCommandListDebugNameW"]/*' />
	public unsafe ushort* pCommandListDebugNameW;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_AUTO_BREADCRUMB_NODE::pCommandQueueDebugNameA"]/*' />
	public unsafe byte* pCommandQueueDebugNameA;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_AUTO_BREADCRUMB_NODE::pCommandQueueDebugNameW"]/*' />
	public unsafe ushort* pCommandQueueDebugNameW;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_AUTO_BREADCRUMB_NODE::pCommandList"]/*' />
	public unsafe ID3D12GraphicsCommandList* pCommandList;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_AUTO_BREADCRUMB_NODE::pCommandQueue"]/*' />
	public unsafe ID3D12CommandQueue* pCommandQueue;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_AUTO_BREADCRUMB_NODE::BreadcrumbCount"]/*' />
	public uint BreadcrumbCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_AUTO_BREADCRUMB_NODE::pLastBreadcrumbValue"]/*' />
	public unsafe uint* pLastBreadcrumbValue;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_AUTO_BREADCRUMB_NODE::pCommandHistory"]/*' />
	public unsafe AutoBreadcrumbOperation* pCommandHistory;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_AUTO_BREADCRUMB_NODE::pNext"]/*' />
	public unsafe AutoBreadcrumbNode* pNext;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRED_BREADCRUMB_CONTEXT"]/*' />
/// <unmanaged>D3D12_DRED_BREADCRUMB_CONTEXT</unmanaged>
public partial struct DredBreadcrumbContext
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRED_BREADCRUMB_CONTEXT::BreadcrumbIndex"]/*' />
	public uint BreadcrumbIndex;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRED_BREADCRUMB_CONTEXT::pContextString"]/*' />
	public unsafe ushort* pContextString;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_AUTO_BREADCRUMB_NODE1"]/*' />
/// <unmanaged>D3D12_AUTO_BREADCRUMB_NODE1</unmanaged>
public partial struct AutoBreadcrumbNode1
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_AUTO_BREADCRUMB_NODE1::pCommandListDebugNameA"]/*' />
	public unsafe byte* pCommandListDebugNameA;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_AUTO_BREADCRUMB_NODE1::pCommandListDebugNameW"]/*' />
	public unsafe ushort* pCommandListDebugNameW;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_AUTO_BREADCRUMB_NODE1::pCommandQueueDebugNameA"]/*' />
	public unsafe byte* pCommandQueueDebugNameA;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_AUTO_BREADCRUMB_NODE1::pCommandQueueDebugNameW"]/*' />
	public unsafe ushort* pCommandQueueDebugNameW;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_AUTO_BREADCRUMB_NODE1::pCommandList"]/*' />
	public unsafe ID3D12GraphicsCommandList* pCommandList;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_AUTO_BREADCRUMB_NODE1::pCommandQueue"]/*' />
	public unsafe ID3D12CommandQueue* pCommandQueue;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_AUTO_BREADCRUMB_NODE1::BreadcrumbCount"]/*' />
	public uint BreadcrumbCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_AUTO_BREADCRUMB_NODE1::pLastBreadcrumbValue"]/*' />
	public unsafe uint* pLastBreadcrumbValue;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_AUTO_BREADCRUMB_NODE1::pCommandHistory"]/*' />
	public unsafe AutoBreadcrumbOperation* pCommandHistory;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_AUTO_BREADCRUMB_NODE1::pNext"]/*' />
	public unsafe AutoBreadcrumbNode1* pNext;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_AUTO_BREADCRUMB_NODE1::BreadcrumbContextsCount"]/*' />
	public uint BreadcrumbContextsCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_AUTO_BREADCRUMB_NODE1::pBreadcrumbContexts"]/*' />
	public unsafe DredBreadcrumbContext* pBreadcrumbContexts;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEVICE_REMOVED_EXTENDED_DATA"]/*' />
/// <unmanaged>D3D12_DEVICE_REMOVED_EXTENDED_DATA</unmanaged>
public partial struct DeviceRemovedExtendedData
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEVICE_REMOVED_EXTENDED_DATA::Flags"]/*' />
	public DredFlags Flags;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEVICE_REMOVED_EXTENDED_DATA::pHeadAutoBreadcrumbNode"]/*' />
	public unsafe AutoBreadcrumbNode* pHeadAutoBreadcrumbNode;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRED_ALLOCATION_NODE"]/*' />
/// <unmanaged>D3D12_DRED_ALLOCATION_NODE</unmanaged>
public partial struct DredAllocationNode
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRED_ALLOCATION_NODE::ObjectNameA"]/*' />
	public unsafe byte* ObjectNameA;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRED_ALLOCATION_NODE::ObjectNameW"]/*' />
	public unsafe ushort* ObjectNameW;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRED_ALLOCATION_NODE::AllocationType"]/*' />
	public DredAllocationType AllocationType;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRED_ALLOCATION_NODE::pNext"]/*' />
	public unsafe DredAllocationNode* pNext;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRED_ALLOCATION_NODE1"]/*' />
/// <unmanaged>D3D12_DRED_ALLOCATION_NODE1</unmanaged>
public partial struct DredAllocationNode1
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRED_ALLOCATION_NODE1::ObjectNameA"]/*' />
	public unsafe byte* ObjectNameA;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRED_ALLOCATION_NODE1::ObjectNameW"]/*' />
	public unsafe ushort* ObjectNameW;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRED_ALLOCATION_NODE1::AllocationType"]/*' />
	public DredAllocationType AllocationType;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRED_ALLOCATION_NODE1::pNext"]/*' />
	public unsafe DredAllocationNode1* pNext;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRED_ALLOCATION_NODE1::pObject"]/*' />
	public unsafe IUnknown* pObject;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT"]/*' />
/// <unmanaged>D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT</unmanaged>
public partial struct DredAutoBreadcrumbsOutput
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT::pHeadAutoBreadcrumbNode"]/*' />
	public unsafe AutoBreadcrumbNode* pHeadAutoBreadcrumbNode;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1"]/*' />
/// <unmanaged>D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1</unmanaged>
public partial struct DredAutoBreadcrumbsOutput1
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1::pHeadAutoBreadcrumbNode"]/*' />
	public unsafe AutoBreadcrumbNode1* pHeadAutoBreadcrumbNode;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRED_PAGE_FAULT_OUTPUT"]/*' />
/// <unmanaged>D3D12_DRED_PAGE_FAULT_OUTPUT</unmanaged>
public partial struct DredPageFaultOutput
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRED_PAGE_FAULT_OUTPUT::PageFaultVA"]/*' />
	public ulong PageFaultVA;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRED_PAGE_FAULT_OUTPUT::pHeadExistingAllocationNode"]/*' />
	public unsafe DredAllocationNode* pHeadExistingAllocationNode;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRED_PAGE_FAULT_OUTPUT::pHeadRecentFreedAllocationNode"]/*' />
	public unsafe DredAllocationNode* pHeadRecentFreedAllocationNode;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRED_PAGE_FAULT_OUTPUT1"]/*' />
/// <unmanaged>D3D12_DRED_PAGE_FAULT_OUTPUT1</unmanaged>
public partial struct DredPageFaultOutput1
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRED_PAGE_FAULT_OUTPUT1::PageFaultVA"]/*' />
	public ulong PageFaultVA;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRED_PAGE_FAULT_OUTPUT1::pHeadExistingAllocationNode"]/*' />
	public unsafe DredAllocationNode1* pHeadExistingAllocationNode;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRED_PAGE_FAULT_OUTPUT1::pHeadRecentFreedAllocationNode"]/*' />
	public unsafe DredAllocationNode1* pHeadRecentFreedAllocationNode;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRED_PAGE_FAULT_OUTPUT2"]/*' />
/// <unmanaged>D3D12_DRED_PAGE_FAULT_OUTPUT2</unmanaged>
public partial struct DredPageFaultOutput2
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRED_PAGE_FAULT_OUTPUT2::PageFaultVA"]/*' />
	public ulong PageFaultVA;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRED_PAGE_FAULT_OUTPUT2::pHeadExistingAllocationNode"]/*' />
	public unsafe DredAllocationNode1* pHeadExistingAllocationNode;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRED_PAGE_FAULT_OUTPUT2::pHeadRecentFreedAllocationNode"]/*' />
	public unsafe DredAllocationNode1* pHeadRecentFreedAllocationNode;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DRED_PAGE_FAULT_OUTPUT2::PageFaultFlags"]/*' />
	public DredPageFaultFlags PageFaultFlags;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEVICE_REMOVED_EXTENDED_DATA1"]/*' />
/// <unmanaged>D3D12_DEVICE_REMOVED_EXTENDED_DATA1</unmanaged>
public partial struct DeviceRemovedExtendedData1
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEVICE_REMOVED_EXTENDED_DATA1::DeviceRemovedReason"]/*' />
	public HResult DeviceRemovedReason;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEVICE_REMOVED_EXTENDED_DATA1::AutoBreadcrumbsOutput"]/*' />
	public DredAutoBreadcrumbsOutput AutoBreadcrumbsOutput;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEVICE_REMOVED_EXTENDED_DATA1::PageFaultOutput"]/*' />
	public DredPageFaultOutput PageFaultOutput;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEVICE_REMOVED_EXTENDED_DATA2"]/*' />
/// <unmanaged>D3D12_DEVICE_REMOVED_EXTENDED_DATA2</unmanaged>
public partial struct DeviceRemovedExtendedData2
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEVICE_REMOVED_EXTENDED_DATA2::DeviceRemovedReason"]/*' />
	public HResult DeviceRemovedReason;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEVICE_REMOVED_EXTENDED_DATA2::AutoBreadcrumbsOutput"]/*' />
	public DredAutoBreadcrumbsOutput1 AutoBreadcrumbsOutput;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEVICE_REMOVED_EXTENDED_DATA2::PageFaultOutput"]/*' />
	public DredPageFaultOutput1 PageFaultOutput;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEVICE_REMOVED_EXTENDED_DATA3"]/*' />
/// <unmanaged>D3D12_DEVICE_REMOVED_EXTENDED_DATA3</unmanaged>
public partial struct DeviceRemovedExtendedData3
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEVICE_REMOVED_EXTENDED_DATA3::DeviceRemovedReason"]/*' />
	public HResult DeviceRemovedReason;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEVICE_REMOVED_EXTENDED_DATA3::AutoBreadcrumbsOutput"]/*' />
	public DredAutoBreadcrumbsOutput1 AutoBreadcrumbsOutput;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEVICE_REMOVED_EXTENDED_DATA3::PageFaultOutput"]/*' />
	public DredPageFaultOutput2 PageFaultOutput;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEVICE_REMOVED_EXTENDED_DATA3::DeviceState"]/*' />
	public DredDeviceState DeviceState;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA"]/*' />
/// <unmanaged>D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA</unmanaged>
public partial struct VersionedDeviceRemovedExtendedData
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA::Version"]/*' />
	public DredVersion Version;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA::Anonymous"]/*' />
	public _Anonymous_e__Union Anonymous;

	[UnscopedRef]
	public ref DeviceRemovedExtendedData Dred_1_0
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Dred_1_0;
		}
	}

	[UnscopedRef]
	public ref DeviceRemovedExtendedData1 Dred_1_1
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Dred_1_1;
		}
	}

	[UnscopedRef]
	public ref DeviceRemovedExtendedData2 Dred_1_2
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Dred_1_2;
		}
	}

	[UnscopedRef]
	public ref DeviceRemovedExtendedData3 Dred_1_3
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Dred_1_3;
		}
	}

	[StructLayout(LayoutKind.Explicit)]
	public partial struct _Anonymous_e__Union
	{
		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Dred_1_0"]/*' />
		[FieldOffset(0)]
		public DeviceRemovedExtendedData Dred_1_0;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Dred_1_1"]/*' />
		[FieldOffset(0)]
		public DeviceRemovedExtendedData1 Dred_1_1;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Dred_1_2"]/*' />
		[FieldOffset(0)]
		public DeviceRemovedExtendedData2 Dred_1_2;

		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Dred_1_3"]/*' />
		[FieldOffset(0)]
		public DeviceRemovedExtendedData3 Dred_1_3;
	}
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT"]/*' />
/// <unmanaged>D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT</unmanaged>
public partial struct FeatureDataProtectedResourceSessionTypeCount
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT::NodeIndex"]/*' />
	public uint NodeIndex;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT::Count"]/*' />
	public uint Count;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES"]/*' />
/// <unmanaged>D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES</unmanaged>
public partial struct FeatureDataProtectedResourceSessionTypes
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES::NodeIndex"]/*' />
	public uint NodeIndex;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES::Count"]/*' />
	public uint Count;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES::pTypes"]/*' />
	public unsafe Guid* pTypes;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_PROTECTED_RESOURCE_SESSION_DESC1"]/*' />
/// <unmanaged>D3D12_PROTECTED_RESOURCE_SESSION_DESC1</unmanaged>
public partial struct ProtectedResourceSessionDescription1
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_PROTECTED_RESOURCE_SESSION_DESC1::NodeMask"]/*' />
	public uint NodeMask;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_PROTECTED_RESOURCE_SESSION_DESC1::Flags"]/*' />
	public ProtectedResourceSessionFlags Flags;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_PROTECTED_RESOURCE_SESSION_DESC1::ProtectionType"]/*' />
	public Guid ProtectionType;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS"]/*' />
/// <unmanaged>D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS</unmanaged>
public partial struct RenderPassBeginningAccessClearParameters
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS::ClearValue"]/*' />
	public ClearValue ClearValue;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_PASS_BEGINNING_ACCESS"]/*' />
/// <unmanaged>D3D12_RENDER_PASS_BEGINNING_ACCESS</unmanaged>
public partial struct RenderPassBeginningAccess
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_PASS_BEGINNING_ACCESS::Type"]/*' />
	public RenderPassBeginningAccessType Type;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_PASS_BEGINNING_ACCESS::Anonymous"]/*' />
	public _Anonymous_e__Union Anonymous;

	[UnscopedRef]
	public ref RenderPassBeginningAccessClearParameters Clear
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Clear;
		}
	}

	[StructLayout(LayoutKind.Explicit)]
	public partial struct _Anonymous_e__Union
	{
		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Clear"]/*' />
		[FieldOffset(0)]
		public RenderPassBeginningAccessClearParameters Clear;
	}
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS"]/*' />
/// <unmanaged>D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS</unmanaged>
public partial struct RenderPassEndingAccessResolveSubresourceParameters
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS::SrcSubresource"]/*' />
	public uint SrcSubresource;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS::DstSubresource"]/*' />
	public uint DstSubresource;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS::DstX"]/*' />
	public uint DstX;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS::DstY"]/*' />
	public uint DstY;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS::SrcRect"]/*' />
	public RawRect SrcRect;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS"]/*' />
/// <unmanaged>D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS</unmanaged>
public partial struct RenderPassEndingAccessResolveParameters
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS::pSrcResource"]/*' />
	public unsafe ID3D12Resource* pSrcResource;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS::pDstResource"]/*' />
	public unsafe ID3D12Resource* pDstResource;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS::SubresourceCount"]/*' />
	public uint SubresourceCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS::pSubresourceParameters"]/*' />
	public unsafe RenderPassEndingAccessResolveSubresourceParameters* pSubresourceParameters;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS::Format"]/*' />
	public Graphics.Dxgi.Common.Format Format;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS::ResolveMode"]/*' />
	public ResolveMode ResolveMode;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS::PreserveResolveSource"]/*' />
	public Bool32 PreserveResolveSource;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_PASS_ENDING_ACCESS"]/*' />
/// <unmanaged>D3D12_RENDER_PASS_ENDING_ACCESS</unmanaged>
public partial struct RenderPassEndingAccess
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_PASS_ENDING_ACCESS::Type"]/*' />
	public RenderPassEndingAccessType Type;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_PASS_ENDING_ACCESS::Anonymous"]/*' />
	public _Anonymous_e__Union Anonymous;

	[UnscopedRef]
	public ref RenderPassEndingAccessResolveParameters Resolve
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			return ref Anonymous.Resolve;
		}
	}

	[StructLayout(LayoutKind.Explicit)]
	public partial struct _Anonymous_e__Union
	{
		/// <include file='../Direct3D12.xml' path='doc/member[@name="_Anonymous_e__Union::Resolve"]/*' />
		[FieldOffset(0)]
		public RenderPassEndingAccessResolveParameters Resolve;
	}
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_PASS_RENDER_TARGET_DESC"]/*' />
/// <unmanaged>D3D12_RENDER_PASS_RENDER_TARGET_DESC</unmanaged>
public partial struct RenderPassRenderTargetDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_PASS_RENDER_TARGET_DESC::cpuDescriptor"]/*' />
	public CpuDescriptorHandle cpuDescriptor;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_PASS_RENDER_TARGET_DESC::BeginningAccess"]/*' />
	public RenderPassBeginningAccess BeginningAccess;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_PASS_RENDER_TARGET_DESC::EndingAccess"]/*' />
	public RenderPassEndingAccess EndingAccess;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_PASS_DEPTH_STENCIL_DESC"]/*' />
/// <unmanaged>D3D12_RENDER_PASS_DEPTH_STENCIL_DESC</unmanaged>
public partial struct RenderPassDepthStencilDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_PASS_DEPTH_STENCIL_DESC::cpuDescriptor"]/*' />
	public CpuDescriptorHandle cpuDescriptor;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_PASS_DEPTH_STENCIL_DESC::DepthBeginningAccess"]/*' />
	public RenderPassBeginningAccess DepthBeginningAccess;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_PASS_DEPTH_STENCIL_DESC::StencilBeginningAccess"]/*' />
	public RenderPassBeginningAccess StencilBeginningAccess;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_PASS_DEPTH_STENCIL_DESC::DepthEndingAccess"]/*' />
	public RenderPassEndingAccess DepthEndingAccess;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_RENDER_PASS_DEPTH_STENCIL_DESC::StencilEndingAccess"]/*' />
	public RenderPassEndingAccess StencilEndingAccess;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DISPATCH_RAYS_DESC"]/*' />
/// <unmanaged>D3D12_DISPATCH_RAYS_DESC</unmanaged>
public partial struct DispatchRaysDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DISPATCH_RAYS_DESC::RayGenerationShaderRecord"]/*' />
	public GpuVirtualAddressRange RayGenerationShaderRecord;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DISPATCH_RAYS_DESC::MissShaderTable"]/*' />
	public GpuVirtualAddressRangeAndStride MissShaderTable;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DISPATCH_RAYS_DESC::HitGroupTable"]/*' />
	public GpuVirtualAddressRangeAndStride HitGroupTable;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DISPATCH_RAYS_DESC::CallableShaderTable"]/*' />
	public GpuVirtualAddressRangeAndStride CallableShaderTable;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DISPATCH_RAYS_DESC::Width"]/*' />
	public uint Width;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DISPATCH_RAYS_DESC::Height"]/*' />
	public uint Height;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DISPATCH_RAYS_DESC::Depth"]/*' />
	public uint Depth;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_CACHE_SESSION_DESC"]/*' />
/// <unmanaged>D3D12_SHADER_CACHE_SESSION_DESC</unmanaged>
public partial struct ShaderCacheSessionDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_CACHE_SESSION_DESC::Identifier"]/*' />
	public Guid Identifier;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_CACHE_SESSION_DESC::Mode"]/*' />
	public ShaderCacheMode Mode;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_CACHE_SESSION_DESC::Flags"]/*' />
	public ShaderCacheFlags Flags;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_CACHE_SESSION_DESC::MaximumInMemoryCacheSizeBytes"]/*' />
	public uint MaximumInMemoryCacheSizeBytes;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_CACHE_SESSION_DESC::MaximumInMemoryCacheEntries"]/*' />
	public uint MaximumInMemoryCacheEntries;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_CACHE_SESSION_DESC::MaximumValueFileSizeBytes"]/*' />
	public uint MaximumValueFileSizeBytes;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_CACHE_SESSION_DESC::Version"]/*' />
	public ulong Version;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SUBRESOURCE_DATA"]/*' />
/// <unmanaged>D3D12_SUBRESOURCE_DATA</unmanaged>
public partial struct SubresourceData
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SUBRESOURCE_DATA::pData"]/*' />
	public unsafe void* pData;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SUBRESOURCE_DATA::RowPitch"]/*' />
	public nint RowPitch;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SUBRESOURCE_DATA::SlicePitch"]/*' />
	public nint SlicePitch;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_MEMCPY_DEST"]/*' />
/// <unmanaged>D3D12_MEMCPY_DEST</unmanaged>
public partial struct MemcpyDest
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_MEMCPY_DEST::pData"]/*' />
	public unsafe void* pData;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_MEMCPY_DEST::RowPitch"]/*' />
	public nuint RowPitch;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_MEMCPY_DEST::SlicePitch"]/*' />
	public nuint SlicePitch;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS"]/*' />
/// <unmanaged>D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS</unmanaged>
public partial struct DebugDeviceGpuBasedValidationSettings
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS::MaxMessagesPerCommandList"]/*' />
	public uint MaxMessagesPerCommandList;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS::DefaultShaderPatchMode"]/*' />
	public GpuBasedValidationShaderPatchMode DefaultShaderPatchMode;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS::PipelineStateCreateFlags"]/*' />
	public GpuBasedValidationPipelineStateCreateFlags PipelineStateCreateFlags;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR"]/*' />
/// <unmanaged>D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR</unmanaged>
public partial struct DebugDeviceGpuSlowdownPerformanceFactor
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR::SlowdownFactor"]/*' />
	public float SlowdownFactor;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS"]/*' />
/// <unmanaged>D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS</unmanaged>
public partial struct DebugCommandListGpuBasedValidationSettings
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS::ShaderPatchMode"]/*' />
	public GpuBasedValidationShaderPatchMode ShaderPatchMode;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_MESSAGE"]/*' />
/// <unmanaged>D3D12_MESSAGE</unmanaged>
public partial struct Message
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_MESSAGE::Category"]/*' />
	public MessageCategory Category;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_MESSAGE::Severity"]/*' />
	public MessageSeverity Severity;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_MESSAGE::ID"]/*' />
	public MessageId ID;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_MESSAGE::pDescription"]/*' />
	public unsafe byte* pDescription;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_MESSAGE::DescriptionByteLength"]/*' />
	public nuint DescriptionByteLength;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_INFO_QUEUE_FILTER_DESC"]/*' />
/// <unmanaged>D3D12_INFO_QUEUE_FILTER_DESC</unmanaged>
public partial struct InfoQueueFilterDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_INFO_QUEUE_FILTER_DESC::NumCategories"]/*' />
	public uint NumCategories;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_INFO_QUEUE_FILTER_DESC::pCategoryList"]/*' />
	public unsafe MessageCategory* pCategoryList;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_INFO_QUEUE_FILTER_DESC::NumSeverities"]/*' />
	public uint NumSeverities;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_INFO_QUEUE_FILTER_DESC::pSeverityList"]/*' />
	public unsafe MessageSeverity* pSeverityList;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_INFO_QUEUE_FILTER_DESC::NumIDs"]/*' />
	public uint NumIDs;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_INFO_QUEUE_FILTER_DESC::pIDList"]/*' />
	public unsafe MessageId* pIDList;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_INFO_QUEUE_FILTER"]/*' />
/// <unmanaged>D3D12_INFO_QUEUE_FILTER</unmanaged>
public partial struct InfoQueueFilter
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_INFO_QUEUE_FILTER::AllowList"]/*' />
	public InfoQueueFilterDescription AllowList;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_INFO_QUEUE_FILTER::DenyList"]/*' />
	public InfoQueueFilterDescription DenyList;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DISPATCH_MESH_ARGUMENTS"]/*' />
/// <unmanaged>D3D12_DISPATCH_MESH_ARGUMENTS</unmanaged>
public partial struct DispatchMeshArguments
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DISPATCH_MESH_ARGUMENTS::ThreadGroupCountX"]/*' />
	public uint ThreadGroupCountX;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DISPATCH_MESH_ARGUMENTS::ThreadGroupCountY"]/*' />
	public uint ThreadGroupCountY;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_DISPATCH_MESH_ARGUMENTS::ThreadGroupCountZ"]/*' />
	public uint ThreadGroupCountZ;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SIGNATURE_PARAMETER_DESC"]/*' />
/// <unmanaged>D3D12_SIGNATURE_PARAMETER_DESC</unmanaged>
public partial struct SignatureParameterDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SIGNATURE_PARAMETER_DESC::SemanticName"]/*' />
	public unsafe sbyte* SemanticName;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SIGNATURE_PARAMETER_DESC::SemanticIndex"]/*' />
	public uint SemanticIndex;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SIGNATURE_PARAMETER_DESC::Register"]/*' />
	public uint Register;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SIGNATURE_PARAMETER_DESC::SystemValueType"]/*' />
	public Graphics.Direct3D.Name SystemValueType;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SIGNATURE_PARAMETER_DESC::ComponentType"]/*' />
	public Graphics.Direct3D.RegisterComponentType ComponentType;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SIGNATURE_PARAMETER_DESC::Mask"]/*' />
	public byte Mask;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SIGNATURE_PARAMETER_DESC::ReadWriteMask"]/*' />
	public byte ReadWriteMask;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SIGNATURE_PARAMETER_DESC::Stream"]/*' />
	public uint Stream;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SIGNATURE_PARAMETER_DESC::MinPrecision"]/*' />
	public Graphics.Direct3D.MinPrecision MinPrecision;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_BUFFER_DESC"]/*' />
/// <unmanaged>D3D12_SHADER_BUFFER_DESC</unmanaged>
public partial struct ShaderBufferDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_BUFFER_DESC::Name"]/*' />
	public unsafe sbyte* Name;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_BUFFER_DESC::Type"]/*' />
	public Graphics.Direct3D.CBufferType Type;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_BUFFER_DESC::Variables"]/*' />
	public uint Variables;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_BUFFER_DESC::Size"]/*' />
	public uint Size;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_BUFFER_DESC::uFlags"]/*' />
	public uint uFlags;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_VARIABLE_DESC"]/*' />
/// <unmanaged>D3D12_SHADER_VARIABLE_DESC</unmanaged>
public partial struct ShaderVariableDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_VARIABLE_DESC::Name"]/*' />
	public unsafe sbyte* Name;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_VARIABLE_DESC::StartOffset"]/*' />
	public uint StartOffset;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_VARIABLE_DESC::Size"]/*' />
	public uint Size;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_VARIABLE_DESC::uFlags"]/*' />
	public uint uFlags;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_VARIABLE_DESC::DefaultValue"]/*' />
	public unsafe void* DefaultValue;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_VARIABLE_DESC::StartTexture"]/*' />
	public uint StartTexture;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_VARIABLE_DESC::TextureSize"]/*' />
	public uint TextureSize;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_VARIABLE_DESC::StartSampler"]/*' />
	public uint StartSampler;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_VARIABLE_DESC::SamplerSize"]/*' />
	public uint SamplerSize;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_TYPE_DESC"]/*' />
/// <unmanaged>D3D12_SHADER_TYPE_DESC</unmanaged>
public partial struct ShaderTypeDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_TYPE_DESC::Class"]/*' />
	public Graphics.Direct3D.ShaderVariableClass Class;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_TYPE_DESC::Type"]/*' />
	public Graphics.Direct3D.ShaderVariableType Type;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_TYPE_DESC::Rows"]/*' />
	public uint Rows;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_TYPE_DESC::Columns"]/*' />
	public uint Columns;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_TYPE_DESC::Elements"]/*' />
	public uint Elements;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_TYPE_DESC::Members"]/*' />
	public uint Members;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_TYPE_DESC::Offset"]/*' />
	public uint Offset;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_TYPE_DESC::Name"]/*' />
	public unsafe sbyte* Name;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC"]/*' />
/// <unmanaged>D3D12_SHADER_DESC</unmanaged>
public partial struct ShaderDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::Version"]/*' />
	public uint Version;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::Creator"]/*' />
	public unsafe sbyte* Creator;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::Flags"]/*' />
	public uint Flags;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::ConstantBuffers"]/*' />
	public uint ConstantBuffers;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::BoundResources"]/*' />
	public uint BoundResources;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::InputParameters"]/*' />
	public uint InputParameters;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::OutputParameters"]/*' />
	public uint OutputParameters;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::InstructionCount"]/*' />
	public uint InstructionCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::TempRegisterCount"]/*' />
	public uint TempRegisterCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::TempArrayCount"]/*' />
	public uint TempArrayCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::DefCount"]/*' />
	public uint DefCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::DclCount"]/*' />
	public uint DclCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::TextureNormalInstructions"]/*' />
	public uint TextureNormalInstructions;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::TextureLoadInstructions"]/*' />
	public uint TextureLoadInstructions;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::TextureCompInstructions"]/*' />
	public uint TextureCompInstructions;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::TextureBiasInstructions"]/*' />
	public uint TextureBiasInstructions;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::TextureGradientInstructions"]/*' />
	public uint TextureGradientInstructions;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::FloatInstructionCount"]/*' />
	public uint FloatInstructionCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::IntInstructionCount"]/*' />
	public uint IntInstructionCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::UintInstructionCount"]/*' />
	public uint UintInstructionCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::StaticFlowControlCount"]/*' />
	public uint StaticFlowControlCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::DynamicFlowControlCount"]/*' />
	public uint DynamicFlowControlCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::MacroInstructionCount"]/*' />
	public uint MacroInstructionCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::ArrayInstructionCount"]/*' />
	public uint ArrayInstructionCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::CutInstructionCount"]/*' />
	public uint CutInstructionCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::EmitInstructionCount"]/*' />
	public uint EmitInstructionCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::GSOutputTopology"]/*' />
	public Graphics.Direct3D.PrimitiveTopology GSOutputTopology;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::GSMaxOutputVertexCount"]/*' />
	public uint GSMaxOutputVertexCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::InputPrimitive"]/*' />
	public Graphics.Direct3D.Primitive InputPrimitive;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::PatchConstantParameters"]/*' />
	public uint PatchConstantParameters;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::cGSInstanceCount"]/*' />
	public uint cGSInstanceCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::cControlPoints"]/*' />
	public uint cControlPoints;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::HSOutputPrimitive"]/*' />
	public Graphics.Direct3D.TessellatorOutputPrimitive HSOutputPrimitive;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::HSPartitioning"]/*' />
	public Graphics.Direct3D.TessellatorPartitioning HSPartitioning;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::TessellatorDomain"]/*' />
	public Graphics.Direct3D.TessellatorDomain TessellatorDomain;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::cBarrierInstructions"]/*' />
	public uint cBarrierInstructions;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::cInterlockedInstructions"]/*' />
	public uint cInterlockedInstructions;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_DESC::cTextureStoreInstructions"]/*' />
	public uint cTextureStoreInstructions;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_INPUT_BIND_DESC"]/*' />
/// <unmanaged>D3D12_SHADER_INPUT_BIND_DESC</unmanaged>
public partial struct ShaderInputBindDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_INPUT_BIND_DESC::Name"]/*' />
	public unsafe sbyte* Name;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_INPUT_BIND_DESC::Type"]/*' />
	public Graphics.Direct3D.ShaderInputType Type;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_INPUT_BIND_DESC::BindPoint"]/*' />
	public uint BindPoint;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_INPUT_BIND_DESC::BindCount"]/*' />
	public uint BindCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_INPUT_BIND_DESC::uFlags"]/*' />
	public uint uFlags;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_INPUT_BIND_DESC::ReturnType"]/*' />
	public Graphics.Direct3D.ResourceReturnType ReturnType;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_INPUT_BIND_DESC::Dimension"]/*' />
	public Graphics.Direct3D.SrvDimension Dimension;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_INPUT_BIND_DESC::NumSamples"]/*' />
	public uint NumSamples;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_INPUT_BIND_DESC::Space"]/*' />
	public uint Space;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_SHADER_INPUT_BIND_DESC::uID"]/*' />
	public uint uID;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_LIBRARY_DESC"]/*' />
/// <unmanaged>D3D12_LIBRARY_DESC</unmanaged>
public partial struct LibraryDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_LIBRARY_DESC::Creator"]/*' />
	public unsafe sbyte* Creator;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_LIBRARY_DESC::Flags"]/*' />
	public uint Flags;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_LIBRARY_DESC::FunctionCount"]/*' />
	public uint FunctionCount;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC"]/*' />
/// <unmanaged>D3D12_FUNCTION_DESC</unmanaged>
public partial struct FunctionDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::Version"]/*' />
	public uint Version;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::Creator"]/*' />
	public unsafe sbyte* Creator;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::Flags"]/*' />
	public uint Flags;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::ConstantBuffers"]/*' />
	public uint ConstantBuffers;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::BoundResources"]/*' />
	public uint BoundResources;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::InstructionCount"]/*' />
	public uint InstructionCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::TempRegisterCount"]/*' />
	public uint TempRegisterCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::TempArrayCount"]/*' />
	public uint TempArrayCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::DefCount"]/*' />
	public uint DefCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::DclCount"]/*' />
	public uint DclCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::TextureNormalInstructions"]/*' />
	public uint TextureNormalInstructions;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::TextureLoadInstructions"]/*' />
	public uint TextureLoadInstructions;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::TextureCompInstructions"]/*' />
	public uint TextureCompInstructions;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::TextureBiasInstructions"]/*' />
	public uint TextureBiasInstructions;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::TextureGradientInstructions"]/*' />
	public uint TextureGradientInstructions;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::FloatInstructionCount"]/*' />
	public uint FloatInstructionCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::IntInstructionCount"]/*' />
	public uint IntInstructionCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::UintInstructionCount"]/*' />
	public uint UintInstructionCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::StaticFlowControlCount"]/*' />
	public uint StaticFlowControlCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::DynamicFlowControlCount"]/*' />
	public uint DynamicFlowControlCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::MacroInstructionCount"]/*' />
	public uint MacroInstructionCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::ArrayInstructionCount"]/*' />
	public uint ArrayInstructionCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::MovInstructionCount"]/*' />
	public uint MovInstructionCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::MovcInstructionCount"]/*' />
	public uint MovcInstructionCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::ConversionInstructionCount"]/*' />
	public uint ConversionInstructionCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::BitwiseInstructionCount"]/*' />
	public uint BitwiseInstructionCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::MinFeatureLevel"]/*' />
	public Graphics.Direct3D.FeatureLevel MinFeatureLevel;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::RequiredFeatureFlags"]/*' />
	public ulong RequiredFeatureFlags;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::Name"]/*' />
	public unsafe sbyte* Name;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::FunctionParameterCount"]/*' />
	public int FunctionParameterCount;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::HasReturn"]/*' />
	public Bool32 HasReturn;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::Has10Level9VertexShader"]/*' />
	public Bool32 Has10Level9VertexShader;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_FUNCTION_DESC::Has10Level9PixelShader"]/*' />
	public Bool32 Has10Level9PixelShader;
}

/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_PARAMETER_DESC"]/*' />
/// <unmanaged>D3D12_PARAMETER_DESC</unmanaged>
public partial struct ParameterDescription
{
	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_PARAMETER_DESC::Name"]/*' />
	public unsafe sbyte* Name;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_PARAMETER_DESC::SemanticName"]/*' />
	public unsafe sbyte* SemanticName;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_PARAMETER_DESC::Type"]/*' />
	public Graphics.Direct3D.ShaderVariableType Type;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_PARAMETER_DESC::Class"]/*' />
	public Graphics.Direct3D.ShaderVariableClass Class;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_PARAMETER_DESC::Rows"]/*' />
	public uint Rows;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_PARAMETER_DESC::Columns"]/*' />
	public uint Columns;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_PARAMETER_DESC::InterpolationMode"]/*' />
	public Graphics.Direct3D.InterpolationMode InterpolationMode;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_PARAMETER_DESC::Flags"]/*' />
	public Graphics.Direct3D.ParameterFlags Flags;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_PARAMETER_DESC::FirstInRegister"]/*' />
	public uint FirstInRegister;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_PARAMETER_DESC::FirstInComponent"]/*' />
	public uint FirstInComponent;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_PARAMETER_DESC::FirstOutRegister"]/*' />
	public uint FirstOutRegister;

	/// <include file='../Direct3D12.xml' path='doc/member[@name="D3D12_PARAMETER_DESC::FirstOutComponent"]/*' />
	public uint FirstOutComponent;
}
