타일 풀 크기 조정
타일 풀에 매핑되는 타일 리소스에 대해 더 많은 작업 집합이 필요한 경우 ID3D11DeviceContext2::ResizeTilePool API를 사용하여 타일 풀을 확장하거나 필요한 공간이 더 적은 경우 축소합니다. 애플리케이션에 대한 또 다른 옵션은 바둑판식 새 리소스에 대해 추가 타일 풀을 할당하는 것입니다. 그러나 타일 풀에서 처음에 사용할 수 있는 것보다 더 많은 공간이 필요한 단일 타일 리소스가 있는 경우 타일 풀을 늘리는 것이 좋습니다. 바둑판식 리소스는 동시에 여러 타일 풀에 매핑할 수 없습니다.
타일 풀이 커지면 디스플레이 드라이버에서 하나 이상의 새 할당을 통해 끝에 추가 타일이 추가됩니다. 할당에 대한 이 분석은 애플리케이션에 표시되지 않습니다. 타일 풀의 기존 메모리는 그대로 유지되고, 해당 메모리에 대한 기존 타일식 리소스 매핑은 그대로 유지됩니다.
타일 풀이 축소되면 타일이 끝에서 제거됩니다. 타일은 초기 할당 크기 아래로도 제거됩니다. 즉, 새 크기를 지나서 새 매핑을 만들 수 없습니다. 그러나 새 크기의 끝을 지나 기존 매핑은 그대로 유지되고 사용할 수 있습니다. 표시 드라이버는 드라이버가 타일 풀 메모리에 사용하는 할당의 모든 부분에 대한 매핑이 유지되는 한 메모리를 유지합니다. 타일 매핑이 어느 메모리를 가리키고 있어서 일부분의 메모리가 축소 후에도 살아있다면, 타일 풀이 다시 확장될 때(얼마나 확장되든 간에) 증가 작업의 크기를 충족하기 위한 추가 할당이 발생하기 전에 기존 메모리가 먼저 재사용됩니다.
메모리를 저장할 수 있으려면 애플리케이션은 타일 풀을 축소할 뿐만 아니라 새 작은 타일 풀 크기의 끝을 지나 기존 매핑을 제거/다시 매핑해야 합니다.
매핑을 축소(및 제거)하는 행위가 반드시 즉각적인 메모리 절약을 생성하는 것은 아닙니다. 메모리 해제는 타일 풀에 대한 디스플레이 드라이버의 기본 할당의 세분화에 따라 달라집니다. 축소가 디스플레이 드라이버의 할당을 사용하지 않도록 만들기에 충분할 경우, 디스플레이 드라이버가 그것을 해제할 수 있습니다. 타일 풀이 커진 경우 이전 크기로 축소하고 타일 매핑을 제거/다시 매핑하면 메모리 절감이 발생할 가능성이 높지만, 크기가 디스플레이 드라이버에서 선택한 기본 할당 크기와 정확히 일치하지 않는 경우는 보장되지 않습니다.
관련 항목