1
我正在寻找一种可能性来估计Direct3D中的空闲纹理内存,就像使用IDirect3DDevice9::GetAvailableTextureMem
一样,但目前为止还没有发现任何东西。有什么建议么?GetAvailableTextureMem在Direct3D 11
我正在寻找一种可能性来估计Direct3D中的空闲纹理内存,就像使用IDirect3DDevice9::GetAvailableTextureMem
一样,但目前为止还没有发现任何东西。有什么建议么?GetAvailableTextureMem在Direct3D 11
您可以使用此代码片段:
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;
}
OK,我不知道这种方法。然而,据我所知,这会给我完全可用的记忆,而不是估计目前有多少免费,对吗? – Christoph 2013-01-03 16:38:39
对。它决定了完全可用的内存,而不是当前可用的内存。 – Vertexwahn 2013-01-04 11:56:25
你知道后者是否可能? – Christoph 2013-01-09 13:05:54