Partager via


WGF11 Streamout

Ce test automatisé vérifie que le comportement de sortie de flux D3D des pilotes graphiques/matériels répond aux spécifications de Microsoft Direct3D.

Cette rubrique s’applique aux travaux de test suivants :

  • WGF11 Streamout

  • WGF11 Streamout (WoW64)

Détails du test

   
Spécifications
  • Device.Graphics.AdapterRender.D3D111Core.D3D111CorePrimary
  • Device.Graphics.AdapterRender.D3D11Core.D3D11CorePrimary
  • Device.Graphics.AdapterRender.D3D101Core.D3D101CorePrimary
  • Device.Graphics.AdapterRender.D3D10Core.D3D10CorePrimary
Plateformes
  • Windows 10, éditions clientes (x86)
  • Windows 10, éditions clientes (x64)
  • Windows Server 2016 (x64)
  • Windows 10, éditions clientes (Arm64)
Versions prises en charge
  • Windows 10
  • Windows 10, version 1511
  • Windows 10, version 1607
  • Windows 10 version 1703
  • Windows 10, version 1709
  • Windows 10 version 1803
  • Windows 10, version 1809
  • Windows 10 version 1903
  • Prochaine mise à jour de Windows 10
Durée d’exécution attendue (en minutes) 2
Catégorie Compatibilité
Délai d’expiration (en minutes) 120
Nécessite un redémarrage false
Nécessite une configuration spéciale false
Type automatique

 

Documentation supplémentaire

Les tests de cette zone de fonctionnalités peuvent contenir une documentation supplémentaire, notamment des informations sur les prérequis, l’installation et la résolution des problèmes, que vous trouverez dans les rubriques suivantes :

Exécution du test

Avant d’exécuter le test, effectuez la configuration du test comme décrit dans les conditions requises pour le test : Adaptateur graphique ou Prérequis de test de chipset.

Dépannage

Pour la résolution des problèmes génériques des échecs de test HLK, consultez Résolution des échecs de test Windows HLK.

Pour plus d’informations sur la résolution des problèmes, consultez Résolution des problèmes de test Device.Graphics.

Tous les cas de test retournent PASS ou FAIL. Passez en revue les résultats des tests dans le fichier journal pour obtenir des détails spécifiques sur les échecs. Le test peut retourner SKIP s’il est exécuté avec un niveau de fonctionnalité qui ne prend pas en charge la fonctionnalité en cours de test. Le test peut renvoyer BLOCKED s’il existe une exception non interceptée (le framework l’intercepte à la fin et le journalise). Pour passer en revue les détails du test, consultez le journal des tests à partir du Gestionnaire Windows HLK.

Plus d’informations

Les éléments suivants décrivent le plan de test de conformité StreamOut :

  • Cas de test de diffusion en continu général

    • Transmettez les données d’entrée dans le pipeline à l’aide de VB et diffusez en continu les données transformées à partir de VS ou GS.

      Notes

         Dans le cas de GS, tenez compte des problèmes d’amplification en émettant plusieurs primitives de sortie par primitive d’entrée.

       

    • Cycle sur différents types primitifs, tailles de mémoire tampon, nombre d’émissions, décalages de mémoire tampon vand.

    • Testez l’ajout de données SO en effectuant plusieurs appels Draw().

    • Pour GS, effectuez un cycle sur les nuanceurs avec différentes propriétés « maxvertexcount ».

      Parfois, cette valeur dépasse cette valeur, en vous assurant que seules les primitives complètes sont conservées.

    • Cycle possible sur différents types primitifs d’entrée et topologies de sortie.

    • Vérifier les résultats attendus de la requête

      • STREAMOUTPUTSTATS

      • STREAMOVERFLOWPREDICATE

    • Testez les écritures primitives incomplètes.

    • Tester l’ordre d’enroulement et la gestion des sommets de tête.

    • Jusqu’à 227 sommets SO par mémoire tampon SO sont autorisés.

      Notes

         Étant donné qu’il s’agit d’une ressource si volumineuse, cela fonctionne probablement pour un ou deux cas de test.

       

  • Tests Single-Buffer simples

    • Cycle sur plusieurs scénarios de déclaration :

      • Simplement.

      • Laissez des espaces vides.

      • Fractionnez les registres de sortie entre plusieurs éléments SO.

      • Registre de sortie de fusion en un seul élément SO.

    • Effectuez un cycle sur différentes tailles de vertex SO.

      Vérifiez la limite des sommets SO à 64 composants.

  • Tests multi-tampons simples

    • Mélanger les tailles/décalages des mémoires tampons afin que les mémoires tampons débordent à différents moments.

    • Cycle sur plusieurs scénarios de déclaration :

      • Simplement.

      • Ignorer l’emplacement de sortie.

      • Fractionnez les registres de sortie entre plusieurs éléments SO.

      • Diffusez en continu les composants de registre partiel.

      • Diffusez en continu vers une mémoire tampon unique dans un emplacement autre que zéro.

  • Ping Ponging des mémoires tampons de sortie de flux

    • Semblable aux tests simples à mémoire tampon unique et multi-tampon simple avec une torsion :

      • Lier initialement les mémoires tampons A et B avec un décalage positif.

      • Lier la mémoire tampon A à l’aide de la valeur de décalage -1.

      • Draw()

      • Lier la mémoire tampon B à l’aide de la valeur de décalage -1.

      • Draw()

      • Répétez autant de fois que nécessaire.

    • Dans plusieurs scénarios de mémoire tampon, envisagez éventuellement d’effectuer un ping-ponging uniquement une partie des mémoires tampons SO entre les appels Draw().

  • Modification de la taille du vertex SO à l’aide de la même mémoire tampon cible

    • Cas de test personnalisé qui se concentre sur la définition des foulées de vertex « gras » sur une seule mémoire tampon, puis Draw(), puis définit « skinny » SO vertex stride, puis Draw() à nouveau.

    • Examinez STREAMOUTPUTSTATS.

    • Surveillez le dépassement de capacité pendant la diffusion en continu de vertex « gras » et assurez-vous que les sommets maigres ne peuvent pas être ajoutés à la cible.

      Notes

         Envisagez le ping-ponging pendant cette étape pour vous assurer que l’état de dépassement de capacité est « collant » sur la mémoire tampon.

       

  • Sortie de flux adressable (D3D11)

    Testez RasterizedStream et plusieurs vecteurs de données :

    • Lors de l’envoi d’un flux au rastériseur, assurez-vous que le résultat final utilise les données de vertex de ce flux.

    • Assurez-vous que plusieurs vecteurs de données peuvent être générés à partir d’un flux sous le niveau de fonctionnalité 11, même lors de l’utilisation d’un nuanceur gs_4_x.

    • Testez les foulées qui ne sont pas étroitement alignées sur la taille d’un élément dans une mémoire tampon de sortie de flux.

    • Vérifiez que la sortie du flux fonctionne lorsque le runtime détermine les foulées en fonction de la taille calculée à l’aide de la déclaration de sortie de flux. Le runtime effectue cette opération lorsque les paramètres stride dans l’appel de création sont tous les deux NULL.

  • Tester le niveau de fonctionnalité et le comportement des requêtes :

    • Lorsque vous utilisez les niveaux de fonctionnalité 10 et 10.1, assurez-vous que seul le flux 0 peut être utilisé pour la sortie de flux.

    • Lorsque vous utilisez les niveaux de fonctionnalités 10 et 10.1, assurez-vous que seuls gs_4_x nuanceurs peuvent être utilisés. Si plusieurs mémoires tampons sont utilisées, assurez-vous qu’un seul vecteur de données peut être généré à partir du flux 0 i.

    • les requêtes D3D11_QUERY_SO_STATISTICS et D3D11_QUERY_SO_OVERFLOW_PREDICATE doivent retourner les données correctes pour la somme de tous les flux. D3D11_QUERY_SO_STATISTICS_STREAMn et les requêtes D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAMn retournent les données correctes pour chaque flux. Il existe actuellement des cas de test pour le cas de flux unique. Les éléments suivants seront vérifiés :

      • Nombre attendu de primitives écrites pour diffuser des mémoires tampons de sortie.

      • Taille attendue des primitives (si elles doivent toutes être sorties vers des mémoires tampons).

      • Le prédicat de dépassement de capacité est déclenché lorsqu’une mémoire tampon déborde lors de l’écriture dans celle-ci.

      • Si une mémoire tampon dans un flux est remplie, les écritures dans toutes les mémoires tampons de ce flux sont empêchées.

      • Les résultats des requêtes pour les flux non définis ne doivent pas être affectés.

Syntaxe de commande

Option de commande Description

Wgf11streamout

Rusez le test. Sans aucune option, le test énumère les appareils.

-FeatureLevel:XX.X

Définit le niveau de fonctionnalité testé où XX.X est le niveau de fonctionnalité que le test exécutera à : 10.0, 10.1 ou 11.0.

Notes

   Pour obtenir de l’aide sur la ligne de commande pour ce fichier binaire de test, tapez /?.

 

Liste de fichiers

File Emplacement

Configdisplay.exe

<[testbinroot]>\nttest\windowstest\tools\

D3d11_1sdklayers.dll

<[testbinroot]>\nttest\windowstest\graphics\d3d\support\

D3d11ref.dll

<[testbinroot]>\nttest\windowstest\graphics\d3d\support\

D3d11sdklayers.dll

<[testbinroot]>\nttest\windowstest\graphics\d3d\support\

D3dcompiler_test.dll

<[testbinroot]>\nttest\windowstest\graphics\d3d\support

D3dx10_test.dll

<[testbinroot]>\nttest\windowstest\graphics\d3d\support\

d3dx11_test.dll

<[testbinroot]>\nttest\windowstest\graphics\d3d\support\

TDRWatch.exe

<[testbinroot]>\nttest\windowstest\graphics\

Wgf11streamout.exe

<[testbinroot]>\nttest\windowstest\graphics\d3d\conf

 

Paramètres

Nom du paramètre Description des paramètres
MODIFIEDCMDLINE Arguments de ligne de commande supplémentaires pour l’exécutable de test
LLU_NetAccessOnly LLU Nom de l’utilisateur net
ConfigDisplayCommandLine Ligne de commande personnalisée pour ConfigDisplay. Par défaut : logo
TDRArgs /get ou /set