Обучение
Схема обучения
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization
Этот браузер больше не поддерживается.
Выполните обновление до Microsoft Edge, чтобы воспользоваться новейшими функциями, обновлениями для системы безопасности и технической поддержкой.
Узнайте, как проверка поддержку устройств для дополнительных функций, включая функции, добавленные в последних версиях Windows.
Уровни функций Direct3D указывают на четко определенные наборы функциональных возможностей GPU, которые примерно соответствуют различным поколениям графического оборудования. Это значительно упрощает задачу проверки возможностей оборудования, а также обеспечивает согласованное взаимодействие с широким спектром различных устройств.
Чтобы учесть некоторые различия между различными реализациями оборудования, включая устаревшее оборудование, мобильное оборудование и современное оборудование, некоторые функции считаются необязательными. Поддержку этих функций можно определить, вызвав ID3D11Device::CheckFeatureSupport и указав соответствующую структуру D3D11_FEATURE_DATA_*. В этом разделе описываются различные необязательные функции Direct3D 11, как некоторые из них работают вместе и как избежать проверки на наличие каждой дополнительной функции.
Вызовите ID3D11Device::CheckFeatureSupport, предоставляя структуру, представляющую необязательную функцию, которую вы хотите использовать. Если метод возвращает S_OK, это означает, что вы используете версию среды выполнения Direct3D, которая поддерживает необязательную функцию. Если он возвращает E_INVALIDARG, это означает, что вы используете версию среды выполнения Direct3D 11 до добавления необязательной функции. Это означает, что необязательная функция недоступна вместе с другими дополнительными функциями, представленными в той же версии Direct3D 11 или более поздней версии.
Помимо правильной среды выполнения Direct3D 11 (обычно связанной с версией Windows), графический драйвер также должен быть достаточно свежим для поддержки необязательной функции. Спецификации WDDM требуют поддержки дополнительных функций, если оборудование может их поддерживать. Поэтому, когда графический драйвер поддерживает одну из дополнительных функций, добавленных в определенной версии Windows, обычно это означает, что графический драйвер поддерживает другие функции, добавленные в этой версии Windows. Например, если драйвер устройства поддерживает тени на уровне функций 9, то вы знаете, что драйвер устройства имеет по крайней мере WDDM 1.2.
Примечание Если устройство Microsoft Direct3D поддерживает уровень компонентов 11.1, все дополнительные функции, указанные D3D11_FEATURE_DATA_D3D11_OPTIONS , поддерживаются автоматически, за исключением SAD4ShaderInstructions и ExtendedDoublesShaderInstructions.
Среда выполнения всегда одинаково задает следующие группы элементов. То есть все значения в группировке имеют значение TRUE или FALSE вместе:
Параметры уровня компонентов 11.2 (D3D11_FEATURE_D3D11_OPTIONS1): Необязательные признаки, указанные в этом поле, независимы и должны проверяться по отдельности.
Windows RT планшетные устройства могут поддерживать различные уровни функций и дополнительные функции, оптимизированы для снижения энергопотребления и используют встроенную графику вместо дискретных GPU. Приложения Магазина Windows для устройств ARM должны поддерживать уровень компонентов 9.1. Приложения DirectX для Windows RT должны пользоваться дополнительными функциями, которые могут экономить энергию и циклы, такие как простое развертывание, когда они доступны.
Windows Phone 8 мобильных устройств поддерживают уровень функций 9.3 с определенными дополнительными функциями. Сведения о Windows Phone 8 см. в разделе Уровень компонентов Direct3D 9_3.
В оставшейся части этой статьи описываются дополнительные функции, доступные в Direct3D 11.2. Признаки описываются в хронологическом порядке по моменту их добавления, чтобы вы могли понять, какие функции имеются в разных версиях Direct3D 11.
Следующая функция всегда доступна для устройств уровня компонентов 10:
D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS. Если это значение TRUE, устройство поддерживает вычислительные шейдеры. Сюда входит поддержка необработанных и структурированных буферов.
Если устройство уровня компонентов 10_0 или 10_1 поддерживает эту функцию, устройство не гарантирует поддержку вычислительного шейдера 4.1. Приложения должны быть готовы к возврату к вычислительному шейдеру 4.0, если ID3D11Device::CreateComputeShader создает исключение в программе шейдера вычислений 4.1.
Следующие функции добавляются для уровня компонентов 9, начиная с Windows 8:
D3D11_FEATURE_DATA_D3D9_OPTIONS: Указывает на поддержку адресации текстур с переносом с текстурами, не поддерживая 2 текстуры. Если это поддерживается, D3D11_TEXTURE_ADDRESS_MODE_WRAP можно использовать с такими текстурами.
D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT: Указывает поддержку образцов сравнения в модели шейдеров 4.0 на уровне функций 9_x шейдеров. Это используется для тестирования глубины в пиксельных шейдерах, обеспечивая поддержку распространенных методов, таких как сопоставление теней и наборы элементов.
Для устройств уровня компонентов 9 начиная с Windows 8.1 добавлена следующая функция:
D3D11_FEATURE_DATA_D3D9_SIMPLE_INSTANCING_SUPPORT: Указывает поддержку простых функций, которые могут быть доступны на оборудовании DirectX 9-го уровня. Простая настройка означает, что все элементы InstanceDataStepRateD3D11_INPUT_ELEMENT_DESC структур, используемых для определения макета входных данных, должны быть равны 1. Устройства, поддерживающие уровень функций 9.3 или более поздней версии, уже включают полную поддержку instancing.
D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT: Поля в этой структуре указывают длину чисел с плавающей запятой, если включена минимальная точность, или 0, если поддерживается только полная 32-разрядная точность с плавающей запятой.
Для устройств уровня функций 9 минимальная точность вершинного шейдера может отличаться от пиксельного шейдера. Точность вершинного шейдера указывается в поле AllOtherShaderStagesMinPrecision .
D3D11_FEATURE_DATA_DOUBLES: Устройства уровня компонентов 11 могут поддерживать вычисления двойной точности в программах модели шейдера 5.0. Поддержка вычислений двойной точности в шейдере означает, что число с плавающей точкой в программе шейдера вычислений может быть преобразовано в doubles, обеспечивая преимущества вычислений с более высокой точностью в рамках каждого прохода шейдера. Числа двойной точности должны быть преобразованы обратно в числа с плавающей точкой перед записью в выходной буфер. Обратите внимание, что разделение двойной точности не обязательно поддерживается.
В Direct3D 11.2 добавлены четыре новые дополнительные функции, которые могут поддерживаться устройствами Direct3D 11. Эти функции входят в структуру D3D11_FEATURE_DATA_D3D11_OPTIONS1 :
TiledResourcesTier: Указывает поддержку мозаичного ресурса и поддерживаемый уровень.
MinMaxFiltering: Указывает поддержку параметров фильтрации D3D11_FILTER_MINIMUM_* и D3D11_FILTER_MAXIMUM_*, которые сравнивают результат фильтрации с минимальным (или максимальным) значением. См . D3D11_FILTER.
ClearViewAlsoSupportsDepthOnlyFormats: Указывает на поддержку очистки представлений ресурсов буфера глубины.
MapOnDefaultBuffers: Указывает на поддержку целевых буферов отображения сопоставления, созданных с помощью флага D3D11_USAGE_DEFAULT .
D3D11_FEATURE_DATA_ARCHITECTURE_INFO: Указывает, выполняет ли графическое устройство пакеты команд отрисовки и выполняет ли отрисовку на основе плиток по умолчанию. Это можно использовать в качестве указания для оптимизации графического обработчика.
D3D11_FEATURE_DATA_D3D11_OPTIONS::D iscardAPIsSeenByDriver: Вы можете отслеживать этот элемент во время разработки, чтобы исключить устаревшие драйверы на оборудовании, где Отмена Просмотра и DiscardResource могла бы быть полезной в противном случае.
D3D11_FEATURE_DATA_MARKER_SUPPORT: Это поддерживается, если оборудование и драйвер поддерживают маркировку данных для профилирования GPU.
Обучение
Схема обучения
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization
Документация
В этом разделе описываются исключения при использовании Direct3D 11 на оборудовании нижнего уровня.
Direct3D 11 на оборудовании Downlevel - Win32 apps
В этом разделе описывается, как Direct3D 11 предназначен для поддержки как нового, так и существующего оборудования, от DirectX 9 до DirectX 11.
Ограничения создания устройств WARP и эталонных устройств - Win32 apps
Некоторые ограничения существуют для создания устройств WARP и Reference в Direct3D 10.1 и Direct3D 11.0. В этом разделе рассматриваются эти ограничения.