Memory management Direct3D 11中的GetAvailableTextureTM等效项

Memory management Direct3D 11中的GetAvailableTextureTM等效项,memory-management,textures,direct3d,direct3d11,Memory Management,Textures,Direct3d,Direct3d11,我正在寻找在Direct3D中获得可用纹理内存估计值的可能性,就像使用IDirect3DDevice9::GetAvailableTexturem一样,但到目前为止没有找到任何内容。有什么建议吗?您可以使用以下代码段: int getAviableVideoMemoryInBytes(ID3D11Device* pd3dDevice) { assert(pd3dDevice); IDXGIDevice * pDXGIDevice = nullptr; HRESULT h

我正在寻找在Direct3D中获得可用纹理内存估计值的可能性,就像使用
IDirect3DDevice9::GetAvailableTexturem
一样,但到目前为止没有找到任何内容。有什么建议吗?

您可以使用以下代码段:

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;
}
int GetAviableVideoMemoryBytes(ID3D11Device*pd3dDevice)
{
断言(pd3dDevice);
IDXGIDevice*pDXGIDevice=nullptr;
HRESULT hr=pd3dDevice->QueryInterface(u uuidof(IDXGIDevice),(void**)和pDXGIDevice);
如果(失败(小时))
{
标准::cout-GetDesc(&adapterDesc);
pDXGIDevice->Release();
返回适配器Desc.专用视频存储器;
}

好的,我不知道这个方法。但是,据我所知,这会给我完全可用的内存,而不是估计当前可用的内存,对吗?对。它决定了完全可用的内存,而不是当前可用的内存。你知道后一种方法是否可行吗?不。我自己也做过一些研究,但我找不到任何解决办法。