Sintaxe
Parâmetros
pHeapProperties [in]Tipo: const D3D12_HEAP_PROPERTIES * Um ponteiro para uma estrutura D3D12_HEAP_PROPERTIES que fornece propriedades para o heap do recurso. HeapFlags [in]
Tipo: D3D12_HEAP_FLAGS Opções do heap, como uma combinação OR bit a bit de constantes da enumeração D3D12_HEAP_FLAGS. pDesc [in]
Tipo: const D3D12_RESOURCE_DESC* Um ponteiro para uma estrutura D3D12_RESOURCE_DESC que descreve o recurso. InitialResourceState [in]
Tipo: D3D12_RESOURCE_STATES O estado inicial do recurso, como uma combinação OR bit a bit de constantes da enumeração D3D12_RESOURCE_STATES. Ao criar um recurso junto com um heap D3D12_HEAP_TYPE_UPLOAD, você deve definir InitialResourceState como D3D12_RESOURCE_STATE_GENERIC_READ. Ao criar um recurso junto com um heap D3D12_HEAP_TYPE_READBACK, você deve definir InitialResourceState como D3D12_RESOURCE_STATE_COPY_DEST. pOptimizedClearValue [in, optional]
Tipo: const D3D12_CLEAR_VALUE * Especifica uma estrutura D3D12_CLEAR_VALUE que descreve o valor padrão de uma cor de limpeza. pOptimizedClearValue especifica um valor para o qual as operações de limpeza são mais otimizadas. Quando o recurso criado for uma textura com os sinalizadores D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET ou D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL, você deve escolher o valor com o qual a operação de limpeza será chamada com mais frequência. Você pode chamar a operação de limpeza com outros valores, mas essas operações não serão tão eficientes quanto quando o valor corresponde ao passado na criação do recurso. Ao usar D3D12_RESOURCE_DIMENSION_BUFFER, você deve definir pOptimizedClearValue como
nullptr.
riidResource [in]Tipo: const IID & Uma referência ao identificador global exclusivo (GUID) da interface do recurso a ser retornada em ppvResource. Embora riidResource seja mais comumente o GUID de ID3D12Resource, ele pode ser o GUID de qualquer interface. Se o objeto de recurso não for compatível com a interface desse GUID, a criação falhará com E_NOINTERFACE. ppvResource [out, optional]
Tipo: void ** Um ponteiro opcional para um bloco de memória que recebe o ponteiro de interface solicitado para o objeto de recurso criado. ppvResource pode ser
nullptr, para permitir testes de funcionalidade. Quando ppvResource é nullptr, nenhum objeto é criado e S_FALSE é retornado quando pDesc é válido.
Valor retornado
Tipo: HRESULT Se a função for bem-sucedida, ela retornará S_OK. Caso contrário, retornará um código de erro HRESULT.
Consulte Códigos de retorno do Direct3D 12 para outros valores retornados possíveis.
Comentários
Este método cria um recurso e um heap, de modo que o heap seja grande o suficiente para conter todo o recurso e o recurso seja mapeado para o heap. O heap criado é conhecido como heap implícito, pois o objeto heap não pode ser obtido pelo aplicativo. Antes de liberar a referência final do recurso, seu aplicativo deve garantir que a GPU não lerá nem gravará mais nesse recurso. O heap implícito se torna residente para acesso da GPU antes que o método devolva o controle ao seu aplicativo. Confira também Residência. O mapeamento de VA da GPU do recurso não pode ser alterado. Consulte ID3D12CommandQueue::UpdateTileMappings e Recursos lado a lado de volume. Este método pode ser chamado por vários threads simultaneamente.Exemplos
O exemplo D3D12Bundles usa ID3D12Device::CreateCommittedResource da seguinte maneira: Crie um buffer de vértices.Requisitos
Cabeçalho: d3d12_xs.h ou d3d12_x.hBiblioteca: d3d12_xs.lib ou d3d12_x.lib
Plataformas compatíveis: consoles XBOX Series e família XBOX One
