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