Интерфейс ID3D12Device (d3d12.h)

Представляет виртуальный адаптер; он используется для создания распределителей команд, списков команд, очередей команд, ограждений, ресурсов, объектов состояния конвейера, кучи, корневых подписей, образцов и многих представлений ресурсов.

Примечание Этот интерфейс появился в Windows 10. Приложения, предназначенные для Windows 10, должны использовать этот интерфейс вместо более поздних версий. Приложения, предназначенные для более поздней версии Windows 10, должны использовать соответствующую версию интерфейса ID3D12Device. Последняя версия этого интерфейса — ID3D12Device3, представленная в Windows 10 Fall Creators Update.
 

Наследование

Интерфейс ID3D12Device наследуется от ID3D12Object. ID3D12Device также имеет следующие типы элементов:

Методы

Интерфейс 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

Создайте объект sampler, который инкапсулирует сведения о выборке для текстуры.
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 Anniversary некоторые дополнительные функции доступны через 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
Header d3d12.h

См. также раздел

Основные интерфейсы

Создание дескрипторов

ID3D12Device1

ID3D12Device2

ID3D12Object

Управление памятью в Direct3D 12