> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GetShaderStackSize (XBOX Series consoles)

> HLSL でレイトレーシング シェーダーを呼び出すために必要なスタック メモリの量を取得します。

HLSL でレイトレーシング シェーダーを呼び出すために必要なスタック メモリの量を取得します。

## 構文

```cpp theme={null}
UINT64 GetShaderStackSize(
    LPCWSTR pExportName
)
```

### パラメーター

*pExportName*\
型: LPCWSTR

スタック サイズを取得する、状態オブジェクト内のシェーダー エントリポイント。ヒット グループの場合、ヒット グループ内の個々のシェーダーを次の構文で指定する必要があります。

hitGroupName::shaderType

ここで、<i>hitGroupName</i> はヒット グループのエントリポイント名で、<i>shaderType</i> は次のいずれかです。

<ul>
  <li>intersection</li>
  <li>anyhit</li>
  <li>closesthit</li>
</ul>

これらの値はすべて大文字と小文字が区別されます。

値の例: "myTreeLeafHitGroup::anyhit"

### 戻り値

型: UINT64

シェーダーを呼び出すために必要なスタック メモリの量 (バイト単位)。シェーダーが状態オブジェクト内で完全に解決されていない場合、シェーダーが不明である場合、またはヒット グループなどスタック サイズが関連しない種類のシェーダーである場合、戻り値は 0xffffffff です。UINT64 の戻り値に 32 ビットの 0xffffffff 値を使用しているのは、不正な戻り値が全体のパイプライン スタック サイズを計算する際に他の値と加算されても失われないようにするためです。

## 解説

このメソッドは、保守的な既定のスタック サイズに頼るのではなく、[SetPipelineStackSize](/reference/graphics/d3d12/interfaces/id3d12stateobjectproperties/methods/id3d12stateobjectproperties_setpipelinestacksize_public) を呼び出してスタック サイズを構成したい場合にのみ呼び出す必要があります。このメソッドはレイ生成シェーダー、ヒット グループ、ミス シェーダー、および呼び出し可能シェーダーに対してのみ有効です。レイ生成シェーダーはスタックの底にあるにもかかわらず、ゼロ以外の値を返すことがあります。

ヒット グループの場合、それを構成する個々のシェーダー (インターセクション シェーダー、any hit シェーダー、closest hit シェーダー) についてスタック サイズをクエリする必要があります。それぞれ異なるスタック サイズ要件を持つ可能性が高いためです。これらの個々のシェーダーで直接スタック サイズをクエリすることはできません。これらのコンパイル方法は、それらを含むヒット グループ全体によって影響を受ける可能性があるためです。<i>pExportName</i> パラメーターには、ヒット グループ内の個々のシェーダーを識別するための構文が含まれています。

この API は、コレクション状態オブジェクトまたはレイトレーシング パイプライン状態オブジェクトのいずれに対しても呼び出せます。

## 要件

**ヘッダー:** d3d12\_xs.h\
**ライブラリ:** d3d12\_xs.lib\
**サポートされるプラットフォーム**: XBOX Series 本体

## 関連項目

[ID3D12StateObjectProperties](/reference/graphics/d3d12_xs/interfaces/ID3D12StateObjectProperties/id3d12stateobjectproperties)


## Related topics

- [SetPipelineStackSize (XBOX Series consoles)](/ja-jp/reference/graphics/d3d12/interfaces/id3d12stateobjectproperties/methods/id3d12stateobjectproperties_setpipelinestacksize_public.md)
- [GetPipelineStackSize (XBOX Series consoles)](/ja-jp/reference/graphics/d3d12/interfaces/id3d12stateobjectproperties/methods/id3d12stateobjectproperties_getpipelinestacksize_public.md)
- [GetShaderIdentifier (XBOX Series consoles)](/ja-jp/reference/graphics/d3d12/interfaces/id3d12stateobjectproperties/methods/id3d12stateobjectproperties_getshaderidentifier_public.md)
- [D3D12_DISPATCH_RAYS_DESC (XBOX Series consoles)](/ja-jp/reference/graphics/d3d12/structs/d3d12_dispatch_rays_desc_public.md)
- [D3D12_RAYTRACING_SHADER_CONFIG (XBOX Series 本体)](/ja-jp/reference/graphics/d3d12/structs/d3d12_raytracing_shader_config_public.md)
