다음을 통해 공유


IDXGIDevice3::Trim 메서드(dxgi1_3.h)

앱 대신 IDXGIDevice3 DXGI 디바이스에서 할당한 그래픽 메모리를 트리밍합니다.

DirectX로 렌더링되는 앱의 경우 그래픽 드라이버는 후속 렌더링 요청 속도를 높이기 위해 내부 메모리 버퍼를 주기적으로 할당합니다. 이러한 메모리 할당은 PLM에 대한 앱의 메모리 사용량에 대해 계산되며 일반적으로 전체 시스템에서 메모리 사용량이 증가합니다.

Windows 8.1 시작해서 Direct2D 및/또는 Direct3D(CoreWindow 및 XAML interop 포함)로 렌더링되는 앱은 PLM 일시 중단 콜백에 대한 응답으로 Trim을 호출해야 합니다. Direct3D 런타임 및 그래픽 드라이버는 앱에 할당된 내부 메모리 버퍼를 삭제하여 메모리 공간을 줄입니다.

이 메서드를 호출해도 그래픽 디바이스의 렌더링 상태는 변경되지 않으며 렌더링 작업에는 영향을 주지 않습니다. Trim 호출 후 첫 번째 렌더링 작업 중에 내부 버퍼가 다시 할당될 때 짧은 성능이 적중되므로 앱은 일정 기간 유휴 상태로 전환할 때만 Trim을 호출해야 합니다(예: PLM 일시 중단에 대한 응답).

앱은 유휴 상태로 전환하기 전에 마지막으로 수행된 D3D 작업 중 하나로 Trim 을 호출해야 합니다. Direct3D는 일반적으로 D3D 개체의 소멸을 연기합니다. 그러나 Trim을 호출하면 Direct3D가 개체를 즉시 삭제합니다. 따라서 Trim 을 호출한 후 Direct3D 개체에 대한 최종 참조를 해제하면 개체가 삭제되고 앱이 일시 중단되기 전에 메모리의 할당이 취소된다는 보장은 없습니다.

ID3D11DeviceContext::Flush와 마찬가지로 앱은 Trim을 호출하기 전에 ID3D11DeviceContext::ClearState를 호출해야 합니다. ClearState 는 Direct3D 파이프라인 바인딩을 지우고 Direct3D에서 해제하려는 Direct3D 개체에 대한 참조를 포함하지 않도록 합니다.

또한 미들웨어가 Direct3D 개체에 대한 참조를 해제해야 할 수도 있으므로 Trim을 호출하기 전에 미들웨어에서 참조를 해제하는 것이 중요합니다.

구문

void Trim();

반환 값

없음

요구 사항

   
지원되는 최소 클라이언트 Windows 8.1 [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2012 R2 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 dxgi1_3.h
라이브러리 Dxgi.lib

추가 정보

IDXGIDevice3