Поделиться через


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

См. также

D3D12DDI_SHADERCACHE_CALLBACKS_0021

pfnShaderCacheStoreValueCb