функция обратного вызова 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

[вход/выход] Указатель на переменную, указывающую длину буфера, на который указывает значение pValue , в байтах. На входных данных эта переменная задает размер буфера. В выходных данных указывается размер данных, записанных в буфер. Если значение pValueLen равно нулю, а значение pValue равно NULL, pfnShaderCacheGetValueCb должен записать количество байтов, необходимое для данных во время второго вызова. В противном случае, если буфер, на который указывает значение pValue , слишком мал, функция должна завершиться ошибкой.

Возвращаемое значение

Если эта функция обратного вызова выполнена успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

Обратные вызовы pfnShaderCacheStoreValueCb и pfnShaderCacheGetValueCb используются для хранения и извлечения скомпилированного кода шейдера или других данных, связанных с шейдерами, в кэше шейдеров драйвера. Кэширование помогает повысить производительность, уменьшая необходимость повторной компиляции шейдеров, которые уже были скомпилированы и кэшированы.

Получите доступ к этому обратному вызову с помощью структуры D3D12DDI_SHADERCACHE_CALLBACKS_0021 .

Требования

Требование Значение
Целевая платформа Windows
Header d3d12umddi.h (включая D3d12umddi.h)

См. также раздел

D3D12DDI_SHADERCACHE_CALLBACKS_0021

pfnShaderCacheStoreValueCb