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) |