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
pValueLen
[in/out]指向一个变量的指针,该变量指定 pValue 指向的缓冲区的长度(以字节为单位)。 在输入时,此变量指定缓冲区的大小。 在输出中,它指定写入缓冲区的数据的大小。 如果 pValueLen 设置为零,pValue 为 NULL,pfnShaderCacheGetValueCb 应在第二次调用中写入数据所需的字节数。 否则,如果 pValue 指向的缓冲区太小,该函数应失败。
返回值
如果 pfnShaderCacheGetValueCb 成功,则返回 S_OK。 否则,它将返回 HRESULT 错误代码。
言论
pfnShaderCacheStoreValueCb 和 pfnShaderCacheGetValueCb 回调用于存储和检索驱动程序着色器缓存中编译的着色器代码或其他着色器相关数据。 通过减少重新编译已编译和缓存的着色器的需求,缓存有助于提高性能。
使用 D3D12DDI_SHADERCACHE_CALLBACKS_0021 结构访问此回调。
要求
要求 | 价值 |
---|---|
目标平台 | 窗户 |
标头 | d3d12umddi.h (包括 D3d12umddi.h) |