структура DXGK_DEVICEINFO (d3dkmddi.h)
Структура DXGK_DEVICEINFO описывает параметры, необходимые подсистеме ядра графического ядра Microsoft DirectX от драйвера мини-порта дисплея.
Синтаксис
typedef struct _DXGK_DEVICEINFO {
[out] UINT DmaBufferSize;
[out] UINT DmaBufferSegmentSet;
[out] UINT DmaBufferPrivateDataSize;
[out] UINT AllocationListSize;
[out] UINT PatchLocationListSize;
[out] DXGK_DEVICEINFOFLAGS Flags;
} DXGK_DEVICEINFO;
Члены
[out] DmaBufferSize
Размер (в байтах) буфера аппаратных команд, которые отправляются через прямой доступ к памяти (DMA) на оборудование.
Буфер DMA может увеличиваться и уменьшаться после создания устройства; однако буфер DMA никогда не может уменьшаться меньше начального размера, указанного DmaBufferSize .
[out] DmaBufferSegmentSet
Идентификаторы сегментов, в которых буферы DMA должны быть доступны графическому процессору (GPU).
[out] DmaBufferPrivateDataSize
Размер (в байтах) частной структуры данных, резидентной драйвером, связанной с каждым буфером DMA. Память для этой частной структуры данных выделяется из непагрегированного пула. Если драйвер указывает ноль в DmaBufferPrivateDataSize, для частной структуры данных память не выделяется.
Структура частных данных, связанная с буфером DMA, инициализируется до нуля при создании буфера DMA. В течение времени существования буфера DMA диспетчер видеопамятки никогда не обращается к частной структуре данных, связанной с буфером DMA.
[out] AllocationListSize
Начальное число элементов в массиве выделений (то есть массиве DXGK_ALLOCATIONLIST структур). Это число является начальным числом выделений, запрашиваемых драйвером в членах pAllocationListDXGKARG_PRESENT и DXGKARG_RENDER структур в вызовах функций DxgkDdiPresent и DxgkDdiRender драйвера.
Список выделения может увеличиваться и уменьшаться после создания устройства; Однако список выделения никогда не может уменьшаться меньше начального размера, указанного в AllocationListSize .
[out] PatchLocationListSize
Начальное число элементов в массиве расположений исправлений (то есть массиве D3DDDI_PATCHLOCATIONLIST структур) для устройства в пользовательском режиме и режиме ядра. Это число является начальным числом расположений исправлений, которые драйвер запрашивает, чтобы они были в членах pPatchLocationListInDXGKARG_RENDER структур в вызовах функции DxgkDdiRender .
Список расположений исправлений может увеличиваться и уменьшаться после создания устройства; Однако список расположений исправлений никогда не может уменьшаться меньше начального размера, указанного в PatchLocationListSize .
[out] Flags
Структура DXGK_DEVICEINFOFLAGS , определяющая в флагах битовых полей сведения об устройстве.
Комментарии
Драйвер мини-порта дисплея задает значения для членов DmaBufferSize и AllocationListSize , чтобы гарантировать следующее:
- Графическая подсистема DirectX может использовать только один буфер DMA для отображения (с помощью функции DxgkDdiPresent драйвера мини-порта дисплея) по крайней мере одну структуру RECT для всех сценариев.
- Размеры буферов DMA и списков выделения достаточно большие, чтобы вместить по крайней мере одну команду, которую нельзя разделить на несколько буферов.
- Размеры буферов DMA и списков выделения достаточно велики, чтобы избежать накладных расходов на настройку и DMA.
Если драйвер устанавливает для DmaBufferSegmentSet значение 0, диспетчер видеопамятки выделяет для буферов DMA непрерывную память с блокировкой страниц, которая сопоставляется с объединенной памятью записи. Таким образом, GPU должен получать доступ к буферам DMA с помощью циклов PCI в системах, где передача AGP, которая происходит за пределами апертуры AGP, не разрешена.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista |
Верхняя часть | d3dkmddi.h (включая D3dkmddi.h) |