Функция 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

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

Основные функции