次の方法で共有


PFND3D12DDI_SHADERCACHEGETVALUE_CB_0021 コールバック関数 (d3d12umddi.h)

pfnShaderCacheGetValueCb コールバック関数は、シェーダー キャッシュに格納されている値を取得します。

構文

PFND3D12DDI_SHADERCACHEGETVALUE_CB_0021 Pfnd3d12ddiShadercachegetvalueCb0021;

HRESULT Pfnd3d12ddiShadercachegetvalueCb0021(
  D3D12DDI_HRTDEVICE hRTDevice,
  D3D12DDI_HRTPIPELINESTATE hRTPSO,
  const D3D12DDI_SHADERCACHE_HASH *pPrecomputedHash,
  const void *pKey,
  SIZE_T KeyLen,
  void *pValue,
  SIZE_T *pValueLen
)
{...}

パラメーター

hRTDevice

[in]ランタイムによるデバイスの表現を処理します。

hRTPSO

[in]ランタイムのパイプライン状態オブジェクトの表現を処理します。

pPrecomputedHash

[in]キャッシュ参照に使用するハッシュ値を含む D3D12DDI_SHADERCACHE_HASH 構造体。

pKey

[in]ドライバーのシェーダー キャッシュから取得する値に関連付けられているキーへのポインター。 キーは、キャッシュ内のシェーダー データを一意に識別します。

KeyLen

[in]pKey が指 キーの長さ (バイト単位)。

pValue

[out]pPrecomputedHash および pKey によって識別されるシェーダーに関連付けられたコンパイル済みシェーダー コードまたはその他のデータへのポインター。 pValueLen 0 の場合、このパラメーターは NULL にすることができます。

pValueLen

[入力/出力]pValue が指すバッファーの長さをバイト単位 指定する変数へのポインター。 入力時に、この変数はバッファーのサイズを指定します。 出力時に、バッファーに書き込まれたデータのサイズを指定します。 pValueLen が 0 に設定され、pValue が NULL 場合、pfnShaderCacheGetValueCb は、2 回目の呼び出しでデータに必要なバイト数を書き込む必要があります。 それ以外の場合、pValue が指 バッファーが小さすぎる場合、関数は失敗します。

戻り値

pfnShaderCacheGetValueCb 成功した場合は、S_OKを返します。 それ以外の場合は、HRESULT エラー コードが返されます。

備考

pfnShaderCacheStoreValueCb および pfnShaderCacheGetValueCb コールバックは、ドライバーのシェーダー キャッシュにコンパイルされたシェーダー コードまたはその他のシェーダー関連データを格納および取得するために使用されます。 キャッシュは、既にコンパイルおよびキャッシュされているシェーダーを再コンパイルする必要性を減らすことで、パフォーマンスの向上に役立ちます。

D3D12DDI_SHADERCACHE_CALLBACKS_0021 構造体を使用して、このコールバックにアクセスします。

必要条件

要件 価値
ターゲット プラットフォーム の ウィンドウズ
ヘッダー d3d12umddi.h (D3d12umddi.h を含む)

関連項目

D3D12DDI_SHADERCACHE_CALLBACKS_0021

pfnShaderCacheStoreValueCb の