ID3D12Device::GetResourceTiling 方法 (d3d12.h)
获取有关平铺资源如何拆分为磁贴的信息。
语法
void GetResourceTiling(
[in] ID3D12Resource *pTiledResource,
[out, optional] UINT *pNumTilesForEntireResource,
[out, optional] D3D12_PACKED_MIP_INFO *pPackedMipDesc,
[out, optional] D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
[in, out, optional] UINT *pNumSubresourceTilings,
[in] UINT FirstSubresourceTilingToGet,
[out] D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips
);
参数
[in] pTiledResource
类型: ID3D12Resource*
指定用于获取相关信息的平铺 ID3D12Resource 。
[out, optional] pNumTilesForEntireResource
类型: UINT*
指向变量的指针,该变量接收存储整个平铺资源所需的磁贴数。
[out, optional] pPackedMipDesc
指向 D3D12_PACKED_MIP_INFO 结构的指针, GetResourceTiling 用有关如何打包平铺资源的 mipmap 的信息填充该结构。
[out, optional] pStandardTileShapeForNonPackedMips
类型: D3D12_TILE_SHAPE*
指定 GetResourceTiling 使用有关磁贴形状的信息填充的D3D12_TILE_SHAPE结构。 这是有关像素如何适应磁贴的信息,与平铺资源的尺寸无关,不包括打包的 mipmap。 如果打包了整个平铺资源,则此参数毫无意义,因为平铺资源对于打包的 mipmap 没有定义的布局。 在这种情况下, GetResourceTiling 将 D3D12_TILE_SHAPE 的成员设置为零。
[in, out, optional] pNumSubresourceTilings
类型: UINT*
指向包含子资源中磁贴数的变量的指针。 输入时,这是要查询其平铺的子资源数;输出时,这是实际在 pSubresourceTilingsForNonPackedMips 中检索的数字, (固定到可用) 。
[in] FirstSubresourceTilingToGet
类型: UINT
要获取的第一个子资源磁贴的编号。 如果 pNumSubresourceTilings 指向的数字为 0,GetResourceTiling 将忽略此参数。
[out] pSubresourceTilingsForNonPackedMips
指定 GetResourceTiling 填充有关子资源磁贴信息的D3D12_SUBRESOURCE_TILING结构。 如果子资源磁贴是打包的 mipmap 的一部分, 则 GetResourceTiling 会将 D3D12_SUBRESOURCE_TILING 的成员设置为零,但 StartTileIndexInOverallResource 成员除外, GetResourceTiling 将其设置为D3D12_PACKED_TILE (0xffffffff) 。 D3D12_PACKED_TILE常量指示整个 D3D12_SUBRESOURCE_TILING 结构对于这种情况毫无意义,并且 pPackedMipDesc 参数指向的信息适用。
返回值
无
备注
若要估算计算堆大小并调用 CreatePlacedResource 时所需的纹理总资源大小,请使用 GetResourceAllocationInfo 而不是 GetResourceTiling。 GetResourceTiling 不能用于此。
有关平铺资源的详细信息,请参阅 卷平铺资源。
要求
目标平台 | Windows |
标头 | d3d12.h |
Library | D3d12.lib |
DLL | D3d12.dll |
请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈