структура 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
Уникальный идентификатор для каждого вызова функции pfnRenderCb . Начинается со значения 1 для контекстов, связанных с однопоточными DDIs в пользовательском режиме, и диапазонов до значения 0x80000001 для контекстов, связанных с DDIs в режиме пользователя со свободным потоком. Драйвер отображения пользовательского режима должен увеличивать значение для каждого вызова 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 .
Несмотря на имя, в дополнение к основным в среде выполнения должны содержаться выделения, которые считаются выделениями SwapChainBackBuffer в соответствии со средой выполнения. Это предоставляется драйверу пользовательского режима с помощью нового флага в D3D10_DDI_RESOURCE_MISC_FLAG. Среда выполнения предоставит драйверу пользовательского режима флаг D3DWDDM2_0DDI_RESOURCE_MISC_DISPLAYABLE_SURFACE во время вызовов для создания ресурса или кучи, созданной в качестве цепочки буферов FlipEx или основной цепочки. Драйвер может использовать этот флаг для определения всех выделений, которые должны быть помещены в список Письменные назначения для Microsoft Direct3D 11. Другие среды выполнения не изменились.
Если драйвер получает вызов CreateResource с этим флагом, выделение должно быть добавлено в этот список при каждом вызове pfnSubmitCommandCb , который записывает данные на поверхность.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 10 |
Минимальная версия сервера | Windows Server 2016 |
Верхняя часть | d3dumddi.h (включая D3dumddi.h) |