функция обратного вызова 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. Этот параметр может иметь значение NULL, если pValueLen равно нулю.
pValueLen
[in/out] Указатель на переменную, указывающую длину буфера, на который pValue указывает в байтах. При входных данных эта переменная указывает размер буфера. В выходных данных указывается размер данных, записанных в буфер. Если pValueLen равно нулю и pValue имеет значение NULL, pfnShaderCacheGetValueCb должен записать количество байтов, необходимых для данных во втором вызове. В противном случае, если буфер, pValue указывает слишком мал, функция должна завершиться ошибкой.
Возвращаемое значение
Если pfnShaderCacheGetValueCb успешно, возвращается S_OK. В противном случае возвращается код ошибки HRESULT.
Замечания
Обратные вызовы pfnShaderCacheStoreValueCb и pfnShaderCacheGetValueCb используются для хранения и получения скомпилированного кода шейдера или других данных, связанных с шейдером драйвера. Кэширование помогает повысить производительность, уменьшая необходимость повторно компилировать шейдеры, которые уже скомпилированы и кэшированы.
Доступ к этому обратному вызову с помощью структуры D3D12DDI_SHADERCACHE_CALLBACKS_0021.
Требования
Требование | Ценность |
---|---|
целевая платформа | Виндоус |
заголовка | d3d12umddi.h (include D3d12umddi.h) |