Skip to main content
Serializa um objeto de estado de pipeline de computação para permitir o carregamento eficiente em tempo de execução. Este método é chamado durante a criação offline de conteúdo, não no tempo de execução do jogo.

Sintaxe

Parâmetros

pPipelineState   _In_
Tipo: ID3D12PipelineState*
Um ponteiro para o estado de pipeline de computação a ser serializado. Flags   _In_
Tipo: UINT
Sinalizadores para controlar esta operação, como uma combinação OR bit a bit das constantes de enumeração D3D12XBOX_SERIALIZE_FLAGS. Atualmente, este parâmetro deve ser D3D12XBOX_SERIALIZE_FLAGS_NONE. pSerializeState   _Out_
Tipo: D3D12XBOX_SERIALIZE_COMPUTE_PIPELINE_STATE*
O estado serializado resultante.

Valor retornado

Tipo: HRESULT Um dos códigos de retorno do Direct3D 12.

Comentários

Este método serializa um objeto de estado de pipeline (PSO) para permitir o carregamento eficiente em tempo de execução. O método deve ser chamado como parte de uma criação offline de conteúdo, nunca no tempo de execução de um jogo. Normalmente, o método seria usado por uma ferramenta baseada em PC que invoca a implementação UMD12_PC.DLL/XGS12_PC_XS.DLL baseada em PC da API, do driver e do compilador de sombreador do Direct3D 12.x do XBOX One. O método também pode ser chamado em devkits do XBOX One quando os sinalizadores D3D12XBOX_PROCESS_DEBUG_FLAG_INSTRUMENTED e D3D12_PROCESS_DEBUG_FLAG_DEBUG_LAYER_ENABLED são usados: os sinalizadores que são constantes de enumeração na enumeração D3D12XBOX_PROCESS_DEBUG_FLAGS. Chamar este método serializará um PSO em suas partes componentes, em um formato que ID3D12Device::DeserializeComputePipelineStateX pode carregar com eficiência em tempo de execução. Para evitar desperdício de espaço em disco e na memória, espera-se que os chamadores eliminem a duplicação dos componentes resultantes em sua coleção de PSOs. Por exemplo, é provável que vários PSOs tenham exatamente o mesmo conjunto de instruções de GPU para um sombreador quando apenas os limites de sombreador forem diferentes entre os objetos. Cabe ao desenvolvedor (1) realizar um hash ou uma comparação de memória entre essas invocações e (2) identificar as partes componentes que podem ser compartilhadas. Os desenvolvedores gerenciarão o posicionamento e o tempo de vida de todos os componentes de PSO serializados em tempo de execução e especificarão os locais dos componentes de PSO serializados na chamada a DeserializeComputePipelineStateX, o que facilita esse compartilhamento. Para um jogo típico, a maioria dos PSOs é criada offline, usando este mecanismo SerializeComputePipelineStateX/DeserializeComputePipelineStateX. Os sombreadores desserializados podem ser usados em conjunto com ID3D12Device::CreateDerivedComputePipelineStateX, para permitir a criação eficiente de variações de PSO em tempo de execução. Isso significa que não é necessário criar todas as permutações de estado possíveis de PSOs usando SerializeComputePipelineStateX. SerializeComputePipelineStateX retorna estruturas ID3DBlob para cada uma das partes componentes resultantes. Para consultar os buffers de componentes resultantes, o chamador chamará ID3DBlob::GetBufferPointer e ID3DBlob::GetBufferSize; para liberar a memória depois de copiar os resultados, o chamador chamará Release. Os ponteiros de blob podem ser nulos para sombreadores inativos. Alguns sombreadores podem ter um blob pGpuInstructions, mas não um blob pMetaData correspondente. (pGpuInstructions e pMetaData são membros da estrutura D3D12XBOX_SERIALIZE_SHADER.) Todas as partes componentes devem ser mantidas e fornecidas de volta para ID3D12Device::DeserializeComputePipelineStateX. O D3D12.x usa um CRC para garantir que todas as partes componentes fornecidas para DeserializeComputePipelineStateX correspondam exatamente às geradas por SerializeComputePipelineStateX. Observe que SerializeComputePipelineStateX não pode ser usado para serializar um objeto de estado de pipeline que tenha sido desserializado anteriormente por meio de DeserializeComputePipelineStateX.

Requisitos

Cabeçalho: d3d12_x.h Biblioteca: d3d12_x.lib Plataformas com suporte: família XBOX One

Confira também

ID3D12Device
Last modified on October 6, 2026