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 為零,則此參數可以是 NULL。

pValueLen

[in/out]變數的指標,指定 pValue 指向的緩衝區長度,以位元組為單位。 在輸入時,此變數會指定緩衝區的大小。 在輸出中,它會指定寫入緩衝區的數據大小。 如果 pValueLen 設為零,且 pValue 為 NULL,pfnShaderCacheGetValueCb 應該在第二次呼叫中寫入數據所需的位元組數目。 否則,如果 pValue 的緩衝區 指向太小,則函式應該會失敗。

傳回值

如果 pfnShaderCacheGetValueCb 成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。

言論

pfnShaderCacheStoreValueCbpfnShaderCacheGetValueCb 回呼可用來儲存和擷取驅動程式著色器快取中已編譯的著色器程式代碼或其他著色器相關數據。 快取可藉由減少重新編譯已編譯和快取的著色器的需求,協助改善效能。

使用 D3D12DDI_SHADERCACHE_CALLBACKS_0021 結構存取此回呼。

要求

要求 價值
目標平臺 窗戶
標頭 d3d12umddi.h (包括 D3d12umddi.h)

另請參閱

D3D12DDI_SHADERCACHE_CALLBACKS_0021

pfnShaderCacheStoreValueCb