Partilhar via


Rasterizador WGF11 (WoW64)

Esse teste automatizado verifica vários aspectos do rasterizador primitivo D3D e do estado do rasterizador, conforme implementado pelo hardware.

Este tópico se aplica aos seguintes trabalhos de teste:

  • Rasterizador WGF11

  • Rasterizador WGF11 (WoW64)

Detalhes do teste

   
Especificações
  • Device.Graphics.AdapterRender.D3D111Core.D3D111CorePrimary
  • Device.Graphics.AdapterRender.D3D11Core.D3D11CorePrimary
  • Device.Graphics.AdapterRender.D3D101Core.D3D101CorePrimary
  • Device.Graphics.AdapterRender.D3D10Core.D3D10CorePrimary
Plataformas
  • Windows 10, edições de cliente (x64)
  • Windows Server 2016 (x64)
  • Windows 10, edições de cliente (Arm64)
Versões com suporte
  • Windows 10
  • Windows 10, versão 1511
  • Windows 10, versão 1607
  • Windows 10, versão 1703
  • Windows 10, versão 1709
  • Windows 10, versão 1803
  • Windows 10, versão 1809
  • Windows 10, versão 1903
  • Próxima atualização para Windows 10
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 recurso podem ter documentação adicional, incluindo pré-requisitos, configuração e informações de solução de problemas, que podem ser encontradas 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 de teste de adaptador gráfico ou chipset.

Solucionando problemas

Para solução de 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 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).

Mais informações

Para D3D10 e superior, esse teste verifica o seguinte:

  • Abate primitivo, modo de preenchimento e ordem de enrolamento com base no estado do rasterizador.

  • Modos de interpolação no sombreador de pixel

    • O modo constante é simples, pois não há nenhuma alteração dos valores enviados do sombreador de vértice.

    • Como não é bem especificado, os modos lineares são verificados garantindo que os pixels adjacentes não sejam iguais e sigam o gradiente de uma borda.

  • Invocação de sombreador de pixel de frequência de exemplo (D3D10.1 e superior).

Para D3D11, esse teste verifica a avaliação do atributo do modelo de pull.

As seguintes funções intrínsecas serão introduzidas em D3D11 (HLSL 5.0) para o recurso de avaliação de atributo de modelo de pull:

  • EvaluateAttributeSnapped( attrib numeric value, int2 pixeloffset )

  • EvaluateAttributeAtSample( attrib numeric value, uint sampleindex )

  • EvaluateAttributeAtCentroid( attrib numeric value )

Para cada função intrínseca, um conjunto de sombreadores de pixel será gerado, direcionando os casos em combinações diferentes dos valores de parâmetro da função intrínseca e os modos de interpolação declarados dos atributos de entrada.

Veja a seguir fatores de teste para todos os três intrínsecos:

  • Atributos de entrada passados do sombreador de Vértice.

    Observação

       Somente o atributo de tipo float pode ser interpolado; tipo int/uint sempre será o modo de interpolação constante

     

    • float4 texCoord : TEXCOORD

    • cor float4: COLOR

    • float clipDis : SV_ClipDistance

  • Declarações de modos de interpolação.

    Observação

       O modo de nointerpolação não é permitido pelo compilador HLSL quando o atributo correspondente é avaliado com o modelo de pull no sombreador.

     

    • linear

    • linear noPerspective

    • centroide linear

    • exemplo linear

    • linear noPerspective centroid

    • exemplo linear noPerspective

  • Primitivos a serem desenhados:

    • Quando o modo de interpolação for linear, um triângulo C1-C2-C3 da seguinte maneira será desenhado. Isso abrange um pixel inteiro e dois pixels e meio. As coordenadas dos vértices no espaço de projeção são as seguintes:

      <imagem need aqui

      C1: (-1, 1, 0), C2(-1, -1, 0), C3(1, 1, 0).

      Triângulo direito dentro de um quadrado, com vértices C1, C2 e C3; C1 forma o ângulo de 90 graus e está no canto superior esquerdo do quadrado

  • Quando o modo de interpolação não for específico, um triângulo A-B-C com as seguintes coordenadas de vértice no espaço de projeção será desenhado:

    A:(-1, 1, 1);

    B:(-1, -1, 0);

    C:(1, 1, 1)

    O triângulo de espaço na tela deve abranger os mesmos pixels e áreas de pixel que o triângulo C1-C2-C3 mostrado acima.

  • Destino de renderização

    • Formato: todos os formatos que dão suporte ao destino de renderização.

    • Contagem de exemplos: 1, 2, ... a contagem máxima de exemplos com suporte.

Valores diferentes de pixeloffset para EvaluateAttributeSnapped( )

Idealmente, todas as possíveis 256 posições de deslocamento. Se o teste for muito longo, esse grupo de casos de teste será reduzido para 4 posições de canto, 8 posições de borda, 4 posições da grade 4x4, 4 posições da grade 8x8 e 4 posições da grade 16x16.

Valores diferentes de sampleindex para EvaluateAttributeAtSample( )

Todos os índices de exemplo compatíveis com o destino de renderização

O método de verificação começa quando o sombreador de pixel grava o valor do atributo interpolado no destino de renderização. Os dados de destino de renderização são então mapeados e lidos. Em casos de destinos de renderização multisampled, é necessário resolve multisample antes do mapeamento. Os dados de resultado serão comparados com os dados interpolados pré-calculados ou os dados provenientes do acesso direto ao atributo.

  1. Quando o modo de interpolação é linear não específico:

    1. Calcule e armazene os valores interpolados (e extrapolados para área descoberta de p2 e p3) para 256 posições de deslocamento de cada pixel de p1, p2, p3.

    2. Para EvaluateAttributeSnapped:

      • O pixel p1 deve ter o valor do atributo "pulled" entre os valores esperados para deslocamentos vizinhos à esquerda e à direita (bem como superior e inferior) do deslocamento "puxado".

      • Pixels p2 e p3:

        Em casos de amostra única, eles não devem ser renderizados.

        Em casos de várias amostras, eles devem ter o valor do atributo "pulled" entre os valores esperados para deslocamentos vizinhos de esquerda e direita (bem como superior e inferior) do deslocamento "pulled".

    3. Para EvaluateAttributeAtSample com SampleFinder, localize a posição do índice de exemplo no sistema de coordenadas de exemplo com o intervalo [-8, 7]. Use essa posição para fazer a verificação da mesma maneira que em EvaluateAttributeSnapped acima.

    4. Para EvaluateAttributeAtCentroid, desenhe o triângulo C1-C2-C3 com SV_COVERAGE para descobrir a primeira amostra coberta, que é a posição centroide definida pelo Modelo de Sombreador 5.0. Use o índice de exemplo para centoid para fazer a verificação da mesma maneira que em EvaluateAttributeAtSample acima.

  2. Quando o modo de interpolação é linear:

    1. Calcule e armazene os valores interpolados (e extrapolados para área descoberta de p2 e p3) para 256 posições de deslocamento de cada pixel, usando a interpolação correta de perspectiva. Interpole os valores de atributo que foram divididos pelo respectivo valor de profundidade e divida o valor do atributo interpolado pela recíproca interpolada da profundidade.

    2. Para EvaluateAttributeSnapped(), use a mesma verificação que 2.a.

    3. Para EvaluateAttributeAtCentroid(), use a mesma verificação que 2.c.

    4. Para EvaluateAttributeAtSample(), use a mesma verificação que 2.b.

  3. Use PSInvocation para verificar o número de invocações de PS para todos os casos de teste.

    1. Se qualquer atributo tiver um modo de interpolação de exemplo ou SV_SAMPLEINDEX for declarado e a contagem de exemplo for maior que 1, PSInvocation deverá ser 3*(contagem de exemplo).

    2. Quando a contagem de exemplos for 1, PSInvocation deverá ser 1.

Sintaxe de comando

Opção de comando Descrição

Wgf11rasterizer

Executa os trabalhos de teste. Sem nenhuma opção, o teste enumera os dispositivos.

-FeatureLevel:XX.X

Define o nível de feauture, 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\

Wgf11rasterizer.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