Команды Microsoft Direct3D и HLSL объявили о планах интеграции поддержки SPIR-V в DirectX 12 с предстоящим выпуском Shader Model 7. Этот значительный переход знаменует собой новую эру в программировании графических процессоров, поскольку он направлен на унификацию промежуточного представления для этапов графических шейдеров и вычислительных ядер. SPIR-V, открытый стандартный промежуточный формат представления для графических и вычислительных шейдеров, заменит проприетарный язык DirectX Intermediate Language (DXIL) в качестве формата обмена шейдерами для DirectX 12. Ожидается, что внедрение SPIR-V упростит процессы разработки в различных средах выполнения графических процессоров.
Принимая этот открытый стандарт, Microsoft стремится укрепить позицию HLSL как ведущего языка для компиляции графических и вычислительных шейдеров на различных устройствах и API. Этот переход является частью многолетнего процесса разработки, в течение которого Microsoft будет тесно сотрудничать с The Khronos Group и LLVM Project. Компания присоединилась к рабочим группам Khronos SPIR и Vulkan, чтобы обеспечить плавное сотрудничество и быстрое внедрение функций. Хотя переход займет несколько лет, Microsoft сообщает об этом заранее, чтобы разработчики и партнеры могли спланировать свою работу. Компания предоставит инструменты перевода между SPIR-V и DXIL, чтобы облегчить постепенный переход как для разработчиков приложений, так и для разработчиков драйверов.
Для тех, кто не знаком с разработкой графики, API графики поставляются с виртуальными архитектурами наборов инструкций (ISA), которые абстрагируют стандартные аппаратные функции на более высоком уровне. Поскольку графические процессоры не используют ту же ISA, что и ЦП (x86, Arm, RISC-V), эта виртуальная ISA необходима для определения некоторых общих элементов в архитектуре графических процессоров и для работы различных API, таких как DirectX и Vulkan. Вместо того, чтобы сосредоточиваться на поддержке нескольких форматов, таких как DXIL, Microsoft принимает открытый стандарт SPIR-V, который станет де-факто для разработчиков API в будущем, что позволит сосредоточиться на большем количестве функций вместо постоянного копирования функций друг друга. В то время как DXIL используется в основном для игровых сред, SPIR-V также внедряется в высокопроизводительные вычисления с помощью OpenCL и SYCL. Игровое присутствие также есть с помощью API Vulkan, и мы ожидаем, что SPIR-V присоединится к играм DirectX 12.