D3DHAL_DP2RESPONSEQUERY structure (d3dhal.h)

DirectX 9.0 et versions ultérieures uniquement.

Une ou plusieurs D3DHAL_DP2RESPONSEQUERY structure sont analysées à partir de la mémoire tampon de réponse par le runtime après que le runtime a appelé le rappel D3dDrawPrimitives2 . Le pilote définit le membre bCommand de la structure D3DHAL_DP2RESPONSE sur D3DDP2OP_RESPONSEQUERY pour indiquer que les réponses aux requêtes précédemment émises sont disponibles dans la mémoire tampon de réponse.

Syntaxe

typedef struct _D3DHAL_DP2RESPONSEQUERY {
  DWORD dwQueryID;
  DWORD dwSize;
} D3DHAL_DP2RESPONSEQUERY;

Membres

dwQueryID

Identifie la requête pour laquelle les données de réponse sont disponibles.

dwSize

Spécifie la taille, en octets, des informations de requête que le pilote retourne au runtime.

Remarques

Le runtime utilise la commande D3DDP2OP_ISSUEQUERY pour demander au pilote de traiter les requêtes. Le rappel D3dDrawPrimitives2 du pilote doit traiter wPrimitiveCount D3DHAL_DP2ISSUEQUERY structures de requête à partir de la mémoire tampon de commandes. La valeur de wPrimitiveCount est spécifiée dans la structure D3DHAL_DP2COMMAND . Le pilote analyse ces structures de requête et les traduit en commandes spécifiques au matériel.

Si les requêtes précédemment envoyées à l’aide de l’opération D3DDP2OP_ISSUEQUERY terminées, le pilote définit la taille de la mémoire tampon de réponse dans le membre dwErrorOffset de la structure D3DHAL_DRAWPRIMITIVES2DATA et définit le membre ddrval de D3DHAL_DRAWPRIMITIVES2DATA sur D3D_OK pour une exécution réussie. Le pilote remplace également la mémoire tampon de commandes entrante par la mémoire tampon de réponse sortante. Chaque D3DHAL_DP2RESPONSEQUERY dans la mémoire tampon de réponse est suivie des données suivantes relatives à la requête :

  • BOOL pour D3DQUERYTYPE_EVENT. Avant de répondre avec D3DDP2OP_RESPONSEQUERY pour un événement, le pilote doit s’assurer que l’unité de traitement graphique (GPU) a terminé de traiter toutes les opérations D3DHAL_DP2OPERATION liées à l’événement. Autrement dit, le pilote répond uniquement après l’état ISSUE_END de l’événement. Le pilote doit toujours définir la valeur BOOL de l’événement sur TRUE lors de la réponse.
  • DWORD pour D3DQUERYTYPE_OCCLUSION. Le pilote définit ce DWORD sur le nombre de pixels pour lesquels le test z a réussi pour toutes les primitives entre le début et la fin de la requête. Si la mémoire tampon de profondeur est échantillonnée plusieurs fois, le pilote détermine le nombre de pixels à partir du nombre d’échantillons. Toutefois, si le périphérique d’affichage est capable d’une précision z-test par échantillonnage multiple, la conversion en nombre de pixels doit généralement être arrondie vers le haut. Une application peut ensuite case activée le résultat de l’occlusion par rapport à 0, pour signifier « complètement obluded ». Les pilotes qui convertissent des quantités multi-échantillonnée en quantités de pixels doivent détecter les modifications de multi-échantillonnage de la cible de rendu et continuer à calculer les résultats de la requête de manière appropriée.
  • D3DDEVINFO_VCACHE structure pour D3DQUERYTYPE_VCACHE.

Le runtime analyse la mémoire tampon de réponse retournée et met à jour ses structures de données internes.

Configuration requise

Condition requise Valeur
En-tête d3dhal.h (inclure D3dhal.h)

Voir aussi

D3DDEVINFO_VCACHE

D3DDP2OP_ISSUEQUERY

D3DDP2OP_RESPONSEQUERY

D3DHAL_DP2COMMAND

D3DHAL_DP2ISSUEQUERY

D3DHAL_DP2RESPONSE

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2