텍스처 디타일링
PS5 텍스처는 선형 행이 아니라 GFX10 스위즐 패턴으로 저장됩니다. PS5PCEM은 주소 방정식을 CPU에서, 그리고 조건에 맞는 큰 4, 8, 16바이트 표면은 GPU에서 적용합니다.
2026년 10월 10일까지의 저장소 노트
주소 방정식
타일 텍스처는 이웃 픽셀이 서로 다른 메모리 채널에 놓이도록 픽셀 좌표를 파이프, 뱅크, 샘플 비트와 XOR합니다. PS5PCEM은 선형 레이아웃, Standard 256바이트·4 KiB·64 KiB 타일, 부분 상주 64 KiB 타일, 깊이 Z_X, 렌더 타깃 R_X에 대한 GFX10 방정식을 구현합니다. 같은 규약이 밉 테일과 두꺼운 3D 블록도 다룹니다.
밉 레벨은 최대 16개까지 가장 작은 것부터 배치됩니다. 작은 레벨은 정확한 4 KiB·64 KiB 밉 테일 위치를 공유합니다. 3D 리소스는 두꺼운 블록과 깊이 블록 슬라이스를 사용합니다. 모든 하위 리소스는 검사된 원본 바이트 오프셋 하나를 제공합니다. 버퍼, 이미지, 블록 압축, 컬러 타깃, 깊이 타깃 어댑터는 아무것도 할당하지 않으며 오버플로나 짧은 범위를 거부합니다.
GPU 디타일과 CPU 대체 경로
큰 4바이트 Standard 256바이트·4 KiB·64 KiB 표면과 큰 선형 표면의 첫 사용 업로드는 GPU에서 디타일합니다. 컴퓨트 커널은 포인터 없는 키와 84바이트 파라미터 블록을 받습니다. 블록 크기, 테일, 피치, 슬라이스, 샘플 수, 64비트 버퍼 오프셋이 모두 32비트로 된 안정적인 레이아웃에 들어 있습니다. 8바이트와 16바이트 2D·3D 표준 및 PRT 표면도 같은 GPU 계열에 속합니다.
RB+와 MSAA를 포함한 다른 계열은 CPU에 남습니다. 이 계열의 Oberon 방정식은 샘플 비트를 포함하며 CPU 경로가 이를 사용합니다. 대체 경로는 대역폭 비용이지 다른 픽셀 형식이 아닙니다. 실행 중 드로의 진단은 계열, 3D 블록 크기, 샘플 수, 밉 테일 경계, 게스트 할당 크기를 보고합니다.
디타일이 프레임 시간에 나타나는 이유
매 프레임 다시 업로드되는 텍스처는 매 프레임 디타일 비용을 치릅니다. 페이지 추적기를 켜면 바뀌지 않은 페이지가 상주 상태로 남아 디타일을 건너뜁니다. GPU가 직접 다시 쓴 텍스처는 여전히 무효화해야 합니다. 디타일이 이 일관성 규칙을 대신하지는 않습니다.
샘플 뷰는 0이 아닌 기본 레벨을 포함해 디스크립터가 지정한 밉 범위를 디타일합니다. 이 경우 Vulkan 이미지의 밉 0이 뷰의 기본 레벨입니다. 뷰 경로에 아직 없는 성분 스위즐은 주소 방정식과는 별개의 제한입니다.
구현된 것
- 밉 테일과 3D 블록을 포함한 GFX10 선형, Standard, PRT, 깊이, 렌더 타깃 주소 방정식.
- 큰 4, 8, 16바이트 2D·3D 표준 및 PRT 표면의 GPU 컴퓨트 디타일.
- MSAA와 RB+ 샘플 비트를 포함한 나머지 계열의 CPU 디타일.
- 짧은 범위와 오버플로를 거부하는 검사된 하위 리소스 오프셋.
아직 빠진 것
- MSAA와 RB+ 디타일은 CPU에서 실행됩니다.
- 일부 성분 스위즐과 레이어 뷰는 아직 불완전합니다.
- 업로드 뒤 CPU가 쓴 표면은 다시 샘플링하기 전에 무효화해야 합니다.
관련 메커니즘
이 페이지들에 대하여