如何在D3D11中获取资源分配大小

问题描述

基本上试图找到与d3d12资源大小查询等效的内容

https://docs.microsoft.com/en-us/windows/win32/api/d3d12/nf-d3d12-id3d12device-getresourceallocationinfo

需要确定GPU上的实际资源大小。

解决方法

该信息不会直接在Direct3D 11中公开。从历史上讲,此信息已在Direct3D / OpenGL中进行了抽象,但是要知道应用程序要管理Direct3D 12 / Vulkan所需的视频内存,需要知道实际的资源大小。

使用Direct3D 11最好的办法就是进行估算。 DirectXTex有很多代码可以为像素计算Direct3D资源的“原始”图像大小,但是无法告诉您任何可能使它变大的特定硬件要求(步幅,mip打包等)。比起那个来说。换句话说,原始像素的大小是实际大小的“最小界限”。