WGF11 Streamout
Esse teste automatizado verifica se o comportamento de fluxo de D3D de drivers gráficos/hardware atende às especificações do Microsoft Direct3D.
Este tópico se aplica aos seguintes trabalhos de teste:
WGF11 Streamout
WGF11 Streamout (WoW64)
Detalhes do teste
Especificações |
|
Plataformas |
|
Versões com suporte |
|
Tempo de execução esperado (em minutos) | 2 |
Categoria | Compatibilidade |
Tempo limite (em minutos) | 120 |
Requer reinicialização | false |
Requer configuração especial | false |
Tipo | automático |
Documentação adicional
Os testes nessa área de recursos podem ter documentação adicional, incluindo pré-requisitos, configuração e informações de solução de problemas, que podem ser encontrados nos tópicos a seguir:
Executando o teste
Antes de executar o teste, conclua a configuração de teste conforme descrito nos requisitos de teste: Pré-requisitos do Adaptador Gráfico ou do Teste de Chipset.
Solucionando problemas
Para solucionar problemas genéricos de falhas de teste do HLK, consulte Solução de problemas de falhas de teste do Windows HLK.
Para obter informações de solução de problemas, consulte Solução de problemas de teste de device.graphics.
Todos os casos de teste retornam PASS ou FAIL. Examine os resultados do teste no arquivo de log para obter detalhes específicos sobre falhas. O teste poderá retornar SKIP se ele for executado com um nível de recurso que não dá suporte ao recurso que está sendo testado. O teste poderá retornar BLOCKED se houver uma exceção não capturada (a estrutura a capturará no final e a registrará em log). Para examinar os detalhes do teste, examine o log de teste do Gerenciador de HLK do Windows.
Mais informações
O seguinte descreve o Plano de Teste de Conformidade do StreamOut:
Casos gerais de teste do Stream Out
Passe dados de entrada para o pipeline usando o VB e transmita dados transformados do VS ou GS.
Observação
No caso do GS, considere problemas de amplificação emitindo mais de um primitivo de saída por primitivo de entrada.
Ciclo em diferentes tipos primitivos, tamanhos de buffer, contagens de emissão, deslocamentos de buffer de vand.
Teste anexar dados SO fazendo várias chamadas Draw().
Para GS, pedale em sombreadores com propriedades "maxvertexcount" diferentes.
Ocasionalmente, estouro esse valor, certificando-se de que somente primitivos completos sejam mantidos.
Possivelmente, pedale em diferentes tipos primitivos de entrada e topologias de saída.
Verificar os resultados esperados da consulta
STREAMOUTPUTSTATS
STREAMOVERFLOWPREDICATE
Testar gravações primitivas incompletas.
Testar a ordem de enrolamento e a manipulação de vértice à esquerda.
Até 227 vértices SO por buffer SO são permitidos.
Observação
Como esse é um recurso tão grande, isso funciona provavelmente para um ou dois casos de teste.
Testes de Single-Buffer simples
Ciclo em vários cenários de declaração:
Simples.
Deixe lacunas.
A saída dividida registra vários elementos SO.
Mesclar o registro de saída em um único elemento SO.
Ciclo em diferentes tamanhos de vértice SO.
Verifique o limite de vértices SO de 64 componentes.
Testes de vários buffers simples
Misture tamanhos/deslocamentos do buffer para que os buffers transbordem em momentos diferentes.
Ciclo em vários cenários de declaração:
Simples.
Ignorar slot de saída.
A saída dividida registra vários elementos SO.
Transmitir componentes de registro parcial.
Transmitir para um único buffer no slot diferente de zero.
Ping ponging de buffers de saída de fluxo
Semelhante a testes simples de buffer único e vários buffers simples com um toque:
Associar inicialmente buffers A e B com um deslocamento positivo.
Associe o buffer A usando -1 valor de deslocamento.
Draw()
Associe o buffer B usando -1 valor de deslocamento.
Draw()
Repita conforme necessário.
Em vários cenários de buffer, considere opcionalmente ping-ponging apenas alguns dos buffers SO entre chamadas Draw().
Alterando o tamanho do vértice SO usando o mesmo buffer de destino
Caso de teste personalizado que se concentre em definir passos de vértice "gordo" para um único buffer, em seguida, Desenhar(), em seguida, define "skinny" SO vértice stride e, em seguida, Draw() novamente.
Examine STREAMOUTPUTSTATS.
Observe o estouro durante o streaming de vértice "gordo" e verifique se os vértices magros não podem ser acrescentados ao destino.
Observação
Considere o ping-ponging durante esta etapa para garantir que o estado estourado seja "autoadesiva" no buffer.
Saída de fluxo endereçável (D3D11)
Teste RasterizedStream e vários vetores de dados:
Ao enviar um fluxo para o rasterizador, verifique se o resultado final usa os dados de vértice desse fluxo.
Verifique se mais de um vetor de dados pode ser gerado de um fluxo no nível de recurso 11, mesmo ao usar um sombreador gs_4_x.
Teste os passos que não estão fortemente alinhados ao tamanho de um elemento em um buffer de saída de fluxo.
Verifique se a saída do fluxo funciona quando o runtime determina os passos com base no tamanho calculado usando a declaração de saída do fluxo. O runtime faz isso quando os parâmetros stride na chamada de criação são NULL.
Testar o nível de recurso e o comportamento da consulta:
Ao usar os níveis de recursos 10 e 10.1, verifique se somente o fluxo 0 pode ser usado para saída de fluxo.
Ao usar os níveis de recursos 10 e 10.1, verifique se apenas gs_4_x sombreadores podem ser usados. Se vários buffers forem usados, verifique se apenas um vetor de dados pode ser gerado do fluxo 0 i.
D3D11_QUERY_SO_STATISTICS e consultas D3D11_QUERY_SO_OVERFLOW_PREDICATE devem retornar os dados corretos para a soma de todos os fluxos. D3D11_QUERY_SO_STATISTICS_STREAMn e D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAMn consultas retornam os dados corretos para cada fluxo. Atualmente, há casos de teste para o caso de fluxo único. O seguinte será verificado:
Número esperado de primitivos gravados em buffers de saída de fluxo.
Tamanho esperado dos primitivos (se todos eles devem ser saída para buffers).
O predicado de estouro é disparado quando um buffer estoura ao gravar nele.
Se um buffer em um fluxo for preenchido, as gravações em todos os buffers nesse fluxo serão impedidas.
Os resultados das consultas para fluxos indefinidos não devem ser afetados.
Sintaxe de comando
Opção de comando | Descrição |
---|---|
Wgf11streamout |
Rusn o teste. Sem opções, o teste enumera dispositivos. |
-FeatureLevel:XX.X |
Define o nível de recurso testado em que XX.X é o Nível de Recurso em que o teste será executado em: 10.0, 10.1 ou 11.0. |
Observação
Para obter ajuda de linha de comando para esse binário de teste, digite /?.
Lista de Arquivos
Arquivo | Location |
---|---|
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 |
Parâmetros
Nome do parâmetro | Descrição do parâmetro |
---|---|
MODIFIEDCMDLINE | Argumentos de linha de comando adicionais para executável de teste |
LLU_NetAccessOnly | Nome da LLU do usuário líquido |
ConfigDisplayCommandLine | Linha de comando personalizada para ConfigDisplay. Padrão: logotipo |
TDRArgs | /get ou /set |