Ключевым компонентом API Direct3D является так называемая Shader Model: от её воплощения и версии зависят возможности, доступные разработчикам игр. Последней на сегодня версией является Shader Model 5.0, остающаяся практически неизменной со времён начала внедрения DirectX 11 в 2009 году. Но для DirectX 12 и будущих приложений нужен новый подход. Microsoft понемногу раскрывает его тайны.
Новая шейдерная модель получила версию 6.0, что вполне закономерно. В сравнении с предыдущей версией она обеспечивает оптимальный путь шейдерного кода к финальной стадии — «железу», то есть графическому процессору. Предыдущая версия полагается в плане компиляции и оптимизации кода HLSL на офлайновый компилятор FXC и поддерживает версии HLSL с v1.4 до v5.1 включительно.
Shader Model 6.0 возлагает задачу первичной компиляции HLSL на транслятор Clang, а оптимизация кода осуществляется в несколько проходов на LLVM (Low Level Virtual Machine). Поскольку поддерживается HLSL-код версий 5.0 и выше, от внедрения Shader Model 6.0 могут выиграть существующие приложения DirectX 11 и DirectX 12. Игры и программы, использующие более ранние версии API, продолжат использовать путь Shader Model 5.0. Как будет внедряться новая шейдерная модель, пока не известно.
Источник: