[DirectX] memory pool에서의 D3DPOOL_DEFAULT와 D3DPOOL_MANAGED2016. 3. 16. 20:26
cf. Memory Pool
: DirectX의 자원(ex.serface)들은 여러 가지 종류의 메모리 풀에 저장할 수 있으며, 메모리 풀은 열거형 멤버로 지정된다.
메모리 종류 정리
1. 시스템 메모리(system memory) : CPU RAM 메모리
2. 비디오 메모리(video memory) : 그래픽카드 RAM 메모리
3. AGP aperture 메모리 : 물리적으로는 시스템 메모리에 위치.
가상메모리처럼, 비디오 메모리가 부족할 경우, 시스템 메모리에 AGP 영역을 만들어서
비디오 메모리처럼 사용한다.
★cf. 비디오메모리 / AGP메모리에서의 읽기 속도는 매우 느리다.
1. D3DPOOL_DEFAULT
리소스들을 로컬 비디오 메모리와 AGP 메모리에 생성한다.
리소스들은 반드시 IDirect3DDevice9::Reset() 함수 호출 이전에 해제되어야 하고,
Reset() 호출 이후에 다시 초기화되어야한다. (=> 즉 리소스 복구가 필요하다는 것)
만약, 리소스 생성할 때 메모리가 부족할 경우 Managed 리소스가 제거된다.
2. D3DPOOL_MANAGED
DirectX에 의하여 리소스들이 관리된다. (=> 필요에 따라 자동으로 비디오/AGP 메모리로 옮겨진다.)
리소스들의 백업 복사본이 시스템 메모리 내에 보관되는데
애플리케이션이 리소스에 접근하고 수정할 때에는 시스템 메모리에 있는 복사본을 이용한다.
(=> 즉 시스템 메모리에 자동으로 백업되므로 리소스가 손상되어도 복구가 필요없다.)
해당 출처를 통해
작성자가 바로 찾을 수 있도록
정리해놓은 것입니다.
출처:
http://www.viper.pe.kr/wiki2/wiki.php/D3DPOOL%20%BF%AD%B0%C5%C7%FC%20%C1%A6%B4%EB%B7%CE%20%BE%CB%B1%E2
http://cappleblog.co.kr/247
http://l4knight.blog.me/120202155512
'DirectX' 카테고리의 다른 글
[펌] D3DXVec3TransformNormal 과 D3DXVec3TransformCoord 차이 (0) | 2018.02.23 |
---|---|
[펌] 렌더링 파이프라인 (0) | 2018.02.22 |