Skip to main content
获取在 HLSL 中调用光线追踪着色器所需的堆栈内存量。

语法

参数

pExportName
类型:LPCWSTR
状态对象中要检索堆栈大小的着色器入口点。对于命中组,必须使用以下语法指定该命中组内的单个着色器: hitGroupName::shaderType 其中 hitGroupName 是命中组的入口点名称,而 shaderType 为下列之一:
  • intersection
  • anyhit
  • closesthit
这些值都区分大小写。 一个示例值为:“myTreeLeafHitGroup::anyhit”。

返回值

类型:UINT64 调用该着色器所需的堆栈内存量,以字节为单位。如果该着色器在状态对象中未完全解析,或该着色器未知,或其类型(例如命中组)不适用堆栈大小,则返回值为 0xffffffff。该 32 位的 0xffffffff 值用作 UINT64 返回值,以确保当与其他值相加以计算整体管道堆栈大小时,无效返回值不会被忽略。

备注

只有当应用程序希望通过调用 SetPipelineStackSize 来配置堆栈大小,而不是依赖保守的默认堆栈大小时,才需要调用此方法。此方法仅对光线生成着色器、命中组、未命中着色器和可调用着色器有效。即使光线生成着色器位于堆栈底部,也可能返回非零值。 对于命中组,必须为构成它的各个着色器(相交着色器、任意命中着色器、最近命中着色器)分别查询堆栈大小,因为每个着色器的堆栈大小要求可能不同。不能直接对这些单独的着色器查询堆栈大小,因为它们的编译方式可能受包含它们的整个命中组的影响。pExportName 参数包含用于标识命中组内单个着色器的语法。 此 API 可在集合状态对象或光线追踪管道状态对象上调用。

要求

头文件: d3d12_xs.h
库: d3d12_xs.lib
支持的平台:XBOX Series 主机

另请参阅

ID3D12StateObjectProperties
最后修改于 2026年8月24日