Функция D3D12EnableExperimentalFeatures (d3d12.h)
Включает список экспериментальных функций.
Синтаксис
HRESULT D3D12EnableExperimentalFeatures(
UINT NumFeatures,
[in] const IID *pIIDs,
[in] void *pConfigurationStructs,
[in] UINT *pConfigurationStructSizes
);
Параметры
NumFeatures
Тип: UINT
Количество экспериментальных функций, которые необходимо включить.
[in] pIIDs
Тип: const IID*
SAL: __in_ecount(NumFeatures)
Указатель на массив идентификаторов, указывающих, какие из доступных экспериментальных функций следует включить.
[in] pConfigurationStructs
Тип: void*
SAL: __in_ecount(NumFeatures)
Структуры, содержащие дополнительные сведения о конфигурации, которые могут потребоваться включить некоторые экспериментальные функции.
[in] pConfigurationStructSizes
Тип: UINT*
SAL: __in_ecount(NumFeatures)
Размеры всех структур конфигурации, передаваемых в параметре pConfigurationStructs.
Возвращаемое значение
Тип: HRESULT
Этот метод возвращает код успеха ИЛИ ошибки HRESULT, который может включать E_NOINTERFACE, если указан неопознанный компонент или режим разработчика не включен, или E_INVALIDARG, если конфигурация компонента правильная, указанные экспериментальные функции несовместимы или другие ошибки.
Комментарии
Вызовите эту функцию перед созданием устройства.
Поскольку набор экспериментальных функций со временем изменяется, а эти функции могут быть не стабильными, они предназначены только для разработки и экспериментирования. Это необходимо, чтобы режим разработчика был активен, прежде чем можно будет включить какие-либо экспериментальные функции.
Набор поддерживаемых в настоящее время экспериментальных функций можно найти в заголовке D3D12.h рядом с определением функции D3D12EnableExperimentalFeatures; Поскольку экспериментальные функции становятся доступными только редко, обычно экспериментальные функции в настоящее время не поддерживаются.
Некоторые экспериментальные функции можно определить с помощью ИИД в качестве GUID. Для этих функций можно использовать D3D12GetDebugInterface, передав в качестве параметра IID, чтобы получить интерфейс для управления этой функцией.
Если эта функция вызывается снова с другим списком функций для включения, все текущие устройства D3D12 будут настроены в состояние DEVICE_REMOVED.
Примеры
В этом примере показано, как выглядит экспериментальное определение функции.
// --------------------------------------------------------------------------------------------------------------------------------
// Experimental Feature: D3D12ExperimentalShaderModels
//
// Use with D3D12EnableExperimentalFeatures to enable experimental shader model support,
// meaning shader models that haven't been finalized for use in retail.
//
// Enabling D3D12ExperimentalShaderModels needs no configuration struct, pass NULL in the pConfigurationStructs array.
//
// --------------------------------------------------------------------------------------------------------------------------------
static const UUID D3D12ExperimentalShaderModels = { /* 76f5573e-f13a-40f5-b297-81ce9e18933f */
0x76f5573e,
0xf13a,
0x40f5,
{ 0xb2, 0x97, 0x81, 0xce, 0x9e, 0x18, 0x93, 0x3f }
};
Требования
Целевая платформа | Windows |
Header | d3d12.h |
Библиотека | D3D12.lib |
DLL | D3D12.dll |