Método IDXGIDevice3::Trim (dxgi1_3.h)
Corta a memória gráfica alocada pelo dispositivo DXGI IDXGIDevice3 em nome do aplicativo.
Para aplicativos que são renderizados com DirectX, os drivers gráficos alocam periodicamente buffers de memória internos para acelerar as solicitações de renderização subsequentes. Essas alocações de memória contam com relação ao uso de memória do aplicativo para PLM e, em geral, levam ao aumento do uso de memória pelo sistema geral.
A partir de Windows 8.1, os aplicativos que são renderizados com Direct2D e/ou Direct3D (incluindo a interoperabilidade CoreWindow e XAML) devem chamar Trim em resposta ao retorno de chamada de suspensão do PLM. O runtime do Direct3D e o driver gráfico descartarão buffers de memória internos alocados para o aplicativo, reduzindo seu volume de memória.
Chamar esse método não altera o estado de renderização do dispositivo gráfico e não tem efeito nas operações de renderização. Há um breve impacto no desempenho quando os buffers internos são realocados durante as primeiras operações de renderização após a chamada trim , portanto, os aplicativos só devem chamar Trim ao ficar ociosos por um período de tempo (em resposta à suspensão do PLM, por exemplo).
Os aplicativos devem garantir que eles chamem Trim como uma das últimas operações D3D feitas antes de ficar ocioso. O Direct3D normalmente adiará a destruição de objetos D3D. Chamar Trim, no entanto, força o Direct3D a destruir objetos imediatamente. Por esse motivo, não é garantido que liberar a referência final em objetos Direct3D depois de chamar Trim fará com que o objeto seja destruído e a memória seja desalocada antes que o aplicativo seja suspenso.
Semelhante a ID3D11DeviceContext::Flush, os aplicativos devem chamar ID3D11DeviceContext::ClearState antes de chamar Trim. ClearState limpa as associações de pipeline do Direct3D, garantindo que o Direct3D não mantenha nenhuma referência aos objetos Direct3D que você está tentando liberar.
Também é prudente liberar referências no middleware antes de chamar Trim, pois esse middleware também pode precisar liberar referências a objetos Direct3D.
Sintaxe
void Trim();
Valor retornado
Nenhum
Requisitos
Cliente mínimo com suporte | Windows 8.1 [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2012 R2 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | dxgi1_3.h |
Biblioteca | Dxgi.lib |