D3D12DDI_RENDER_PASS_BEGINNING_ACCESS_TYPE enumeração (d3d12umddi.h)
Declara o tipo de acesso de recurso para a chamada para PFND3D12DDI_BEGIN_RENDER_PASS.
Syntax
typedef enum D3D12DDI_RENDER_PASS_BEGINNING_ACCESS_TYPE {
D3D12DDI_RENDER_PASS_BEGINNING_ACCESS_DISCARD,
D3D12DDI_RENDER_PASS_BEGINNING_ACCESS_PRESERVE,
D3D12DDI_RENDER_PASS_BEGINNING_ACCESS_CLEAR,
D3D12DDI_RENDER_PASS_BEGINNING_ACCESS_NO_ACCESS,
D3D12DDI_RENDER_PASS_BEGINNING_ACCESS_RESUME_WRITING,
D3D12DDI_RENDER_PASS_BEGINNING_ACCESS_RESUME_LOCAL_READ
} ;
Constantes
D3D12DDI_RENDER_PASS_BEGINNING_ACCESS_DISCARD Indica que o aplicativo não tem nenhuma dependência no conteúdo anterior do recurso. Uma determinada implementação pode retornar o conteúdo gravado anteriormente ou pode retornar dados não inicializados. No entanto, a leitura do recurso não deve produzir uma trava de GPU, a 'leitura' só pode retornar dados indefinidos no pior caso. Uma leitura é definida como tradicional: * UAV (modo de exibição de acesso não ordenado) * SRV (exibição de recurso de sombreador) * CBV (exibição de buffer constante) * VBV (exibição de buffer de vértice) * IBV (exibição de buffer de índice) * Associação/leitura indirectArg * blend/depth-testing-induced read |
D3D12DDI_RENDER_PASS_BEGINNING_ACCESS_PRESERVE Indica que o aplicativo tem uma dependência do conteúdo anterior do recurso e o conteúdo deve ser carregado de main memória. |
D3D12DDI_RENDER_PASS_BEGINNING_ACCESS_CLEAR Indica que o aplicativo tem uma dependência do recurso que está sendo limpo para uma cor específica (fornecida pelo aplicativo). OBSERVAÇÃO Isso é claro se o recurso interagiu ou não com algo além do Passe de Renderização. |
D3D12DDI_RENDER_PASS_BEGINNING_ACCESS_NO_ACCESS Indica que o recurso não será lido ou gravado durante a Passagem de Renderização. Esse valor também indica se o plano de profundidade/estêncil de um DSV (Exibição da Fonte de Dados) não foi acessado. IMPORTANTE Esse campo deve ser emparelhado com o sinalizador D3D12DDI_RENDER_PASS_ENDING_ACCESS_NO_ACCESS em D3D12DDI_RENDER_PASS_ENDING_ACCESS_TYPE. |
D3D12DDI_RENDER_PASS_BEGINNING_ACCESS_RESUME_WRITING Indica que o aplicativo deve retomar a gravação nas seguintes condições: * Retoma a gravação em uma superfície que foi gravada anteriormente no Render Pass anterior * Tem o sinalizador D3D12DDI_RENDER_PASS_ENDING_ACCESS_SUSPEND_WRITING na enumeração D3D12DDI_RENDER_PASS_ENDING_ACCESS_TYPE * Não houve nenhum trabalho de GPU intervindo que ocorreu entre os dois Passes de Renderização A gravação no passe de renderização de retomada ocorre logo após a gravação na passagem de renderização suspensa . A intenção desse sinalizador é permitir gravações no mesmo Destino de Renderização para abranger várias listas de comandos e sem liberar caches no chip. A gravação pode ser retomada de uma Passagem de Renderização em uma Lista de Comandos separada, desde que os Listas de Comando de suspensão/retomada sejam executados (de volta para trás) no mesmo grupo ExecuteCommandLists. |
D3D12DDI_RENDER_PASS_BEGINNING_ACCESS_RESUME_LOCAL_READ Indica que o aplicativo deseja ler de um recurso que foi gravado anteriormente e imediatamente pela GPU (ou seja, ainda potencialmente no cache de blocos) e será lido de forma local de pixel (ou seja, as leituras sempre estarão no pixel de saída exato ou pixels adjacentes). Esse valor de enumeração, emparelhado com D3D12DDI_RENDER_PASS_ENDING_ACCESS_SUSPEND_LOCAL_READ valor na enumeração D3D12DDI_RENDER_PASS_ENDING_ACCESS_TYPE , é permitir que os recursos sejam lidos, quando possível, sem emitir uma liberação entre duas operações de Render Pass subsequentes. Especificamente, o aplicativo garante: * O recurso foi gravado anteriormente em um Render Pass que tinha as características de "gravação" de D3D12DDI_RENDER_PASS_ENDING_ACCESS_SUSPEND_LOCAL_READ. * Nenhuma operação de GPU ocorreu entre a D3D12DDI_RENDER_PASS_ENDING_ACCESS_SUSPEND_LOCAL_READ do Render Pass anterior e a Passagem de Renderização atual. * Um D3D12DDI_RENDER_PASS_BEGINNING_ACCESS_RESUME_LOCAL_READ pode ser encadeado de dentro da mesma Lista de Comandos ou entre Listas de Comando na mesma chamada ExecuteCommandLists, mas não entre chamadas ExecuteCommandLists separadas. * O recurso a ser lido corresponde ao tamanho e ao formato do destino de renderização recém-associado. * Todas as leituras/gravações são '1 para 1' (mais pixels de leitura de sarjeta opcionais especificados pelo aplicativo), as leituras da textura de origem serão gravadas no mesmo local na textura de destino e a textura de destino de renderização tem o mesmo tamanho que a textura de origem. O tamanho do kernel da leitura (quantos pixels ao redor são necessários) é especificado em PFND3D12DDI_BEGIN_RENDER_PASS tempo, por meio dos campos AdditionalWidth/AdditionalHeight em D3D12_RENDER_PASS_BEGINNING_ACCESS_RESUME_LOCAL_READ_PARAMETERS. Os parâmetros AdditionalWidth/AdditionalHeight devem corresponder aos da D3D12DDI_RENDER_PASS_ENDING_ACCESS_SUSPEND_LOCAL_READ_PARAMETERS anterior. |
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 10, versão 1809 |
Cabeçalho | d3d12umddi.h |
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de