As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Cache de sombreamento
Com o cache de sombreamento, seu aplicativo pode ignorar a custosa recompilação de sombreamento em futuras sessões de stream. Se seu aplicativo apresentar interrupções ou tempos de carregamento lentos, capturar um cache de sombreamento pode melhorar significativamente a experiência dos usuários finais.
Com o Amazon GameLift Streams, você pode capturar um cache de sombreamento de uma sessão de stream especialmente designada. As sessões de stream subsequentes do aplicativo em todos os grupos de stream compatíveis usam automaticamente o cache de sombreamento capturado. Usar o recurso de cache de sombreamento não requer código ou outras alterações em seu aplicativo.
Pré-requisitos
Para usar o cache de sombreamento, você deve atender aos seguintes requisitos:
-
O grupo de streams deve ter sido criado em ou após 31 de julho de 2026. Grupos de stream criados antes dessa data não oferecem suporte ao cache de sombreamento.
Como funciona o cache de sombreamento
Aplicativos gráficos, como jogos, se beneficiam dos caches de sombreamento. Os caches evitam trabalhos repetidos de processamento e compilação relacionados a gráficos. Para capturar um cache de sombreamento de sessões de stream designadas, o Amazon GameLift Streams coleta arquivos de cache de sombreamento do sistema gerados automaticamente para seu aplicativo. O serviço armazena esse cache e o aplica automaticamente a futuras sessões em grupos de stream compatíveis. Isso reduz o tempo gasto no processamento de sombreamentos durante sessões futuras. Gerar ou consumir um cache de sombreamento não exige alterações em seu aplicativo.
O ciclo de vida do cache de sombreamento tem três estágios:
-
Captura — Você executa uma sessão de stream com a captura de cache de sombreamento ativada. Durante essa sessão, o sistema compila automaticamente os programas de sombreamento usados pelo aplicativo em um cache local do sistema de arquivos. Quando você sai normalmente do seu aplicativo, o Amazon GameLift Streams empacota e carrega esse cache local.
-
Replicação — O Amazon GameLift Streams replica o cache do sombreador em todos os locais de streaming do grupo de streams. Você pode monitorar o status da replicação usando a operação da ListApplicationShaderCaches API.
-
Consumo — O Amazon GameLift Streams baixa e aplica automaticamente o cache do sombreador em todas as sessões de stream subsequentes para o mesmo aplicativo. O cache de sombreamento é usado em todos os grupos e locais de streaming associados compatíveis. Esse comportamento está ativado por padrão.
Capturando um cache de sombreamento
Para capturar um cache de sombreamento, siga estas etapas:
-
Inicie uma sessão de stream usando a operação StartStreamSession da API. Na solicitação, inclua o
GAMELIFT_STREAMS_PACKAGED_SHADER_CACHE_CAPTUREconjunto1como variável de ambiente adicional ao chamar StartStreamSession:{ "AdditionalEnvironmentVariables": { "GAMELIFT_STREAMS_PACKAGED_SHADER_CACHE_CAPTURE": "1" } } -
Use seu aplicativo como faria normalmente durante a sessão.
-
Quando concluído, saia do aplicativo normalmente a partir do menu embutido ou usando outros comandos de saída integrados. Isso garante que o cache do sombreador esteja pronto para ser coletado.
-
Após o encerramento, o Amazon GameLift Streams empacota o cache de sombreamento compilado e inicia a replicação em todos os locais de streaming em todos os grupos de streams associados compatíveis.
dica
Em aplicativos de jogos, navegar por diferentes ambientes, conteúdos e níveis gera dados adicionais de sombreamento. Quanto mais do seu aplicativo você cobrir durante a captura, mais abrangente será a cobertura do cache do sombreador. A cobertura aprimorada pode reduzir ainda mais os tempos de processamento do sombreador em sessões futuras.
Importante
Evite encerrar a sessão usando a operação da TerminateStreamSession API. Se seu aplicativo não tiver uma saída embutida, use o Shell de administração da sessão de streaming recurso para fazer login remotamente. Em seguida, interrompa o processo de inscrição após garantir que o aplicativo esteja em estado inativo e não renderize novo conteúdo.
Depois de gerar um cache de sombreamento, você pode melhorá-lo iniciando mais sessões com GAMELIFT_STREAMS_PACKAGED_SHADER_CACHE_CAPTURE set to1. Essas sessões começam com o cache de sombreamento existente e produzem uma versão atualizada.
Limites de tamanho do cache de sombreamento
Caches de sombreamento menores que 10 KB ou maiores que 4 GB (não compactados) são rejeitados.
Fluxo de trabalho do Shader Cache
Quando você gera um cache de sombreamento para um aplicativo Amazon GameLift Streams existente, todos os grupos de streams associados compatíveis começam automaticamente a usá-lo.
Para testar um cache de sombreamento antes que ele afete as sessões de produção, recomendamos esta abordagem:
Crie um aplicativo separado.
Colete o cache de sombreamento desse aplicativo.
Verifique os resultados usando uma nova sessão de stream.
Use o aplicativo em sua configuração de produção.
Replicação do cache de sombreamento
Após uma captura bem-sucedida, o Amazon GameLift Streams disponibiliza automaticamente o cache do sombreador em cada local de streaming ativo nos grupos de streams associados compatíveis ao aplicativo. Esse processo de replicação normalmente é concluído em alguns minutos.
Você pode monitorar o progresso da replicação usando a operação da ListApplicationShaderCaches API. O Status campo de cache de sombreamento indica o status agregado em todos os locais do grupo de streams. Os status possíveis incluem o seguinte.
| Status | Description |
|---|---|
INITIALIZED |
O Amazon GameLift Streams recebeu a solicitação e está preparando o cache do sombreador. |
PROCESSING |
O Amazon GameLift Streams está replicando o cache do sombreador para os locais de streaming nos grupos de streams associados. |
READY |
O cache do sombreador é replicado e está disponível para uso em sessões de stream. |
ERROR |
Ocorreu um erro durante o processamento do cache do sombreador. Crie um novo cache de sombreamento para tentar novamente. |
DELETING |
O Amazon GameLift Streams está excluindo o cache do sombreador. |
Quando o status éREADY, o cache do sombreador é aplicado automaticamente a todas as novas sessões de stream do aplicativo.
A capacidade de fluxo recém-provisionada recebe o cache do sombreador imediatamente. A capacidade existente do grupo de streams pode levar até uma hora para obter o novo cache de sombreamento.
Desativando o consumo de cache do sombreador
Por padrão, o Amazon GameLift Streams baixa e aplica o cache do sombreador antes de iniciar o aplicativo. Para desativar esse comportamento em uma sessão específica, defina a seguinte variável de ambiente:
{ "AdditionalEnvironmentVariables": { "GAMELIFT_STREAMS_PACKAGED_SHADER_CACHE_IGNORE": "1" } }
Para melhorar um cache de sombreamento existente, forneça somenteGAMELIFT_STREAMS_PACKAGED_SHADER_CACHE_CAPTURE. Para descartar o cache existente e coletar um completamente novo, forneça ambos GAMELIFT_STREAMS_PACKAGED_SHADER_CACHE_IGNORE e. GAMELIFT_STREAMS_PACKAGED_SHADER_CACHE_CAPTURE
Compatibilidade com cache de sombreamento
Você pode associar um aplicativo a vários grupos de streams. Para descobrir a quais grupos de stream seu aplicativo está atualmente associado, use a operação da GetApplication API e revise o AssociatedStreamGroups campo.
Nem todos os grupos de streams associados são necessariamente compatíveis com um cache de sombreamento coletado. Você pode determinar quais grupos de streams associados são compatíveis usando a operação ListApplicationShaderCaches da API. Em sua resposta, o AssociatedStreamGroups campo contém somente os grupos de stream associados que são compatíveis com o cache de sombreamento.
O hardware gráfico e os drivers determinam como o sistema compila programas de sombreamento. Por causa disso, os caches não são transferíveis entre diferentes configurações de hardware e software. Com o Amazon GameLift Streams, a compatibilidade do cache de sombreamento é determinada pelas propriedades do grupo de streams usado durante a captura:
-
Modelo exato do hardware gráfico subjacente (GPU)
-
Versão instalada do driver de GPU
Na prática, isso significa que um cache de sombreamento do Amazon GameLift Streams tem as seguintes restrições de compatibilidade.
-
Um cache de sombreamento não é compatível com classes de stream que usam hardware de GPU diferente, o que significa classes de stream de geração diferente. Por exemplo, as classes
gen5n_highegen6n_highstream não são compatíveis, masgen6n_highgen6n_ultrasão. Da mesma forma,gen6n_proe também nãogen6e_prosão compatíveis. -
Um cache de sombreamento não é compatível entre grupos de stream que têm uma versão diferente do driver de GPU instalada. Um grupo de stream usa a mesma versão do driver de GPU por toda a vida útil, mas um recém-criado pode receber uma versão atualizada. Para obter mais informações sobre as versões do driver de GPU atualmente disponíveis no Amazon GameLift Streams para novos grupos de streams, consulte. Versões do driver de GPU
-
Um cache de sombreamento não é compatível entre WindowsLinux, e tempos de Proton execução.
O Amazon GameLift Streams determina automaticamente essa compatibilidade e usa o cache de sombreamento coletado somente com sessões compatíveis.
Exemplo: classes de stream de geração diferente
Seu aplicativo está associado a dois grupos de streams:
-
O primeiro grupo de stream usa a classe stream
gen5n_high -
O segundo grupo de stream usa a classe stream
gen6n_high
O mesmo cache de sombreamento não é compatível com esses dois grupos de stream de geração diferente. Para oferecer suporte aos dois grupos de stream, gere um cache de sombreamento separado para cada classe de stream.
Exemplo: versões diferentes do driver de GPU
Você tem um grupo de streams que usa a classe gen6n_high stream e gerou um cache de sombreamento para ele. Posteriormente, você cria outro grupo de stream, ainda usando a mesma classe de streamgen6n_high.
Esse novo grupo de streams agora usa uma versão diferente e mais recente do driver de GPU. Ao usar ListApplicationShaderCaches, você descobre que seu novo grupo de streams não está listado abaixoAssociatedStreamGroups. Portanto, o cache de sombreamento existente não é compatível com o novo grupo de streams. Gere um novo cache de sombreamento usando o novo grupo de fluxos.
Solução de problemas de cache de sombreamento
-
ListApplicationShaderCaches mostra o status ERROR — Ocorreu um erro durante o processamento do cache do sombreador. Crie um novo cache de sombreamento para tentar novamente.
-
ListApplicationShaderCaches não lista o novo cache de sombreamento
O cache do sombreador era muito pequeno ou muito grande para ser coletado.
O aplicativo não saiu normalmente.
Ocorreu um erro durante a coleta.
Crie um novo cache de sombreamento para tentar novamente.