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]指向已编译的着色器代码或与 pPrecomputedHashpKey 标识的着色器关联的其他数据的指针。 如果 pValueLen 为零,此参数可以为 NULL。

pValueLen

[in/out]指向变量的指针,该变量指定 pValue 指向的缓冲区的长度(以字节为单位)。 输入时,此变量指定缓冲区的大小。 在输出中,它指定写入缓冲区的数据的大小。 如果 pValueLen 设置为零且 pValue 为 NULL, 则 pfnShaderCacheGetValueCb 应在第二次调用中写入数据所需的字节数。 否则,如果 pValue 指向的缓冲区太小,函数应会失败。

返回值

如果此回调函数成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

注解

pfnShaderCacheStoreValueCbpfnShaderCacheGetValueCb 回调用于在驱动程序的着色器缓存中存储和检索已编译的着色器代码或其他与着色器相关的数据。 缓存通过减少重新编译已编译和缓存的着色器的需求来提高性能。

使用 D3D12DDI_SHADERCACHE_CALLBACKS_0021 结构访问此回调。

要求

要求
目标平台 Windows
标头 d3d12umddi.h (包括 D3d12umddi.h)

另请参阅

D3D12DDI_SHADERCACHE_CALLBACKS_0021

pfnShaderCacheStoreValueCb