【问题标题】:GetAvailableTextureMem equivalent in Direct3D 11Direct3D 11 中的 GetAvailableTextureMem 等效项
【发布时间】:2012-03-11 14:30:40
【问题描述】:

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

【问题讨论】:

    标签: memory-management textures direct3d direct3d11


    【解决方案1】:

    你可以使用这个代码sn-p:

    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;
    }
    

    【讨论】:

    • 好的,我不知道这个方法。但是,据我了解,这会给我提供完全可用的内存,而不是估计当前可用的内存量,对吧?
    • 对。它确定完全可用的内存,而不是当前可用的内存。
    • 你知道后者是否也可以吗?
    • 没有。我自己对此进行了一些研究,但找不到任何解决方案。
    猜你喜欢
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    • 2017-07-06
    • 1970-01-01
    • 1970-01-01
    • 2021-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多