ID3D12Device7::AddToStateObject 方法 (d3d12.h)
以增量方式添加到现有状态对象。 这会产生比从头开始创建状态对象的 CPU 开销更低,该状态对象是现有对象的超集 (例如,) 添加更多着色器。
语法
HRESULT AddToStateObject(
const D3D12_STATE_OBJECT_DESC *pAddition,
ID3D12StateObject *pStateObjectToGrowFrom,
REFIID riid,
void **ppNewStateObject
);
参数
pAddition
类型:_In_ const D3D12_STATE_OBJECT_DESC*
要添加到现有状态对象的状态对象内容的说明。 若要帮助生成此值,请参阅 中的 类d3dx12.h
中的CD3D12_STATE_OBJECT_DESC帮助程序。
pStateObjectToGrowFrom
类型:_In_ ID3D12StateObject*
现有状态对象,可以使用 (例如,在此操作期间的活动光线追踪) 。
现有状态对象不得为 Collection 类型。
riid
类型:_In_ REFIID
必须是 ID3D12StateObject 接口的 IID。
ppNewStateObject
类型:_COM_Outptr_ void**
返回的状态对象。
如果从此调用中为新着色器检索着色器标识符,并且通过任何引用某些较旧状态对象的现有或正在进行的命令列表通过着色器表访问这些标识符,则行为是未定义的。 只能从调用 AddToStateObject 后记录在命令列表中的命令列表中记录的命令 (如 DispatchRays 或 ExecuteIndirect 调用) 使用添加到状态对象的新着色器。
返回值
成功S_OK 。 E_INVALIDARG, 失败时E_OUTOFMEMORY 。 调试层提供详细的状态信息。
注解
有关详细信息,请参阅 AddToStateObject。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 10内部版本 20348 |
最低受支持的服务器 | Windows 10内部版本 20348 |
标头 | d3d12.h |
Library | d3d12.lib |
DLL | d3d12.dll |