ID3D12Device 介面 (d3d12.h)

表示虛擬配接器;用來建立命令配置器、命令清單、命令佇列、柵欄、資源、管線狀態物件、堆積、根簽章、取樣器,以及許多資源檢視。

注意此介面是在 Windows 10 中引進。 以 Windows 10 為目標的應用程式應該使用此介面,而不是更新版本。 以較新版本 Windows 10 為目標的應用程式應該使用適當的ID3D12Device介面版本。 此介面的最新版本是 Windows 10 Fall Creators Update 中引進的ID3D12Device3
 

繼承

ID3D12Device 介面繼承自 ID3D12ObjectID3D12Device 也有下列類型的成員:

方法

ID3D12Device 介面具有這些方法。

 
ID3D12Device::CheckFeatureSupport

取得目前圖形驅動程式所支援之功能的相關信息。 (ID3D12Device.CheckFeatureSupport)
ID3D12Device::CopyDescriptors

將描述項從來源複製到目的地。 (ID3D12Device.CopyDescriptors)
ID3D12Device::CopyDescriptorsSimple

將描述項從來源複製到目的地。 (ID3D12Device.CopyDescriptorsSimple)
ID3D12Device::CreateCommandAllocator

建立命令配置器物件。
ID3D12Device::CreateCommandList

建立命令清單。
ID3D12Device::CreateCommandQueue

建立命令佇列。
ID3D12Device::CreateCommandSignature

這個方法會建立命令簽章。
ID3D12Device::CreateCommittedResource

建立資源與隱含堆積,讓堆積足以包含整個資源,且資源會對應至堆積。
ID3D12Device::CreateComputePipelineState

建立計算管線狀態物件。
ID3D12Device::CreateConstantBufferView

建立常數緩衝區檢視,以存取資源數據。
ID3D12Device::CreateDepthStencilView

建立用於存取資源數據的深度樣板檢視。
ID3D12Device::CreateDescriptorHeap

建立描述項堆積物件。
ID3D12Device::CreateFence

建立柵欄物件。 (ID3D12Device.CreateFence)
ID3D12Device::CreateGraphicsPipelineState

建立圖形管線狀態物件。
ID3D12Device::CreateHeap

建立可與放置的資源和保留資源搭配使用的堆積。
ID3D12Device::CreatePlacedResource

建立放置在特定堆積中的資源。 放置的資源是可用的最輕量資源物件,而且是建立和終結的最快速資源物件。
ID3D12Device::CreateQueryHeap

建立查詢堆積。 查詢堆積包含查詢陣列。
ID3D12Device::CreateRenderTargetView

建立用於存取資源數據的轉譯目標檢視。 (ID3D12Device.CreateRenderTargetView)
ID3D12Device::CreateReservedResource

建立保留的資源,且尚未對應至堆積中的任何頁面。
ID3D12Device::CreateRootSignature

建立根簽章配置。
ID3D12Device::CreateSampler

建立取樣器物件,以封裝紋理的取樣資訊。
ID3D12Device::CreateShaderResourceView

建立著色器資源檢視,以存取資源中的數據。 (ID3D12Device.CreateShaderResourceView)
ID3D12Device::CreateSharedHandle

建立堆積、資源或柵欄對象的共用句柄。
ID3D12Device::CreateUnorderedAccessView

建立用於未排序存取的檢視。
ID3D12Device::Evict

啟用數據分頁,這可排除該數據的 GPU 存取。
ID3D12Device::GetAdapterLuid

取得目前裝置 (配接器) 的本機唯一標識碼。
ID3D12Device::GetCopyableFootprints

取得可複製的資源配置。 在上傳堆積中子配置空間時,協助應用程式填入D3D12_PLACED_SUBRESOURCE_FOOTPRINT和D3D12_SUBRESOURCE_FOOTPRINT。
ID3D12Device::GetDescriptorHandleIncrementSize

取得指定類型描述項堆積的句柄遞增大小。 這個值通常用來以正確的數量將句柄遞增至描述項陣列。
ID3D12Device::GetDeviceRemovedReason

取得移除裝置的原因。
ID3D12Device::GetNodeCount

報告與此裝置相關聯的實體適配卡 (節點數目) 。
ID3D12Device::GetResourceTiling

取得磚資源如何細分成磚的相關信息。 (ID3D12Device.GetResourceTiling)
ID3D12Device::MakeResident

將物件設為裝置的駐留物件。
ID3D12Device::OpenSharedHandle

使用 HANDLE 和 REFIID 開啟共用資源的句柄、共用堆積和共享柵欄。
ID3D12Device::OpenSharedHandleByName

使用名稱和存取開啟共用資源的句柄、共用堆積和共享柵欄。
ID3D12Device::SetStablePowerState

特定類型的程式代碼剖析和實驗性原型的開發時間協助。

備註

使用 D3D12CreateDevice 建立裝置。

對於 Windows 10 年度,可透過ID3D12Device1取得一些額外的功能。

範例

D3D1211on12 範例使用 ID3D12Device,如下所示:

標頭檔宣告。

// Pipeline objects.
D3D12_VIEWPORT m_viewport;
ComPtr<IDXGISwapChain3> m_swapChain;
ComPtr<ID3D12Device> m_device;
ComPtr<ID3D12Resource> m_renderTargets[FrameCount];
ComPtr<ID3D12Resource> m_depthStencil;
ComPtr<ID3D12CommandAllocator> m_commandAllocator;
ComPtr<ID3D12GraphicsCommandList> m_commandList;
ComPtr<ID3D12CommandQueue> m_commandQueue;
ComPtr<ID3D12RootSignature >m_rootSignature;
ComPtr<ID3D12DescriptorHeap> m_rtvHeap;
ComPtr<ID3D12DescriptorHeap> m_cbvSrvHeap;
ComPtr<ID3D12DescriptorHeap> m_dsvHeap;
ComPtr<ID3D12DescriptorHeap> m_samplerHeap;
ComPtr<ID3D12PipelineState> m_pipelineState1;
ComPtr<ID3D12PipelineState> m_pipelineState2;
D3D12_RECT m_scissorRect;

檢查支援的功能。

inline UINT8 D3D12GetFormatPlaneCount(
    _In_ ID3D12Device* pDevice,
    DXGI_FORMAT Format
    )
{
    D3D12_FEATURE_DATA_FORMAT_INFO formatInfo = {Format};
    if (FAILED(pDevice->CheckFeatureSupport(D3D12_FEATURE_FORMAT_INFO, &formatInfo, sizeof(formatInfo))))
    {
        return 0;
    }
    return formatInfo.PlaneCount;
}

請參閱 D3D12 參考中的範例程式代碼

規格需求

需求
目標平台 Windows
標頭 d3d12.h

另請參閱

核心介面

建立描述項

ID3D12Device1

ID3D12Device2

ID3D12Object

Direct3D 12 中的記憶體管理