Partilhar via


Processamento de vídeo de alta definição DXVA – VideoProcessing

Este teste manual executa casos de teste no seguinte: IDXVAHD_VideoProcessor::SetVideoProcessBltState, IDXVAHD_VideoProcessor::GetVideoProcessBltState, IDXVAHD_VideoProcessor::SetVideoProcessStreamState, IDXVAHD_VideoProcessor::GetVideoProcessStreamState e IDXVAHD_VideoProcessor::VideoProcessBltHD.

Para obter detalhes sobre todos os casos de teste, consulte a seção "Informações de suporte" abaixo. A maioria dos casos de teste presentes na tela enquanto um utilitário pós-processa os quadros para comparação. A maioria dos casos de teste impõe um > PSNR 20.0f entre quadros processados por software e hardware. Para alguns casos de teste, o limite é reduzido devido à falta de suporte de alguns filtros e recursos na implementação do software.

O teste mostrará, em sua maioria, apenas uma janela semelhante a um ticker incrementando contagens de falha de aprovação e mostrando quais variáveis de caso de teste estão sendo iteradas.

Detalhes do teste

   
Especificações
  • Device.Graphics.WDDM11.Render.DXVAHD.DXVAHD
Plataformas
  • Windows 10, edições de cliente (x86)
  • 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.

Além disso, esse teste requer o seguinte software:

  • Um driver de exibição que dá suporte a D3DCAPS3_DXVAHD D3D9Caps.Caps3. Especificamente:

    • D3D9 dá suporte à exposição de D3DCAPS3_DXVAHD.

    • Formatos de saída necessários: D3DFMT_X8R8G8B8, D3DFMT_A8R8G8B8.

    • Formatos de entrada necessários: D3DFMT_X8R8G8B8, D3DFMT_A8R8G8B8, D3DFMT_YUY2, D3DFMT_AYUV e quaisquer destinos de renderização de decodificação com suporte.

  • dxvahdsw.dll.

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.

Esse teste mostrará, em sua maioria, apenas uma janela semelhante a um ticker incrementando contagens de falha de aprovação e mostrando quais variáveis de caso de teste estão sendo iteradas.

O teste retornará Pass ou Fail. O teste poderá retornar SKIP se o driver não expor D3DCAPS3_DXVAHD. Outros casos de teste podem ignorar com base no suporte ao estado do fluxo, nas tampas inversas do telecine, nas tampas de filtro, nas tampas de recursos e nos formatos com suporte. Para examinar os detalhes do teste, examine o log de teste do DTM Studio.

Mais informações

Após cada SetVideoProcessBltState, chame o GetVideoProcessBltState correspondente. A chamada garante relatórios adequados, processa e apresenta quadros em comparação com os quadros de referência para precisão. A maioria dos BltStates é alternada para cada ciclo completo de um determinado BltState e, em seguida, novamente para cada StreamState válido. No entanto, algumas permutações não são necessárias.

  • Verifique se os tipos de dados inválidos passados para SetVideoProcessBltState e GetVideoProcessBltState retornam E_INVALIDARG.

  • DXVAHD_BLT_STATE_TARGET_RECT_DATA

    • Verifique se a limitação de dados para rect menor que a superfície de saída resulta no dimensionamento correto.

    • Verifique se um rect maior que a superfície de saída resulta em um quadro expandido.

    • Verifique quando os dados de rect de destino estão definidos e Habilitar sinalizado como false, se toda a superfície é usada.

    • Processe um quadro com dados de rect de destino e Habilitar definido como false. Em seguida, processe outro quadro com os dados de rect de destino reduzidos, expandidos ou movidos e Habilitar é true. Verifique se a superfície é dimensionada ou movida adequadamente.

    • Verificar Padrão nenhum conjunto de dados resulta em toda a superfície sendo usada.

  • DXVAHD_BLT_STATE_BACKGROUND_COLOR_DATA

    • Verifique se o padrão é RGB preto.

    • Se YCbCr estiver definido como true, verifique se o intervalo de cores correto para plano de fundo é realmente apresentado.

    • Verifique rgb laranja (255.165, 0) juntamente com o valor preto padrão com valores alfa para RGB e YcbCr

    • com DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA

      • Verifique se a Cor da Tela de Fundo de YCbCr é usada e ColorSpaceData é de RGB_Range Completo, se o RGB de intervalo completo é ignorado e o intervalo limitado correto é usado de acordo com a configuração de Matrix e xvYCC especificadas.
    • com DXVAHD_BLT_STATE_ALPHA_FILL

      • Verifique o valor alfa de determinada cor da tela de fundo quando DXVAHD_ALPHA_FILL_MODE_BACKGROUND é usado em cores de plano de fundo diferentes.
  • DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA

    • Verifique se o uso padrão, RGB_Range, YCbCr_Matrix e YCbCr_xvYCC estão definidos como 0.

    • Verifique se Limitar RGB_Range limita com êxito o intervalo de cores a 16..235.

    • Verifique se o BT.709 aumenta corretamente o luma e o chroma adequadamente.

    • xvYCC estende com êxito o intervalo de cores. Essa validação é um caso especial, pois o processador de vídeo de referência não dá suporte a nenhuma superfície de saída diferente de XRGB. A validação disso é difícil e o processo será documentado posteriormente.

    • Verifique se DXVAHD_VPDEVCAPS. DeviceCaps não tem DXVAHD_DEVICE_CAPS_xvYCC. Validar YCbCr_xvYCC não ajusta nenhuma configuração e é verdadeiramente ignorado.

    • A tolerância é flexível inicialmente, mas o percentual inicial de precisão de pixel é de 90% de precisão.

  • DXVAHD_BLT_STATE_ALPHA_FILL_DATA

    • Verifique se as superfícies de saída não do formato Alfa estão inalteradas.

    • Verifique se as superfícies de saída do formato Alfa aplicam com êxito valores alfa à cor.

    • Verifique se o Modo padrão ajusta os valores alfa da tela de fundo corretamente.

      Teste a superfície de entrada do formato nonalpha com uma superfície de saída do formato alfa. Valide a correção alfa com precisão flexível novamente, inicialmente com 90% de precisão.

  • DXVAHD_BLT_STATE_CONSTRICTION_DATA

    • Devido à falta de suporte no driver de referência para o curso da constrição M2, os casos de teste devem ser validados fora da comparação direta 1:1 para tamanhos de amostra inferior válidos.

    • Verifique a amostragem down correta para a superfície de saída.

    • Se o tamanho for maior que o destino, verifique se a restrição está limitada ao tamanho do rect de destino.

    • Tente definir tamanhos como 0,* e *, 0 validar o valor retornado E_INVALIDARG.

    • Se DXVAHD_VPDEVCAPS. O FeatureCaps não expõe DXVAHD_FEATURE_CAPS_CONSTRICTION e, em seguida, verifica se o erro E_INVALIDARG é retornado quando a constrição tenta ser definida.

    • Verifique se Valor Padrão representa desabilitado. Se desabilitado for sinalizado e um tamanho for especificado, o valor de tamanho será ignorado.

  • DXVAHD_BLT_STATE_PRIVATE_DATA

    • Passe Guid, DataSize e pData inválidos. Valide se o driver manipula adequadamente.

    • O pData nulo recupera o tamanho correto do estado blt privado.

  • Verifique se os tipos de dados inválidos passados para SetVideoProcessStreamState e GetVideoProcessStreamState retornam E_INVALIDARG.

  • DXVAHD_STREAM_STATE_D3DFORMAT_DATA

    • Valide todos os formatos com suporte relatados por GetVideoProcessorInputFormats.

    • Valide um formato sem suporte em GetVideoProcessorInputFormats.

    • Valide se D3DFORMAT padrão está D3DFMT_UNKNOWN.

  • DXVAHD_STREAM_STATE_FRAME_FORMAT_DATA

    • Verifique se o valor padrão é Progressivo.

    • Verifique se os formatos Progressivo e Entrelaçado são apresentados adequadamente.

    • Se DXVAHD_INPUT_FORMAT_CAPS_RGB_INTERLACED não for relatado como compatível com DXVAHD_VPDEVCAPS. InputFormatCaps, verifique se o uso de DXVAHD_FRAME_FORMAT_INTERLACED_* é padrão para usar Progressivo.

  • DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA

    • Verifique os valores padrão.

    • Verifique se Limitar RGB_Range limita com êxito o intervalo de cores a 16..235.

    • Se DXVAHD_VPDEVCAPS. InputFormatCaps não relata suporte para DXVAHD_INPUT_FORMAT_CAPS_RGB_LIMITED_RANGE, verifique se quando RGB_Range é 1, ele é ignorado e FullRange é usado.

      • A validação de intervalo limitado não é possível com uma comparação 1:1 com a referência. Alguma validação flexível de brancos e pretos pode ser possível validar se o intervalo de cores foi limitado adequadamente.
    • Verifique se BT.709 aumenta corretamente a amostragem de luma e chroma.

    • xvYCC estende com êxito o intervalo de cores.

    • Verifique se DXVAHD_VPDEVCAPS. DeviceCaps não relata suporte para xvYCC.

    • Se possível e se o processamento for especificado, valide o aumento do desempenho da conversão de cores.

    • Verifique se DXVAHD_VPDEVCAPS. DeviceCaps não tem DXVAHD_DEVICE_CAPS_xvYCC. Validar YCbCr_xvYCC não ajusta nenhuma configuração e é verdadeiramente ignorado.

  • DXVAHD_STREAM_STATE_OUTPUT_RATE_DATA

    • Testar e validar valores padrão (ocorre especificamente interpolação).

    • Teste NormalRate e HalfRate, verificando se NormalRate é 2:1 entrelaçado com progressivo e HalfRate é 1:1 entrelaçado a progressivo.

    • Verifique todas as CustomRates se GetVideoProcessorCustomRates expõe alguma.

      • Especificar taxas inversas de telecine

        • O suporte a ITELECINE não estará disponível no processador de vídeo de referência, portanto, a comparação direta é impossível. Para validação, um quadro telecine é gerado e passado para a referência. Em seguida, o quadro não telecine é processado e comparado ao dos quadros fornecidos pelo quadro telecine.
    • Teste CustomRate sem suporte, interpolado e repetido.

    • Teste CustomRate sem suporte em NormalRate e HalfRate. Verifique se a E_INVALIDARG de erro foi retornada.

    • Valide se CustomRates com suporte não são definidos com êxito, a menos que DXVAHD_OUTPUT_RATE_CUSTOM seja especificado.

  • DXVAHD_STREAM_STATE_SOURCE_RECT_DATA

    • Verifique se a limitação de dados para rect menor que a superfície de entrada resulta em dimensionamento correto.

    • Verifique se um rect maior que a superfície de entrada resulta na transparência das áreas recortadas.

    • Verifique quando os dados de rect de origem estão definidos e Habilitar sinalizado como false, toda a superfície é usada.

    • Depois que um quadro é processado com dados de rect de origem e Habilitar é falso, um segundo quadro é processado com dados de rect de origem e Enable é true, verifique se a superfície está visível e é dimensionada de acordo com o tamanho da rect para a superfície de entrada.

    • Verificar Padrão nenhum conjunto de dados resulta em toda a superfície sendo usada.

  • DXVAHD_STREAM_STATE_DESTINATION_RECT_DATA

    • Verifique se a limitação de dados para rect menor que a superfície de saída resulta no dimensionamento correto.

    • Verifique se um rect maior que a superfície de saída resulta em áreas recortadas sendo recortadas.

    • Verifique quando os dados de rect de destino estão definidos e Habilitar sinalizado como false, toda a superfície é usada.

    • Depois que um quadro é processado com dados de rect de destino e Habilitar é falso, um segundo quadro é processado com dados de rect de destino e Habilitar é true, verifique se a superfície de saída está visível e é dimensionada de acordo com o tamanho da rect para a superfície de saída.

    • Verificar Padrão nenhum conjunto de dados resulta em toda a superfície sendo usada.

  • DXVAHD_STREAM_STATE_ALPHA_DATA

    • Todos os casos de teste Alfa exigem mais de um fluxo de vídeo, multiplicando esses casos de teste por dois.

    • Verifique se os valores padrão alfa estão desabilitados.

    • Verifique a mesclagem alfa de intervalo baixo, médio e alto e verifique a transparência.

    • Verifique se o valor alfa float fora do intervalo falha durante o processamento.

    • O nível de tolerância para precisão de pixel é de 10%. A precisão deve ser maior ou igual a 90% de precisão.

  • DXVAHD_STREAM_STATE_PALETTE_DATA

    • Sem entradas de paleta definidas, valide se Valor nulo retorna zero.

    • Com um número específico de entradas de paleta definidas, valide se Valor nulo retorna o número esperado de entradas de paleta.

    • Teste os formatos fourCC palletizados de 4 e 8 bits.

    • Defina a matriz mista ARGB e AYUV de entradas de paleta para validar o sucesso.

    • Verifique se a mesclagem correta ocorre quando usada com a mesclagem alfa.

    • O nível de tolerância para precisão de pixel é de 10%. A precisão deve ser maior ou igual a 90% de precisão.

  • DXVAHD_STREAM_STATE_CLEAR_RECT_DATA

    • Se DXVAHD_VPDEVCAPS. O FeatureCaps não expõe DXVAHD_FEATURE_CAPS_CLEAR_RECT, verifique se o erro E_INVALIDARG é retornado quando ocorre uma tentativa de usar ClearRects.

    • Verifique se o estado padrão de CLEAR RECT está desabilitado e não está visível.

    • Verifique se CLEAR_RECT Fora da cadeia de caracteres não está visível.

    • Verifique se CLEAR_RECT Fora do destrect foi recortado com êxito.

  • DXVAHD_STREAM_STATE_LUMA_KEY_DATA

    • Se DXVAHD_VPDEVCAPS. O FeatureCaps não expõe DXVAHD_FEATURE_CAPS_LUMA_KEY, verifique se o erro E_INVALIDARG é retornado.

    • Quando o fluxo de entrada RGB é usado e DXVAHD_VPDEVCAPS. O FeatureCaps não expõe DXVAHD_FEATURE_CAPS_RGB_LUMA_KEY, verifique se nenhum luma é ignorado.

    • Verifique se Habilitar está definido como false; luma é ignorado.

    • Verifique os valores fora do intervalo para obter resultados inferiores e superiores em falha durante o estado Set (E_INVALIDARG).

    • Verifique se o padrão é Luma desabilitado e se os valores para Inferior/Superior são 0.

    • O nível de tolerância para precisão de pixel é de 10%. A precisão deve ser maior ou igual a 90% de precisão.

  • DXVAHD_STREAM_STATE_FILTER_DATA

    • Verifique os valores padrão (Desabilitado e DXVAHD_FILTER_RANGE_DATA. Padrão).

    • Verifique quando Habilitado e o Nível é Padrão se o fluxo apresentado é o mesmo de quando o filtro está habilitado.

    • Verifique o Nível menor que e maior que GetVideoProcessorFilterRange relatado. Maior que deve falhar com E_INVALIDARG.

    • O nível de tolerância para precisão de pixel é de 10%. A precisão deve ser maior ou igual a 90% de precisão.

  • DXVAHD_STREAM_STATE_PRIVATE_DATA

    • Passe Guid, DataSize e pData inválidos. Valide se o driver manipula adequadamente.

    • O pData nulo recupera o tamanho correto do estado blt privado.

Verifique se VideoProcessBltHD para pOutputSurface dos tipos de superfície abaixo foram bem-sucedidos.

  • O Surface padrão usado será uma cadeia de troca.

  • DXVAHD_SURFACE_TYPE_VIDEO_OUTPUT

  • RENDERTARGET

  • Uma cadeia de troca de sobreposição.

  • Trocar cadeias de todos os outros tipos.

  • Formatos de pixel de superfície de entrada e saída com suporte padrão, bem como formatos de superfície de saída e entrada relatados como compatíveis com o dispositivo especificado.

Verifique se um valor OutputFrame 1 ou superior, antes que o quadro 0 seja processado, resulte em E_INVALIDARG.

Validar o processamento de OutputFrame 0 duas vezes seguidas, sem nenhuma alteração de dados de fluxo, resulta em um quadro pausado.

Validar o processamento de OutputFrame 0 duas vezes, com alterações de dados de fluxo, ainda resulta na apresentação dos dados armazenados em cache (quadro em pausa).

Verifique se o processamento de máximo, médio e número mínimo de fluxos foi bem-sucedido.

Verifique se StreamCount maior ou menor que o número de pStreams resulta em E_INVALIDARG.

Verifique StreamCount de zero resultados em E_INVALIDARG.

DXVAHD_STREAM_DATA: Taxa normal/metade progressiva, Progressiva em 2/1, Entrelaçada à taxa normal, Entrelaçada a meia taxa, Entrelaçada em 4/5

  • Habilite um fluxo para verificar o conteúdo apresentado.

  • Dois fluxos, main fluxo habilitado com sub-fluxo desabilitado. Verifique o conteúdo apresentado.

  • Dois fluxos, main fluxo e sub-fluxo habilitados. Verifique o conteúdo apresentado.

  • Três fluxos, dois fluxos usados para compor main fluxo habilitado e o terceiro fluxo como o sub-fluxo desabilitado. Verifique o conteúdo apresentado.

  • Três fluxos, dois fluxos usados para compor main fluxo um habilitado um desabilitado e o terceiro fluxo como o sub-fluxo desabilitado. Verifique o conteúdo apresentado.

  • Três fluxos, dois fluxos usados para compor main fluxo habilitado e o terceiro fluxo como o sub-fluxo habilitado também. Verifique o conteúdo apresentado.

  • Três fluxos, dois fluxos usados para compor main fluxo um habilitado um desabilitado e um terceiro fluxo como o sub-fluxo habilitado. Verifique o conteúdo apresentado.

  • PastFrames fora do intervalo e FutureFrames.

  • PastFrames e FutureFrames inválidos, de acordo com dado PastSurfaces e FutureSurfaces.

  • PastSurfaces nulo e FutureSurfaces, com PastFrames diferentes de zero com FutureFrames.

  • Todas as permutações de DXVAHD_SURFACE_TYPE_VIDEO_INPUT, DXVAHD_SURFACE_TYPE_VIDEO_INPUT_PRIVATE, Decodificar RenderTarget e uma superfície simples fora da tela em ppPastSurfaces, pInputSurfaces, ppFutureSurfaces.

  • Valide se ppPastSurfaces, pInputSurfaces, ppFutureSurfaces de um SurfaceType sem suporte retorna E_INVALIDARG.

  • Valide superfícies alocadas para o pool de memória do tipo diferente de DXVAHD_VPDEVCAPS. InputPool resulta em E_INVALIDARG.

Sintaxe de comando

Opção de comando Descrição

DXVAHDVideoProcessing VideoProcessing

Sem opções, o teste enumera todos, exceto alguns casos de teste de argumento inválidos extremos.

TestPriority:[0, 1, 2]

Por padrão, os testes em um nível de prioridade 1, no entanto, a prioridade 2 testará cada permutação, incluindo casos de teste de argumento inválidos extremos. 0 é para o nível BVT.

SoftwareOnly

Testa apenas a implementação de software do processador de vídeo. Isso foi usado principalmente para testes iniciais antes de os drivers oferecerem suporte aos casos de teste.

SaveAllFrames

O teste tem uma contagem de salvamento embutida em código de quadros inválidos definidos como 100 se você quiser que todos eles sejam salvos e use esse sinalizador. Bom para falhas de caso de teste de contagem alta de quadros.

LogLevel:[0, 1, 2]

O teste tem a capacidade de ser muito detalhado em seus métodos de registro em log. Por padrão, o nível 0 é definido, no entanto, o nível um coletará informações de registro em log maiores por casos de teste, incluindo muitos estados de fluxo/estados blt definidos. O Nível 2 reunirá todos os estados de fluxo ajustados e estados blt, bem como quaisquer informações de configuração.

 

Lista de arquivos

Arquivo Location

DXVAHDVideoProcessing.exe

[testbinroot]\nttest\windowstest\graphics\d3d\func\

Dxvahdsw.dll

[osbinroot]\nttest\windowstest\graphics\dxva\

 

Parâmetros

Nome do parâmetro Descrição do parâmetro
LLU_NetAccessOnly LLU para acesso à rede
ConfigDisplayCommandLine Linha de comando personalizada para ConfigDisplay. Padrão: logotipo
MODIFIEDCMDLINE Argumentos de linha de comando adicionais para executável de teste