Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Уровни функций в Direct3D определяют строгие наборы функций, необходимые для определенных версий API Direct3D и среды выполнения, а также дополнительные необязательные уровни функций, доступные в той же версии API.

Обзор [ править ]

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

Некоторые уровни функций включают ранее необязательные аппаратные функции, которые переведены в обязательный статус с новыми версиями API, чтобы лучше отображать новое оборудование. Более продвинутые функции, такие как новые модели шейдеров и этапы рендеринга, доступны только на оборудовании верхнего уровня [1] [2], однако оборудование не требуется для поддержки всех этих уровней функций [3], и среда выполнения Direct3D сделает необходимые переводы.

Уровни функций позволяют разработчикам унифицировать конвейер рендеринга и использовать одну версию API как на новом, так и на старом оборудовании, используя преимущества улучшений производительности и удобства использования в новой среде выполнения. [4]

Существуют отдельные возможности, указывающие на поддержку определенных операций с текстурами и форматов ресурсов; они обычно указываются для каждого формата текстуры с использованием комбинации флагов возможностей, но некоторые из этих дополнительных функций становятся обязательными на верхних уровнях функций. [5]

Direct3D 10 [ править ]

Direct3D 10 представил фиксированный набор обязательных требований к графическому оборудованию. До Direct3D 10 в новых версиях API была представлена ​​поддержка новых аппаратных возможностей, однако эти возможности были необязательными, и их нужно было запрашивать с помощью «битов возможностей» или «заглавных букв».

API Direct3D 10.1 был первым, кто использовал концепцию «уровней функций» [1] [3] [6] для поддержки оборудования Direct3D 10.0 и 10.1. [3] [7] [8]

Direct3D 11 [ править ]

В Direct3D 11 концепция уровней функций была дополнительно расширена для работы на большинстве аппаратных средств нижнего уровня, включая карты Direct3D 9 с драйверами WDDM .

D3D_FEATURE_LEVELСтруктура включает семь уровней функций ; уровни 9_1, 9_2 и 9_3 (вместе известные как Direct3D 10, уровень 9 ) повторно инкапсулируют различные функции популярных карт Direct3D 9, соответствующих Shader Model 2.0, а уровни 10_0, 10_1, 11_0 и 11_1 относятся к соответствующим версиям Direct3D API. [1] «10 Level 9» Уровни функция содержит подмножество Direct3D 10/11 API [9] и требуют шейдеры должны быть записаны в HLSL в соответствии с Shader Model 4.0 4_0_LEVEL_9_x профили компилятора, а не в самом «шейдера сборки» язык [ 10] шейдерной модели 1.1 / 2.0; SM 3.0 ( vs_3_0/ ps_3_0) намеренно опущен в Direct3D 10 уровня 9.[3]

Начиная с Direct3D 11.1 для Windows 8, некоторые обязательные функции, представленные для уровня 11_1, доступны как дополнительные на уровнях 10_0, 10_1 и 11_0 - эти функции можно проверить индивидуально с помощью CheckFeatureSupportфункции [11], однако уровень функций 11_1 и дополнительные функции недоступны в Direct3D 11.1. для обновления платформы Windows 7 [12], поскольку оно не поддерживает WDDM 1.2. [13]

Direct3D 11.2 для Windows 8.1 добавляет дополнительные отображаемые буферы и дополнительные мозаичные ресурсы для уровней 11_0 и 11_1; для этих функций требуются драйверы WDDM 1.3. [14]

Direct3D 11.3 для Windows 10 требует драйверов WDDM 2.0; он добавляет дополнительные функции и уровни 12_0 и 12_1 из Direct3D 12.

Direct3D 12 [ править ]

Direct3D 12 требует графического оборудования, соответствующего уровням функций 11_0 и 11_1, которые поддерживают преобразование адресов виртуальной памяти. [25] [26]

Есть два новых уровня функций, 12_0 и 12_1, которые включают некоторые функции, которые являются необязательными на уровнях 11_0 и 11_1. [27] В связи с реструктуризацией API некоторые ранее необязательные функции были преобразованы в базовые на уровнях 11_0 и 11_1.

Direct3D 12 из юбилейного обновления Windows 10 (версия 1607) включает Shader Model 6.0 [28], для которого требуются драйверы WDDM 2.1, и новый компилятор DXIL на основе LLVM . [29] Windows 10 Creators Update версий 1703 и 1709 включает Shader Model 6.1 и WDDM 2.2 / 2.3.

Direct3D 12 представляет обновленную модель привязки ресурсов, позволяющую явно управлять памятью. Объекты "представления" абстрактных ресурсов [34], которые разрешили произвольный доступ для чтения / записи, теперь представлены дескрипторами ресурсов, которые выделяются с помощью кучи памяти и таблиц. [35]Эта модель поддерживается большинством существующих архитектур графических процессоров для настольных ПК и требует драйверов WDDM 2.0. Поддерживаемое оборудование разделено на три уровня привязки ресурсов, которые определяют максимальное количество дескрипторов, которые могут использоваться для CBV (представление постоянного буфера), SRV (представление ресурсов шейдера) и UAV (представление неупорядоченного доступа); CBV и SRV на каждую стадию трубопровода; БПЛА для всех этапов трубопроводов; пробоотборники на этап; и количество таблиц дескрипторов SRV. Оборудование уровня 3, такое как AMD GCN и Intel Skylake, не имеет ограничений, позволяя использовать полностью свободные ресурсы, ограниченные только размером кучи дескрипторов, в то время как уровень 1 (Nvidia Fermi, Intel Haswell / Broadwell) и уровень 2 (Nvidia Kepler / Maxwell) оборудование накладывает некоторые ограничения на количество дескрипторов («представлений»), которые могут использоваться одновременно. Кроме того,буферы и текстуры могут смешиваться вместе в одной куче ресурсов только на оборудовании, поддерживающем уровень 2 кучи ресурсов, в то время как для оборудования уровня 1 требуются отдельные кучи памяти для буферов, текстур, а также поверхностей цели рендеринга и трафаретов глубины. Уровень 1 привязки ресурсов и уровень 1 кучи ресурсов требуются для всего поддерживающего оборудования.

Некоторые из дополнительных функций, таких как мозаичные ресурсы и консервативная растеризация, имеют «уровни», которые определяют набор поддерживаемых возможностей.

Большинство функций являются необязательными для всех уровней функций, но некоторые из этих функций становятся обязательными на более высоких уровнях функций.

Матрица поддержки [ править ]

См. Также [ править ]

  • Direct3D
  • Шейдерная модель
  • Блок обработки графики

Ссылки [ править ]

  1. ^ a b c «Direct3D 11 на оборудовании нижнего уровня» . MSDN . Проверено 18 ноября 2012 . CS1 maint: обескураженный параметр ( ссылка )
  2. ^ «Комплект драйверов Windows - Поддержка Direct3D 11» . MSDN . Проверено 13 июня 2009 . CS1 maint: обескураженный параметр ( ссылка )
  3. ^ a b c d Чак Уолборн (20 июня 2012 г.). «Уровни функций Direct3D» . Игры для Windows и блог о DirectX SDK .
  4. ^ "Презентации Gamefest 2008" . Microsoft. Архивировано из оригинала на 2013-11-13.
  5. ^ «Уровни функций Direct3D» . MSDN . Проверено 2 июля 2012 . CS1 maint: обескураженный параметр ( ссылка )
  6. ^ «GameFest 2008: Введение в конвейер графики Direct3D 11» . Microsoft. Слайд 56. Архивировано из оригинала на 2013-01-28.
  7. ^ "Перечисление D3D10_FEATURE_LEVEL1" . MSDN . Проверено 22 ноября 2009 . CS1 maint: обескураженный параметр ( ссылка )
  8. ^ «Уровни функций Direct3D» . MSDN . Проверено 30 сентября 2014 года . CS1 maint: обескураженный параметр ( ссылка )
  9. ^ "Ссылка 10Level9" . MSDN . Проверено 18 ноября 2012 . CS1 maint: обескураженный параметр ( ссылка )
  10. ^ MSDN - DirectX и игры - Справочник по шейдерам Asm
  11. ^ a b https://msdn.microsoft.com/en-us/library/windows/desktop/hh404562#check_support_of_new_direct3d_11.1_features_and_formats
  12. ^ «Блоги MSDN» . Проверено 30 сентября 2014 года . CS1 maint: обескураженный параметр ( ссылка )
  13. ^ https://msdn.microsoft.com/en-us/library/windows/desktop/jj863687.aspx
  14. Беннет Сорбо (26 июня 2013 г.). «Что нового в Direct3D 11.2» . Channel9 - СТРОИТЬ 2013 .
  15. ^ "Samsung анонсирует Exynos 5 Dual на базе A15 / Mali-T604" . AnandTech . Проверено 15 июня 2013 . CS1 maint: обескураженный параметр ( ссылка )
  16. ^ "Ядра Vivante Vega для 3D" . Виванте. Архивировано из оригинала на 2015-02-15 . Проверено 10 декабря 2014 . CS1 maint: обескураженный параметр ( ссылка )
  17. ^ "Перечисление D3D11_CONSERVATIVE_RASTERIZATION_TIER" . Библиотека MSDN . 22 февраля 2015 . Проверено 22 февраля 2015 года . CS1 maint: обескураженный параметр ( ссылка )
  18. ^ «Возможности Direct3D 11.3» . Библиотека MSDN . 28 марта 2015 . Проверено 28 марта 2015 года . CS1 maint: обескураженный параметр ( ссылка )
  19. ^ Райан Смит. «AnandTech - Обзор NVIDIA GeForce GTX 980: Maxwell Mark 2» . Проверено 30 сентября 2014 года . В первую очередь среди новых функций Maxwell 2 - полная совместимость с Direct3D 11.2 / 11.3. CS1 maint: обескураженный параметр ( ссылка )
  20. ^ Райан Смит. «AnandTech - Microsoft подробно описывает Direct3D 11.3 и 12 новых функций рендеринга» . Проверено 30 сентября 2014 года . CS1 maint: обескураженный параметр ( ссылка )
  21. ^ «Максвелл и DX12 доставлены» . NVIDIA . Проверено 30 сентября 2014 года . CS1 maint: обескураженный параметр ( ссылка )
  22. ^ «Блоги MSDN» . Проверено 30 сентября 2014 года . CS1 maint: обескураженный параметр ( ссылка )
  23. ^ http://devblogs.nvidia.com/parallelforall/maxwell-most-advanced-cuda-gpu-ever-made/
  24. ^ "Intel Skylake: Core i7-6700K и i5-6600K в тесте" . ОБОРУДОВАНИЕ ДЛЯ ИГР ДЛЯ ПК . 5 августа 2015 . Дата обращения 5 августа 2015 . CS1 maint: обескураженный параметр ( ссылка )
  25. ^ GVCS005 - Microsoft Direct3D 12: новые сведения об API и оптимизации Intel, заархивированные 4 апреля 2015 г., на Wayback Machine
  26. ^ Сборка 2015: расширенная графика и производительность DirectX12
  27. ^ https://msdn.microsoft.com/en-us/library/dn899127.aspx
  28. ^ https://msdn.microsoft.com/en-us/library/mt733232(v=vs.85).aspx
  29. ^ https://github.com/Microsoft/DirectXShaderCompiler/wiki/FAQ
  30. ^ https://docs.microsoft.com/en-us/windows/win32/api/d3d12/ne-d3d12-d3d12_feature
  31. ^ https://devblogs.microsoft.com/directx/new-in-directx-feature-level-12_2/
  32. ^ https://microsoft.github.io/DirectX-Specs/d3d/D3D12_FeatureLevel12_2.html
  33. ^ a b https://docs.microsoft.com/en-us/windows/win32/direct3d12/core-feature-levels
  34. ^ https://msdn.microsoft.com/en-us/library/windows/desktop/ff476900(v=vs.85).aspx
  35. ^ Вольфганг Энгель . «Введение в привязку ресурсов в Microsoft DirectX 12» .
  36. ^ https://docs.microsoft.com/en-us/windows/desktop/direct3d12/memory-aliasing-and-data-inheritance#data-inheritance
  37. ^ stevewhims. «Дескрипторные кучи - приложения Windows» . docs.microsoft.com . Проверено 8 сентября 2019 .
  38. ^ https://docs.microsoft.com/en-us/windows/desktop/api/D3D12/ne-d3d12-d3d12_tiled_resources_tier
  39. ^ https://docs.microsoft.com/en-us/windows/desktop/direct3d12/volume-tiled-resources
  40. ^ https://docs.microsoft.com/en-us/windows/desktop/direct3d12/typed-unordered-access-view-loads
  41. ^ https://docs.microsoft.com/en-us/windows/desktop/direct3d12/conservative-rasterization
  42. ^ https://docs.microsoft.com/en-us/windows/desktop/direct3d12/rasterizer-order-views
  43. ^ https://docs.microsoft.com/en-us/windows/desktop/direct3d12/shader-specified-stencil-reference-value
  44. ^ https://docs.microsoft.com/en-us/windows/desktop/direct3d12/descriptor-heaps
  45. ^ https://docs.microsoft.com/en-us/windows/desktop/direct3d11/direct3d-11-1-features#use-logical-operations-in-a-render-target
  46. ^ a b https://docs.microsoft.com/en-us/windows/desktop/direct3d12/capability-querying
  47. ^ https://docs.microsoft.com/en-us/windows/desktop/api/d3d11/ns-d3d11-d3d11_feature_data_doubles
  48. ^ https://docs.microsoft.com/en-us/windows-hardware/drivers/display/directx-feature-improvements-in-windows-8#dblshader
  49. ^ https://docs.microsoft.com/en-us/windows/desktop/direct3d11/direct3d-11-1-features#use-hlsl-minimum-precision
  50. ^ windows-sdk-content. "D3D12_RESOURCE_HEAP_TIER (d3d12.h)" . docs.microsoft.com . Проверено 8 сентября 2019 .
  51. ^ a b https://docs.microsoft.com/en-us/windows/desktop/api/d3d12/ns-d3d12-d3d12_feature_data_gpu_virtual_address_support
  52. ^ https://docs.microsoft.com/en-us/windows/desktop/api/d3d12/ne-d3d12-d3d12_view_instancing_tier
  53. ^ https://docs.microsoft.com/en-us/windows/desktop/api/d3d12/ns-d3d12-d3d12_view_instancing_desc
  54. ^ windows-sdk-content. "D3D12_RAYTRACING_TIER (d3d12.h)" . docs.microsoft.com . Проверено 8 сентября 2019 .
  55. ^ stevewhims. «Затенение с переменной скоростью (VRS) - Windows-приложения» . docs.microsoft.com . Проверено 8 сентября 2019 .
  56. ^ https://microsoft.github.io/DirectX-Specs/d3d/MeshShader.html
  57. ^ https://microsoft.github.io/DirectX-Specs/d3d/SamplerFeedback.html

Внешние ссылки [ править ]

  • https://msdn.microsoft.com/en-us/library/windows/desktop/ff476876(v=vs.85).aspx