본문으로 건너뛰기
PS5PCEM
작동그래픽

Vulkan 렌더러

Vulkan 백엔드는 실행 중에 드라이버를 불러오고, Vulkan 1.2를 요구하며, 스왑체인으로 게스트 프레임을 표시합니다. 렌더 타깃, 스토리지 이미지, 파이프라인은 드로 사이에 상주합니다.

2026년 10월 10일까지의 저장소 노트

장치와 메모리

렌더러는 플랫폼 Vulkan 로더를 직접 불러오므로 빌드에 Vulkan SDK 헤더가 필요하지 않습니다. 초기화는 변환기의 SPIR-V 1.5를 받아들이는 버전인 Vulkan 1.2를 요청하고, 그래픽과 컴퓨트를 모두 할 수 있는 큐 계열을 갖춘 외장 장치를 선호합니다. 디버그 빌드에서는 검증 레이어가 설치되어 있으면 요청합니다.

디스크립터 레이아웃 하나에 스토리지 버퍼 64개, 각각 64항목인 2D·3D 샘플 이미지 배열, 타입 있는 스토리지 이미지가 들어갑니다. 512세트 링, 128 MiB 업로드 아레나, 지속되는 게스트 렌더 타깃이 프레임의 리소스를 장치에 붙잡아 둡니다. 그래픽 변환은 256 MiB, 1,024항목 캐시를 사용합니다. 스트리밍 장면이 이전의 64 MiB 예산을 넘어 매 프레임 같은 모듈을 다시 변환하고 있었습니다.

파이프라인과 타임라인

파이프라인 컴파일은 기본적으로 워커 두 개를 사용합니다. PS5_GPU_COMPILER_WORKERS로 1–4개를 지정할 수 있습니다. PS5_GPU_ASYNC_PIPELINES=0은 동기 컴파일로 돌아가고 컴퓨트 예열을 끕니다. 예열은 다음 실행 때 이전에 컴파일한 컴퓨트 모듈을 드라이버 캐시에 다시 넣습니다. 디스패치하지는 않으며 임시 파이프라인은 파괴합니다. 드라이버 캐시는 vulkan_pipeline_cache.bin에도 최대 4 GiB까지 저장됩니다. 손상된 파일은 버립니다. 시작 시간에만 영향을 줄 수 있습니다.

기본 호환성 프로필은 제출한 묶음마다 기다립니다. PS5_GPU_TIMELINE_SCHEDULER=1로 선택하는 타임라인 스케줄러는 여러 묶음을 동시에 진행시키고, 실제 리드백, 게스트 동기화 지점, 바닥난 리소스 링에서 기다립니다. PPSA25872 한 타이틀은 측정 비교 뒤 이 스케줄러와 지연된 작은 스토리지 쓰기 반영을 자체적으로 켭니다. 이미지 레이아웃은 측면, 밉, 배열 레이어별로 추적하며, 배리어는 해당 하위 리소스의 직전 사용에서 정해집니다.

형식과 상주

BC1부터 BC7, 정수·정규화 채널, R16과 RG16, 반정밀도 부동소수점, RGBA32_FLOAT를 포함해 호스트 형식 56개를 사용할 수 있습니다. 게스트 이미지 할당은 컬러, 깊이, 스토리지, 샘플 용도 전체에 걸쳐 별칭 레지스트리 하나를 공유합니다. 시그니처가 일치하면 나중 패스가 앞 패스가 쓴 깊이 타깃을 게스트 메모리 왕복 없이 샘플링할 수 있습니다. 재해석과 부분 겹침은 게스트 메모리를 거칩니다.

GPU의 컴퓨트 디타일은 4, 8, 16바이트 2D·3D 표준 및 PRT 표면을 다룹니다. RB+와 MSAA 디타일은 여전히 CPU에서 실행됩니다. 단일 샘플 패킹 11/11/10 UNORM 타깃은 스토리지 버퍼 복사와 프래그먼트에서의 풀기, 블렌딩, 다시 패킹을 거쳐 블렌딩됩니다. VideoOut은 이 이미지들 위에 놓인 스왑체인입니다.

구현된 것

  • 실행 중 Vulkan 1.2 장치 선택, 스왑체인, 상주 렌더 타깃.
  • 호스트 형식 56개, 하위 리소스별 레이아웃 추적, 이미지 별칭 레지스트리.
  • 컴파일러 워커 두 개, 지속되는 드라이버 캐시, 선택적 컴퓨트 예열.
  • 선택형 타임라인 스케줄러. 한 타이틀은 기본으로 켭니다.

아직 빠진 것

  • 기본 프로필은 여전히 묶음마다 기다립니다. 타임라인 제출은 선택형입니다.
  • RB+와 MSAA 디타일은 CPU를 사용합니다.
  • 형식 목록이 게임 조명이나 모든 압축 메타데이터 경로의 지원을 뜻하지는 않습니다.

관련 메커니즘

이 페이지들에 대하여

본문은 PS5PCEM 저장소의 아키텍처 노트와 2026년 10월 보고서를 따릅니다. 특정 테스트를 통과했다고 해서 새로운 프레임 속도나 새로운 완주를 뜻하지는 않습니다.

모든 기술