共用方式為


ID3D12StateObjectProperties::GetShaderStackSize 方法 (d3d12.h)

取得叫用 HLSL 中光線追蹤著色器所需的堆疊記憶體數量。

語法

UINT64 GetShaderStackSize(
  LPCWSTR pExportName
);

參數

pExportName

要擷取堆疊大小的狀態物件中的著色器進入點。 對於點擊群組,必須使用語法來指定點擊群組內的個別著色器:

hitGroupName::shaderType

其中 hitGroupName 是點擊群組的進入點名稱, 而 shaderType 是下列其中一項:

  • 交集
  • anyhit
  • closesthit
這些值全都區分大小寫。

範例值為:「myTreeLeafHitGroup::anyhit」。

傳回值

叫用著色器所需的堆疊記憶體數量,以位元組為單位。 如果著色器未在狀態物件中完全解析,或著色器未知或堆疊大小不相關的類型,例如點擊群組,則會0xffffffff傳回值。 32 位0xffffffff值會用於 UINT64 傳回值,以確保在計算整體管線堆疊大小的一部分加總其他值時,不會遺失不正確的傳回值。

備註

只有在應用程式想要呼叫 SetPipelineStackSize來設定堆疊大小,而不是依賴保守的預設堆疊大小時,才需要呼叫這個方法。 這個方法只適用于光線產生著色器、點擊群組、遺漏著色器和可呼叫的著色器。 即使光線產生著色器在堆疊底部,仍可能會傳回非零值。

針對點擊群組,必須針對組成堆疊的個別著色器查詢堆疊大小 (交集著色器、任何點擊著色器、最接近的點擊著色器) ,因為每個著色器可能有不同的堆疊大小需求。 堆疊大小無法直接在這些個別著色器上查詢,因為編譯它們的方式可以受到包含它們的整體點擊群組所影響。 pExportName參數包含用來識別點擊群組內個別著色器的語法。

您可以在集合狀態物件或光線追蹤管線狀態物件上呼叫此 API。

需求

   
目標平台 Windows
標頭 d3d12.h
程式庫 D3D12.lib
Dll D3D12.dll

另請參閱

ID3D12StateObjectProperties