структура D3DDDICB_SUBMITCOMMAND (d3dumddi.h)
Структура D3DDDICB_SUBMITCOMMAND используется для отправки буферов команд в контекстах, поддерживающих виртуальную адресацию графического модуля обработки (GPU).
Синтаксис
typedef struct _D3DDDICB_SUBMITCOMMAND {
D3DGPU_VIRTUAL_ADDRESS Commands;
UINT CommandLength;
D3DDDICB_SUBMITCOMMANDFLAGS Flags;
UINT BroadcastContextCount;
HANDLE BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT];
VOID *pPrivateDriverData;
UINT PrivateDriverDataSize;
UINT NumPrimaries;
D3DKMT_HANDLE WrittenPrimaries[D3DDDI_MAX_WRITTEN_PRIMARIES];
D3DDDI_MARKERLOGTYPE MarkerLogType;
UINT RenderCBSequence;
union {
struct {
UINT FirstAPISequenceNumberHigh;
UINT CompletedAPISequenceNumberLow0Size;
UINT CompletedAPISequenceNumberLow1Size;
UINT BegunAPISequenceNumberLow0Size;
UINT BegunAPISequenceNumberLow1Size;
};
UINT BatchedMarkerDataCount;
};
union {
struct {
const UINT *pCompletedAPISequenceNumberLow0;
const UINT *pCompletedAPISequenceNumberLow1;
const UINT *pBegunAPISequenceNumberLow0;
const UINT *pBegunAPISequenceNumberLow1;
};
const D3DDDI_BATCHEDMARKERDATA *pBatchedMarkerData;
};
UINT Reserved;
UINT NumHistoryBuffers;
D3DKMT_HANDLE *HistoryBufferArray;
HANDLE hSyncToken;
void *pReserved;
} D3DDDICB_SUBMITCOMMAND;
Члены
Commands
Виртуальный адрес GPU для команд, отправляемых в контекст для выполнения. Эти сведения предоставляются драйверу режима ядра во время отправки команд и также используются для отладки.
CommandLength
Указывает длину в байтах команд, отправляемых в GPU. Эти сведения предоставляются драйверу режима ядра во время отправки команд и также используются для отладки.
Flags
Экземпляр структуры D3DDDICB_SUBMITCOMMANDFLAGS.
BroadcastContextCount
Указывает количество контекста, в который должна быть отправлена команда. Это число должно быть не менее 1.
BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT]
Задает дескриптор контекста для выполнения указанных команд.
pPrivateDriverData
Указатель на частные данные драйвера, передаваемые драйверу режима ядра в рамках этой отправки.
PrivateDriverDataSize
Размер передаваемых данных частного драйвера. Этот размер должен быть меньше размера, запрошенного драйвером режима ядра для отправки данных частного драйвера.
NumPrimaries
Указывает количество первичных буферов и буферов цепочки буферов, записываемых в отправленные команды. Это равно количеству выделений в массиве WrittenPrimaries.
WrittenPrimaries[D3DDDI_MAX_WRITTEN_PRIMARIES]
Массивы дескриптора к первичным и буферам цепочки буферов обратной цепочки, записываемые в отправленные команды.
MarkerLogType
Перечисление D3DDDI_MARKERLOGTYPE, указывающее тип маркера в журнале трассировки событий для Windows (ETW), который поддерживает драйвер отображения в пользовательском режиме.
RenderCBSequence
Уникальный идентификатор для каждого вызова функции pfnRenderC b. Начинается со значения 1 для контекстов, связанных с однопоточными идентификаторами DDIs и диапазонами до значения 0x80000001 для контекстов, связанных с DD В свободном потоке пользовательского режима. Драйвер отображения в пользовательском режиме должен увеличивать значение для каждого pfnRenderCb вызывать его на любом обработчике.
FirstAPISequenceNumberHigh
Используется драйвером для передачи номера последовательности API контекста.
CompletedAPISequenceNumberLow0Size
Используется драйвером для передачи номера последовательности API контекста.
CompletedAPISequenceNumberLow1Size
Используется драйвером для передачи номера последовательности API контекста.
BegunAPISequenceNumberLow0Size
Используется драйвером для передачи номера последовательности API контекста.
BegunAPISequenceNumberLow1Size
Используется драйвером для передачи номера последовательности API контекста.
BatchedMarkerDataCount
Используется драйвером для передачи количества пакетных данных маркера контекста.
pCompletedAPISequenceNumberLow0
Указатель, используемый драйвером для передачи номера последовательности API контекста.
pCompletedAPISequenceNumberLow1
Указатель, используемый драйвером для передачи номера последовательности API контекста.
pBegunAPISequenceNumberLow0
Указатель, используемый драйвером для передачи номера последовательности API контекста.
pBegunAPISequenceNumberLow1
Указатель, используемый драйвером для передачи номера последовательности API контекста.
pBatchedMarkerData
Указатель, используемый драйвером для передачи пакетных данных маркера контекста.
Reserved
Этот элемент зарезервирован и должен иметь значение нулю.
NumHistoryBuffers
Количество буферов журнала.
HistoryBufferArray
Указатель на массив буферов журнала.
hSyncToken
pReserved
Замечания
pfnSubmitCommandCb путь кода больше не предоставляет список выделений для драйвера пользовательского режима, чтобы предоставить список выделений, которые будут считываться и записываться во время этой команды. Однако необходимо синхронизировать некоторые записи, которые обычно не будут известны без списка выделения. Для этого новый небольшой список выделения специально для поверхностей, в которые будут записываться и использоваться для отображения содержимого. Массив WrittenPrimaries следует использовать для предоставления таких выделений.
Несмотря на имя, WrittenPrimaries должны содержать выделения, которые считаются выделения swapChainBackBuffer в соответствии с средой выполнения в дополнение к основным. Это предоставляется драйверу пользовательского режима новым флагом в D3D10_DDI_RESOURCE_MISC_FLAG. Среда выполнения предоставит драйверу режима пользователя флаг D3DWDDM2_0DDI_RESOURCE_MISC_DISPLAYABLE_SURFACE во время вызовов для создания ресурса или кучи, созданной в качестве цепочки переключения FlipEx или основной. Драйвер может использовать этот флаг для определения всех выделений, которые следует поместить в список WrittenPrimaries для Microsoft Direct3D 11. Другие среды выполнения не изменились.
Если драйвер получает вызов CreateResource с этим флагом, выделение должно быть добавлено в этот список на каждом вызове pfnSubmitCommandCb вызов, который записывается на поверхность.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 10 |
минимальный поддерживаемый сервер | Windows Server 2016 |
заголовка | d3dumddi.h (include D3dumddi.h) |