모두가 알고있듯이 OMSetRenderTargets()의 사용법은 아래와 같다.
m_pImmediateContext->OMSetRenderTargets(1, &pRenderTarget_1, nullptr);
Rendering();
m_pImmediateContext->OMSetRenderTargets(1, &pRenderTarget_2, nullptr);
Rendering();
m_pImmediateContext->OMSetRenderTargets(1, &pRenderTarget_1, nullptr);
for (int i = 0; i < MAX_DEFERRED_COUNT; ++i)
m_pDeferredContext[i]->OMSetRenderTargets(1, &pRenderTarget_1, nullptr);
Rendering();
m_pImmediateContext->OMSetRenderTargets(1, &pRenderTarget_2, nullptr);
for (int i = 0; i < MAX_DEFERRED_COUNT; ++i)
m_pDeferredContext[i]->OMSetRenderTargets(1, &pRenderTarget_2, nullptr);
Rendering();
그랬더니, 엄청난 메모리 증가량을 볼 수 있었다. ㅎㅎ....
결국 확인해 보니, DeferredContext에 대해서는 별도의 OMSetRenderTargets()를 설정하지 않아도 문제없이
여러 개의 RenderTarget에 그리는 것을 확인하였다.
'Visualization Programming > DirectX11' 카테고리의 다른 글
DirectX11 - D3DX11CreateShaderResourceViewFromMemory()에서 E_INVALIDARG 발생. (0) | 2016.11.22 |
---|---|
DirectX11 - Device Lost (0) | 2016.10.24 |
DirectX11 - Deferred Context Memory Leak (0) | 2016.06.30 |
DirectX11 - UpdateSubResource(), Map() ~ Unmap(), CopyResource(), CopySubresourceRegion()의 팁 (0) | 2016.04.15 |
DirectX11 - Dispatch()와 [numthreads] (0) | 2016.03.28 |