protected override void CreateImpl() { SharpDX.Direct3D12.DescriptorHeapDescription descDx = new SharpDX.Direct3D12.DescriptorHeapDescription { DescriptorCount = (int) Desc.NumResourceDescriptors, NodeMask = 0 }; switch (Desc.Type) { case Descriptor.ResourceDescriptorType.ShaderResource: descDx.Type = DescriptorHeapType.ConstantBufferViewShaderResourceViewUnorderedAccessView; descDx.Flags = DescriptorHeapFlags.ShaderVisible; break; case Descriptor.ResourceDescriptorType.Sampler: descDx.Type = DescriptorHeapType.Sampler; descDx.Flags = DescriptorHeapFlags.ShaderVisible; break; case Descriptor.ResourceDescriptorType.RenderTarget: descDx.Type = DescriptorHeapType.RenderTargetView; descDx.Flags = DescriptorHeapFlags.None; break; case Descriptor.ResourceDescriptorType.DepthStencil: descDx.Type = DescriptorHeapType.DepthStencilView; descDx.Flags = DescriptorHeapFlags.None; break; default: throw new ArgumentOutOfRangeException(); } DescriptorHeapDX12 = ((Device) Device).DeviceD3D12.CreateDescriptorHeap(descDx); }
void CreateHeaps() { _sizeRTV = _dev.GetDescriptorHandleIncrementSize(SharpDX.Direct3D12.DescriptorHeapType.RenderTargetView); { SharpDX.Direct3D12.DescriptorHeapDescription desc; desc.Type = SharpDX.Direct3D12.DescriptorHeapType.RenderTargetView; desc.DescriptorCount = FrameCount; desc.Flags = SharpDX.Direct3D12.DescriptorHeapFlags.None; desc.NodeMask = 0; _heapRTV = _dev.CreateDescriptorHeap(desc); } { SharpDX.Direct3D12.DescriptorHeapDescription desc; desc.Type = SharpDX.Direct3D12.DescriptorHeapType.DepthStencilView; desc.DescriptorCount = 1; desc.Flags = SharpDX.Direct3D12.DescriptorHeapFlags.None; desc.NodeMask = 0; _heapDSV = _dev.CreateDescriptorHeap(desc); } }
protected override void CreateImpl() { SharpDX.Direct3D12.DescriptorHeapDescription descDx = new SharpDX.Direct3D12.DescriptorHeapDescription { DescriptorCount = (int)Desc.NumResourceDescriptors, NodeMask = 0 }; switch (Desc.Type) { case Descriptor.ResourceDescriptorType.ShaderResource: descDx.Type = DescriptorHeapType.ConstantBufferViewShaderResourceViewUnorderedAccessView; descDx.Flags = DescriptorHeapFlags.ShaderVisible; break; case Descriptor.ResourceDescriptorType.Sampler: descDx.Type = DescriptorHeapType.Sampler; descDx.Flags = DescriptorHeapFlags.ShaderVisible; break; case Descriptor.ResourceDescriptorType.RenderTarget: descDx.Type = DescriptorHeapType.RenderTargetView; descDx.Flags = DescriptorHeapFlags.None; break; case Descriptor.ResourceDescriptorType.DepthStencil: descDx.Type = DescriptorHeapType.DepthStencilView; descDx.Flags = DescriptorHeapFlags.None; break; default: throw new ArgumentOutOfRangeException(); } DescriptorHeapDX12 = ((Device)Device).DeviceD3D12.CreateDescriptorHeap(descDx); }