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 da 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 para o contexto de execução. Essas informações são fornecidas ao driver do modo kernel durante o envio de 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 de 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 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 do modo kernel para envio de dados de driver privado.

NumPrimaries

Especifica o número de primárias e buffers de back de swapchain 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) compatível com o driver de exibição no modo de usuário.

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 para um valor de 0x80000001 para contextos associados a DDIs de modo de usuário com thread livre. O driver de exibição do modo de usuário deve incrementar o valor para cada pfnRenderCb chamada 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

Observações

O pfnSubmitCommandCb caminho de código 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 lista de alocação pequena 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 devem conter alocações consideradas swapChainBackBuffer alocações de acordo com o runtime, além das primárias. Isso é exposto ao driver do modo de usuário por um novo sinalizador no D3D10_DDI_RESOURCE_MISC_FLAG. O runtime fornecerá o sinalizador de D3DWDDM2_0DDI_RESOURCE_MISC_DISPLAYABLE_SURFACE para o driver de modo de usuário durante as chamadas para criar um recurso ou heap criado como um de swapchain FlipEx ou primário. 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
de cliente com suporte mínimo Windows 10
servidor com suporte mínimo Windows Server 2016
cabeçalho d3dumddi.h (inclua D3dumddi.h)

Consulte também

D3D10_DDI_RESOURCE_MISC_FLAG

pfnRenderCb

pfnSubmitCommandCb