Метод ID3D11Debug::SetFeatureMask (d3d11sdklayers.h)

Задайте битовое поле флагов, которое будет включать и отключать функции отладки.

Синтаксис

HRESULT SetFeatureMask(
  UINT Mask
);

Параметры

Mask

Тип: UINT

Сочетание флагов маски признаков, объединенных с помощью побитовой операции ИЛИ. Если флаг присутствует, эта функция будет включена, в противном случае функция будет отключена. Описание флагов маски функций см. в разделе Примечания.

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

Тип: HRESULT

Этот метод возвращает один из кодов возврата Direct3D 11.

Комментарии

Примечание При вызове этого API в процессе сеанса 0 он возвращает DXGI_ERROR_NOT_CURRENTLY_AVAILABLE.
 
Установка одного из следующих флагов маски функций приведет к тому, что метод операции отрисовки (перечисленный ниже) выполнит некоторые дополнительные задачи при вызове.
D3D11_DEBUG_FEATURE_FINISH_PER_RENDER_OP (0x2) Прежде чем продолжить, приложение будет ожидать завершения обработки операций отрисовки gpu.
D3D11_DEBUG_FEATURE_FLUSH_PER_RENDER_OP (0x1) Среда выполнения дополнительно вызывает ID3D11DeviceContext::Flush.
D3D11_DEBUG_FEATURE_PRESENT_PER_RENDER_OP (0x4) Среда выполнения вызовет IDXGISwapChain::P resent. Представление буферов отрисовки будет происходить в соответствии с параметрами, установленными при предыдущих вызовах ID3D11Debug::SetSwapChain и ID3D11Debug::SetPresentPerRenderOpDelay.
 

Эти флаги маски функций применяются к следующим методам операций отрисовки:

Установив один из следующих флагов маски функций, вы можете управлять поведением методов IDXGIDevice2::OfferResources и IDXGIDevice2::ReclaimResources , чтобы упростить тестирование и отладку.
Примечание Эти флаги поддерживаются средой выполнения Direct3D 11.1, которая доступна начиная с Windows 8.
 
D3D11_DEBUG_FEATURE_ALWAYS_DISCARD_OFFERED_RESOURCE (0x8) При вызове IDXGIDevice2::OfferResources для предложения ресурсов, пока этот флаг включен, их содержимое всегда удаляется. Используйте этот флаг для тестирования путей кода, которые повторно создают содержимое ресурсов при освобождении. Этот флаг нельзя использовать в сочетании с D3D11_DEBUG_FEATURE_NEVER_DISCARD_OFFERED_RESOURCE.
D3D11_DEBUG_FEATURE_NEVER_DISCARD_OFFERED_RESOURCE (0x10) При вызове IDXGIDevice2::OfferResources для предложения ресурсов, пока этот флаг включен, их содержимое никогда не удаляется. Используйте этот флаг для тестирования путей кода, которые не нужно повторно создавать содержимое ресурсов при освобождении. Этот флаг нельзя использовать в сочетании с D3D11_DEBUG_FEATURE_ALWAYS_DISCARD_OFFERED_RESOURCE.
 

Поведение методов IDXGIDevice2::OfferResources и IDXGIDevice2::ReclaimResources зависит от нехватки памяти на уровне системы. Таким образом, сценарий, в котором содержимое теряется и его необходимо повторно создать, является редким для большинства приложений. Предыдущие новые параметры на уровне отладки Direct3D позволяют согласованно имитировать этот сценарий и тестировать пути кода.

Следующий флаг поддерживается средой выполнения Direct3D 11.1.

D3D11_DEBUG_FEATURE_AVOID_BEHAVIOR_CHANGING_DEBUG_AIDS (0x40) Отключает следующее поведение отладки по умолчанию.
 

Если уровень отладки включен, он выполняет определенные действия для выявления проблем с приложением. Установив флаг D3D11_DEBUG_FEATURE_AVOID_BEHAVIOR_CHANGING_DEBUG_AIDS маски компонентов, вы можете включить уровень отладки без выполнения следующего поведения отладки по умолчанию:

  • Если приложение вызывает ID3D11DeviceContext1::D iscardView, среда выполнения заполняет ресурс случайным цветом.
  • Если приложение вызывает IDXGISwapChain1::P resent1 с частичными параметрами презентации, среда выполнения игнорирует сведения о частичной презентации.
Следующий флаг поддерживается средой выполнения Direct3D 11.2.
D3D11_DEBUG_FEATURE_DISABLE_TILED_RESOURCE_MAPPING_TRACKING_AND_VALIDATION (0x80) Отключает следующее поведение отладки по умолчанию.
 

По умолчанию (то есть без задания D3D11_DEBUG_FEATURE_DISABLE_TILED_RESOURCE_MAPPING_TRACKING_AND_VALIDATION) уровень отладки проверяет правильное использование всех сопоставлений плиток для ресурсов с плитками для привязанных ресурсов для каждой операции, выполняемой в контексте устройства (например, рисование, копирование и т. д.). В зависимости от размера используемых мозаичного ресурса (если таковые есть), эта проверка может быть интенсивной и медленной. Приложения могут изначально запускаться с проверкой сопоставления плиток ресурсов; Затем, определив, что шаблон вызова безопасен, он может отключить проверку, задав D3D11_DEBUG_FEATURE_DISABLE_TILED_RESOURCE_MAPPING_TRACKING_AND_VALIDATION.

Если при создании ресурса с плиткой задано D3D11_DEBUG_FEATURE_DISABLE_TILED_RESOURCE_MAPPING_TRACKING_AND_VALIDATION, уровень отладки никогда не выполняет отслеживание сопоставления плиток для этого ресурса в течение всего его существования. Кроме того, если D3D11_DEBUG_FEATURE_DISABLE_TILED_RESOURCE_MAPPING_TRACKING_AND_VALIDATION задано для любого вызова метода контекста устройства (например, вызовов рисования или копирования), включающего фрагментированные ресурсы, уровень отладки пропускает проверку всех сопоставлений плиток для вызова.

Требования

   
Целевая платформа Windows
Header d3d11sdklayers.h
Библиотека D3D11.lib

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

Интерфейс ID3D11Debug