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

VideoOut

VideoOut은 게스트의 디스플레이 버퍼를 등록하고, 화면 출력 콜백이 프레임을 받아들인 뒤에만 플립을 완료합니다. 호스트 창은 1080p SDR Vulkan 스왑체인입니다.

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

등록과 플립

VideoOut은 등록된 디스플레이 할당을 최대 16개, 속성 그룹을 4개까지 유지합니다. 드라이버 ABI가 쓰는 연속된 16레이블 레코드를 게시합니다. 등록, 변경, 등록 해제를 검증합니다. 타이틀이 시작 중에 쓰는 버퍼 -1의 빈 플립을 받아들입니다.

CPU 플립과 파이프 끝 플립은 실행 중 명령 버퍼 백엔드를 거칩니다. 일반 플립은 화면 출력 콜백이 프레임을 받아들인 뒤에만 완료됩니다. 완료는 호출자의 사용자 데이터와 함께 VideoOut 이벤트 큐로 전달됩니다. 큐 필터는 커널이 쓰는 것과 같은 사용자 엣지 이벤트 구현이며, 등록의 식별자가 유지됩니다.

호스트가 표시하는 것

게임 창은 Vulkan 스왑체인입니다. VideoOut은 1080p SDR을 보고합니다. 120 Hz는 사용할 수 없다고 보고합니다. 기본 게임 설정은 퍼포먼스 모드를 요청합니다. 내부 해상도는 타이틀이 정합니다. 4K로 렌더링하는 게임은 여전히 4K 타깃을 할당하고, 스왑체인은 타이틀이 등록한 스캔아웃을 표시합니다.

SetFlip은 VideoOut 슬롯과 버퍼 인덱스를 해결하고, 게스트 주소가 일치하는 캐시된 타깃을 골라 프레임을 게시합니다. 플립 속도는 창 제목에 표시할 수 있습니다. 런처가 이 설정을 저장하며, 명령줄 실행에서는 PS5_SHOW_FPS=1로 설정할 수 있습니다.

영상과 스캔아웃

인트로 영상은 VideoOut을 우회하지 않습니다. AvPlayer는 타이틀 소유 버퍼로 디코딩하고, 타이틀 자신의 셰이더나 등록된 스캔아웃이 이를 표시합니다. 아스테릭스는 게스트의 음수 높이 뷰포트를 스캔아웃 방향으로 유지하므로, 합성 결과가 나가는 길에 위아래로 뒤집히지 않습니다.

Vulkan 로더, 화면 출력 장치, 창이 없으면 이를 보고하고 타이틀은 헤드리스 경로로 계속 실행됩니다. 헤드리스는 진단용입니다. 두 번째의 더 빠른 렌더러가 아닙니다.

구현된 것

  • 최대 16개의 디스플레이 버퍼, 속성 그룹 4개, 16레이블 ABI.
  • 화면 출력 콜백이 프레임을 받아들인 뒤에만 완료되는 플립.
  • 1080p SDR을 보고하고 120 Hz는 사용할 수 없게 둔 Vulkan 스왑체인.
  • 기본 퍼포먼스 모드 설정과 선택형 창 제목 플립 속도 표시.

아직 빠진 것

  • 120 Hz와 호스트 HDR 스왑체인은 제공하지 않습니다.
  • 내부 해상도는 타이틀이 할당하는 대로입니다.
  • 화면 출력 장치가 없으면 프로세스는 헤드리스로 남습니다.

관련 메커니즘

이 페이지들에 대하여

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

모든 기술