Partager via


structure D3DDDICB_SUBMITCOMMAND (d3dumddi.h)

La structure D3DDDICB_SUBMITCOMMAND est utilisée pour envoyer des mémoires tampons de commande sur des contextes qui prennent en charge l’adressage virtuel de l’unité de traitement graphique (GPU).

Syntaxe

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;

Membres

Commands

Adresse virtuelle GPU aux commandes envoyées au contexte pour l’exécution. Ces informations sont fournies au pilote en mode noyau pendant l’envoi de commandes et sont également utilisées à des fins de débogage.

CommandLength

Spécifie la longueur, en octets, des commandes envoyées au GPU. Ces informations sont fournies au pilote en mode noyau pendant l’envoi de commandes et sont également utilisées à des fins de débogage.

Flags

Instance de la structure D3DDDICB_SUBMITCOMMANDFLAGS.

BroadcastContextCount

Spécifie le nombre de contexte à lequel ces commandes doivent être envoyées. Ce nombre doit être d’au moins 1.

BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT]

Spécifie le handle du contexte à exécuter les commandes spécifiées.

pPrivateDriverData

Pointeur vers les données privées du pilote à passer au pilote en mode noyau dans le cadre de cette soumission.

PrivateDriverDataSize

Taille des informations de données du pilote privé transmises. Cette taille doit être inférieure à la taille demandée par le pilote en mode noyau pour l’envoi de données de pilote privé.

NumPrimaries

Spécifie le nombre de valeurs primaires et de mémoires tampons de rémutation en cours d’écriture par les commandes envoyées. Cela est égal au nombre d’allocations dans le tableau WrittenPrimaries.

WrittenPrimaries[D3DDDI_MAX_WRITTEN_PRIMARIES]

Tableaux de handle vers les mémoires tampons primaires et de retour de permutation en cours d’écriture par les commandes envoyées.

MarkerLogType

Énumération D3DDDI_MARKERLOGTYPE qui indique le type de marqueur dans le journal Suivi d’événements pour Windows (ETW) pris en charge par le pilote d’affichage en mode utilisateur.

RenderCBSequence

Identificateur unique pour chaque appel de fonction pfnRenderCb. Commence à une valeur de 1 pour les contextes associés aux DDIS en mode utilisateur monothread et aux plages à une valeur de 0x80000001 pour les contextes associés aux DDIS en mode utilisateur libre. Le pilote d’affichage en mode utilisateur doit incrémenter la valeur de chaque pfnRenderCb l’appeler sur n’importe quel moteur.

FirstAPISequenceNumberHigh

Utilisé par le pilote pour passer le numéro de séquence d’API du contexte.

CompletedAPISequenceNumberLow0Size

Utilisé par le pilote pour passer le numéro de séquence d’API du contexte.

CompletedAPISequenceNumberLow1Size

Utilisé par le pilote pour passer le numéro de séquence d’API du contexte.

BegunAPISequenceNumberLow0Size

Utilisé par le pilote pour passer le numéro de séquence d’API du contexte.

BegunAPISequenceNumberLow1Size

Utilisé par le pilote pour passer le numéro de séquence d’API du contexte.

BatchedMarkerDataCount

Utilisé par le pilote pour passer le nombre de données de marqueur par lots du contexte.

pCompletedAPISequenceNumberLow0

Pointeur utilisé par le pilote pour passer le numéro de séquence d’API du contexte.

pCompletedAPISequenceNumberLow1

Pointeur utilisé par le pilote pour passer le numéro de séquence d’API du contexte.

pBegunAPISequenceNumberLow0

Pointeur utilisé par le pilote pour passer le numéro de séquence d’API du contexte.

pBegunAPISequenceNumberLow1

Pointeur utilisé par le pilote pour passer le numéro de séquence d’API du contexte.

pBatchedMarkerData

Pointeur utilisé par le pilote pour passer les données de marqueur par lot du contexte.

Reserved

Ce membre est réservé et doit être défini sur zéro.

NumHistoryBuffers

Nombre de mémoires tampons d’historique.

HistoryBufferArray

Pointeur vers le tableau de mémoires tampons d’historique.

hSyncToken

pReserved

Remarques

Le pfnSubmitCommandCb chemin de code ne fournit plus de liste d’allocations pour le pilote en mode utilisateur afin de fournir une liste d’allocations qui seront lues et écrites pendant cette commande. Toutefois, il est nécessaire de synchroniser certaines écritures qui ne seraient normalement pas connues sans la liste d’allocation. Pour cela, une nouvelle petite liste d’allocations spécifiquement pour les surfaces qui seront écrites dans et utilisées pour l’affichage du contenu. Le tableau WrittenPrimaries doit être utilisé pour fournir ces allocations.

Malgré le nom, WrittenPrimaries doit contenir des allocations considérées comme SwapChainBackBuffer allocations en fonction du runtime en plus des primaires. Ceci est exposé au pilote en mode utilisateur par un nouvel indicateur dans D3D10_DDI_RESOURCE_MISC_FLAG. Le runtime fournit l’indicateur de D3DWDDM2_0DDI_RESOURCE_MISC_DISPLAYABLE_SURFACE au pilote en mode utilisateur pendant les appels pour créer une ressource ou un tas créé en tant que flipEx swapchain ou principal. Le pilote peut utiliser cet indicateur pour déterminer toutes les allocations qui doivent être placées dans la liste WrittenPrimaries pour Microsoft Direct3D 11. Les autres runtimes n’ont pas changé.

Si le pilote reçoit un appel à CreateResource qui a cet indicateur, l’allocation doit être ajoutée à cette liste sur chaque pfnSubmitCommandCb appel qui écrit sur la surface.

Exigences

Exigence Valeur
client minimum pris en charge Windows 10
serveur minimum pris en charge Windows Server 2016
d’en-tête d3dumddi.h (include D3dumddi.h)

Voir aussi

D3D10_DDI_RESOURCE_MISC_FLAG

pfnRenderCb

pfnSubmitCommandCb