在 Win32 API 的 Direct3D 12 中,D3D12_RESIDENCY_FLAGS 枚举用于指定资源在 GPU 内存中的驻留行为。这个枚举定义在 D3d12.h 头文件中,包含以下成员:

1. D3D12_RESIDENCY_FLAG_NONE: 无特殊标志。
2. D3D12_RESIDENCY_FLAG_DENY_OVERBUDGET: 驻留期间不允许资源超出预算。
3. D3D12_RESIDENCY_FLAG_PARTIAL_RESIDENCY: 允许资源的部分驻留。

这些标志用于配置资源在 GPU 内存中的驻留行为,影响资源的加载和卸载策略。

以下是一个示例代码片段,演示了如何使用 D3D12_RESIDENCY_FLAGS 枚举:
#include <d3d12.h>

// 其他代码...

// 配置资源在 GPU 内存中的驻留标志
D3D12_RESIDENCY_FLAGS residencyFlags = D3D12_RESIDENCY_FLAG_NONE;
residencyFlags |= D3D12_RESIDENCY_FLAG_DENY_OVERBUDGET; // 例如,不允许资源超出预算

// 在创建资源时使用 residencyFlags
// 例如:D3D12_HEAP_PROPERTIES 和 D3D12_RESOURCE_DESC

在这个例子中,通过将 residencyFlags 设置为 D3D12_RESIDENCY_FLAG_DENY_OVERBUDGET,表示在资源的驻留期间不允许超出预算。你可以根据需要选择不同的标志。请注意,具体的标志及其用途可能会随着 Direct3D 版本的更新而有所改变,因此建议查阅最新的官方文档或 SDK 版本。


转载请注明出处:http://www.zyzy.cn/article/detail/26089/Win32 API/D3d12.h/D3D12_RESIDENCY_FLAGS