2012-03-11 40 views
1

我正在尋找一種可能性來估計Direct3D中的空閒紋理內存,就像使用IDirect3DDevice9::GetAvailableTextureMem一樣,但目前爲止還沒有發現任何東西。有什麼建議麼?GetAvailableTextureMem在Direct3D 11

回答

0

您可以使用此代碼片段:

int getAviableVideoMemoryInBytes(ID3D11Device* pd3dDevice) 
{ 
    assert(pd3dDevice); 

    IDXGIDevice * pDXGIDevice = nullptr; 
    HRESULT hr = pd3dDevice->QueryInterface(__uuidof(IDXGIDevice), (void **)&pDXGIDevice); 

    if(FAILED(hr)) 
    { 
     std::cout << "Failed to query interface IDXGIDevice" << std::endl; 
    } 

    IDXGIAdapter * pDXGIAdapter = nullptr; 
    pDXGIDevice->GetAdapter(&pDXGIAdapter); 

    DXGI_ADAPTER_DESC adapterDesc; 
    pDXGIAdapter->GetDesc(&adapterDesc); 

    pDXGIDevice->Release(); 

    return adapterDesc.DedicatedVideoMemory; 
} 
+1

OK,我不知道這種方法。然而,據我所知,這會給我完全可用的記憶,而不是估計目前有多少免費,對嗎? – Christoph 2013-01-03 16:38:39

+0

對。它決定了完全可用的內存,而不是當前可用的內存。 – Vertexwahn 2013-01-04 11:56:25

+0

你知道後者是否可能? – Christoph 2013-01-09 13:05:54