Partilhar via


estrutura D3DDDICB_SUBMITCOMMAND (d3dumddi.h)

A estrutura D3DDDICB_SUBMITCOMMAND é usada para enviar buffers de comando em contextos que dão suporte ao endereçamento virtual de GPU (unidade de processamento gráfico).

Sintaxe

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;

Membros

Commands

Endereço virtual de GPU para os comandos que estão sendo enviados ao contexto para execução. Essas informações são fornecidas ao driver do modo kernel durante o envio do comando e também são usadas para fins de depuração.

CommandLength

Especifica o comprimento, em bytes, dos comandos que estão sendo enviados para a GPU. Essas informações são fornecidas ao driver do modo kernel durante o envio do comando e também são usadas para fins de depuração.

Flags

Uma instância da estrutura D3DDDICB_SUBMITCOMMANDFLAGS .

BroadcastContextCount

Especifica o número de contexto ao qual esses comandos devem ser enviados. Essa contagem deve ser pelo menos 1.

BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT]

Especifica o identificador do contexto para executar os comandos especificados.

pPrivateDriverData

Ponteiro para os dados privados do driver a serem passados para o driver do modo kernel como parte desse envio.

PrivateDriverDataSize

Tamanho das informações de dados do driver privado que estão sendo passadas. Esse tamanho deve ser menor do que o tamanho solicitado pelo driver de modo kernel para enviar dados de driver privado.

NumPrimaries

Especifica o número de primárias e buffers de back-in de troca que estão sendo gravados pelos comandos enviados. Isso é igual ao número de alocações na matriz WrittenPrimaries .

WrittenPrimaries[D3DDDI_MAX_WRITTEN_PRIMARIES]

Matrizes de identificador para as primárias e buffers de back swapchain que estão sendo gravados pelos comandos enviados.

MarkerLogType

Uma enumeração D3DDDI_MARKERLOGTYPE que indica o tipo de marcador no log etw (Rastreamento de Eventos para Windows) ao qual o driver de exibição do modo de usuário dá suporte.

RenderCBSequence

Um identificador exclusivo para cada chamada de função pfnRenderCb . Começa com um valor de 1 para contextos associados a DDIs de modo de usuário de thread único e intervalos a um valor de 0x80000001 para contextos associados a DDIs de modo de usuário de thread livre. O driver de exibição do modo de usuário deve incrementar o valor de cada chamada pfnRenderCb feita em qualquer mecanismo.

FirstAPISequenceNumberHigh

Usado pelo driver para passar o número de sequência de API do contexto.

CompletedAPISequenceNumberLow0Size

Usado pelo driver para passar o número de sequência de API do contexto.

CompletedAPISequenceNumberLow1Size

Usado pelo driver para passar o número de sequência de API do contexto.

BegunAPISequenceNumberLow0Size

Usado pelo driver para passar o número de sequência de API do contexto.

BegunAPISequenceNumberLow1Size

Usado pelo driver para passar o número de sequência de API do contexto.

BatchedMarkerDataCount

Usado pelo driver para passar a contagem de dados de marcador em lote do contexto.

pCompletedAPISequenceNumberLow0

Um ponteiro usado pelo driver para passar o número de sequência de API do contexto.

pCompletedAPISequenceNumberLow1

Um ponteiro usado pelo driver para passar o número de sequência de API do contexto.

pBegunAPISequenceNumberLow0

Um ponteiro usado pelo driver para passar o número de sequência de API do contexto.

pBegunAPISequenceNumberLow1

Um ponteiro usado pelo driver para passar o número de sequência de API do contexto.

pBatchedMarkerData

Um ponteiro usado pelo driver para passar os dados de marcador em lote do contexto.

Reserved

Esse membro é reservado e deve ser definido como zero.

NumHistoryBuffers

O número de buffers de histórico.

HistoryBufferArray

Um ponteiro para a matriz de buffers de histórico.

hSyncToken

pReserved

Comentários

O caminho do código pfnSubmitCommandCb não fornece mais uma lista de alocação para o driver de modo de usuário fornecer uma lista de alocações que serão lidas e gravadas durante esse comando. No entanto, é necessário sincronizar algumas gravações que normalmente não seriam conhecidas sem a lista de alocação. Para isso, uma nova pequena lista de alocação especificamente para superfícies que serão gravadas e usadas para exibir conteúdo. A matriz WrittenPrimaries deve ser usada para fornecer essas alocações.

Apesar do nome, WrittenPrimaries deve conter alocações consideradas alocações SwapChainBackBuffer de acordo com o runtime, além das primárias. Isso é exposto ao driver de modo de usuário por um novo sinalizador no D3D10_DDI_RESOURCE_MISC_FLAG. O runtime fornecerá o sinalizador D3DWDDM2_0DDI_RESOURCE_MISC_DISPLAYABLE_SURFACE para o driver de modo de usuário durante chamadas para criar um recurso ou heap criado como uma cadeia de troca FlipEx ou primária. O driver pode usar esse sinalizador para determinar todas as alocações que devem ser colocadas na lista WrittenPrimaries do Microsoft Direct3D 11. Outros runtimes não foram alterados.

Se o driver receber uma chamada para CreateResource que tenha esse sinalizador, a alocação deverá ser adicionada a essa lista em cada chamada pfnSubmitCommandCb que grava na superfície.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10
Servidor mínimo com suporte Windows Server 2016
Cabeçalho d3dumddi.h (inclua D3dumddi.h)

Confira também

D3D10_DDI_RESOURCE_MISC_FLAG

pfnRenderCb

pfnSubmitCommandCb