Ir para o conteúdo
PS5PCEM
FuncionaGráficos

Renderizador Vulkan

O backend Vulkan carrega o driver em tempo de execução, exige Vulkan 1.2 e apresenta quadros convidados por uma swapchain. Alvos de renderização, imagens de armazenamento e pipelines permanecem residentes entre desenhos.

Notas do repositório até 10 de outubro de 2026

Dispositivo e memória

O renderizador carrega ele mesmo o carregador Vulkan da plataforma, então a compilação não precisa dos cabeçalhos do Vulkan SDK. A inicialização pede Vulkan 1.2, a versão que aceita o SPIR-V 1.5 do tradutor, e prefere um dispositivo discreto com uma família de filas capaz de gráficos e de computação. Camadas de validação são pedidas em compilações de depuração quando estão instaladas.

Um layout de descritores guarda 64 buffers de armazenamento, arrays separados de imagem amostrada 2D e 3D com 64 entradas, e imagens de armazenamento tipadas. Um anel de 512 conjuntos, uma arena de envio de 128 MiB e alvos de renderização convidados persistentes mantêm no dispositivo os recursos de um quadro. As traduções de gráficos usam um cache de 256 MiB e 1,024 entradas. Uma cena em fluxo tinha estourado o orçamento antigo de 64 MiB e traduzia os mesmos módulos de novo a cada quadro.

Pipelines e timelines

A compilação de pipelines usa dois workers por padrão. PS5_GPU_COMPILER_WORKERS pode definir de um a quatro. PS5_GPU_ASYNC_PIPELINES=0 volta à compilação síncrona e desliga o aquecimento de computação. O aquecimento reproduz, no cache do driver, módulos de computação já compilados na execução seguinte. Ele nunca faz dispatch deles e destrói os pipelines temporários. O cache do driver também é guardado em vulkan_pipeline_cache.bin, até 4 GiB. Um arquivo corrompido é descartado. Ele só pode afetar o tempo de inicialização.

O perfil padrão de compatibilidade espera cada lote enviado. O escalonador de timeline, selecionado com PS5_GPU_TIMELINE_SCHEDULER=1, deixa vários lotes em curso e espera num readback real, num ponto de sincronização do convidado ou num anel de recursos esgotado. Um título, PPSA25872, ativa esse escalonador e a escrita de volta adiada de armazenamento pequeno por conta própria, depois de comparações medidas. O layout de imagem é rastreado por aspecto, mip e camada de array, e as barreiras vêm do uso anterior desse sub-recurso.

Formatos e residência

Cinquenta e seis formatos do anfitrião são alcançáveis, inclusive de BC1 a BC7, canais inteiros e normalizados, R16 e RG16, meia precisão e RGBA32_FLOAT. Alocações de imagem do convidado compartilham um registro de aliases entre os usos de cor, profundidade, armazenamento e amostragem. Uma passagem posterior pode amostrar um alvo de profundidade que uma passagem anterior escreveu, sem uma ida e volta pela memória convidada, quando as assinaturas coincidem. Reinterpretações e sobreposições parciais voltam pela memória convidada.

O detile de computação na GPU cobre superfícies 2D e 3D padrão e PRT de 4, 8 e 16 bytes. O detile de RB+ e de MSAA ainda roda na CPU. Alvos UNORM 11/11/10 empacotados, de uma amostra, misturam por meio de uma cópia para buffer de armazenamento e de um desempacotar, misturar e reempacotar no fragmento. O VideoOut é a swapchain por cima dessas imagens.

O que está implementado

  • Seleção em tempo de execução de um dispositivo Vulkan 1.2, uma swapchain e alvos de renderização residentes.
  • Cinquenta e seis formatos do anfitrião, rastreamento de layout por sub-recurso e um registro de aliases de imagem.
  • Dois workers de compilação, um cache persistente do driver e aquecimento opcional de computação.
  • Um escalonador de timeline de adesão explícita, com um título que o ativa por padrão.

O que ainda falta

  • O perfil padrão ainda espera cada lote. A submissão por timeline é de adesão explícita.
  • O detile de RB+ e de MSAA usa a CPU.
  • A iluminação dos jogos e todo caminho de metadados comprimidos não estão implícitos na lista de formatos.

Mecanismos relacionados

O que estas páginas descrevem

O texto segue as notas de arquitetura e os relatórios de outubro de 2026 no repositório do PS5PCEM. Um teste pontual que passa não é uma nova taxa de quadros nem uma nova conclusão de jogo.

Todas as tecnologias