Поделиться через


структура 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)

См. также

D3D10_DDI_RESOURCE_MISC_FLAG

pfnRenderCb

pfnSubmitCommandCb