ID3D12Device4::GetResourceAllocationInfo1(UINT,UINT,constD3D12_RESOURCE_DESC*,D3D12_RESOURCE_ALLOCATION_INFO1*) 方法 (d3d12.h)

获取有关此适配器上资源集合所需的内存大小和对齐方式的丰富信息。 另请参阅 ID3D12Device::GetResourceAllocationInfo

除了从方法返回的 D3D12_RESOURCE_ALLOCATION_INFO 之外,此版本还返回 D3D12_RESOURCE_ALLOCATION_INFO1 结构的数组,该数组为作为输入传递的每个资源说明提供其他详细信息。 请参阅 pResourceAllocationInfo1 参数。

语法

D3D12_RESOURCE_ALLOCATION_INFO GetResourceAllocationInfo1(
  [in]  UINT                            visibleMask,
  [in]  UINT                            numResourceDescs,
  [in]  const D3D12_RESOURCE_DESC       *pResourceDescs,
  [out] D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1
);

参数

[in] visibleMask

类型:UINT

对于单 GPU 操作,请将此项设置为零。 如果有多个 GPU 节点,则设置位以标识节点(设备的物理适配器)。 掩码中的每个位对应于单个节点。 另请参阅 多适配器系统

[in] numResourceDescs

类型:UINT

pResourceDescs 数组中的资源描述符数。 这也是 pResourceAllocationInfo1的大小(元素数)。

[in] pResourceDescs

类型:const D3D12_RESOURCE_DESC*

描述要获取相关信息的资源的 D3D12_RESOURCE_DESC 结构的数组。

[out] pResourceAllocationInfo1

类型:D3D12_RESOURCE_ALLOCATION_INFO1*

一个由 D3D12_RESOURCE_ALLOCATION_INFO1 结构构成的数组,其中包含作为输入传递的每个资源说明的其他详细信息。 这样,应用程序可以更轻松地为多个资源分配堆,而无需手动计算每个资源应放置位置的偏移量。

返回值

类型:D3D12_RESOURCE_ALLOCATION_INFO

D3D12_RESOURCE_ALLOCATION_INFO 结构,提供有关为指定资源数组分配的视频内存的信息。

言论

使用 CreatePlacedResource时,应用程序必须使用 GetResourceAllocationInfo,才能了解纹理资源的大小和对齐特征。 此方法的结果因特定适配器而异,必须被视为此适配器和驱动程序版本的唯一。

应用程序无法使用 GetResourceAllocationInfo 的输出 来了解纹理的打包 mip 属性。 若要了解纹理的打包 mip 属性,应用程序必须使用 GetResourceTiling

纹理资源大小与 GetResourceTiling返回的信息大相径庭,因为某些适配器体系结构为纹理分配额外的内存,以减少常见呈现方案中的有效带宽。 这甚至包括对其纹理布局有约束或具有标准化纹理布局的纹理。 使用 CreateReservedResourceUpdateTileMappings的应用程序无法稀疏映射和重新映射该额外内存,因此不会 GetResourceTiling报告该内存。

应用程序可以使用 GetResourceAllocationInfo 来放弃缓冲资源(D3D12_RESOURCE_DIMENSION_BUFFER)。 缓冲区在所有适配器上的大小相同,这只是大于或等于 D3D12_RESOURCE_DESC::Width的 64KB 的最小倍数。

传入多个资源说明时,将使用用于计算结构大小和对齐方式的C++算法。 例如,一个三元素数组,其中包含两个小 64KB 对齐的资源和一个小 4MB 对齐的资源,根据数组的顺序报告不同的大小。 如果 4MB 对齐的资源位于中间,则生成的 大小 为 12MB。 否则,生成的 大小 为 8MB。 返回的 对齐 始终为 4MB,因为它是资源数组中所有对齐方式的超集。

要求

要求 价值
最低支持的客户端 Windows 10 内部版本 20348
支持的最低服务器 Windows 10 内部版本 20348
目标平台 窗户
标头 d3d12.h
d3d12.lib
DLL d3d12.dll

另请参阅

ID3D12Device4