Web Analytics Made Easy - StatCounter
Главная Блог Представляем язык графического интерфейса для WebGPU

Представляем язык графического интерфейса для WebGPU

Представляем язык графического интерфейса для WebGPU

Введение

Вчера графический процессор W3C для группы веб-сообщества представил новый язык графического затенения для API WebGPU, который называется Web High Level Shading Language ( WHLSL, произносится как «свист» ). Язык расширяет HLSL для обеспечения большей безопасности.

В прошлом году инженеры из Apple, Mozilla, Microsoft, Google и других компаний создали графическую карту W3C для группы веб-сообщества. Эта группа работает над внедрением низкоуровневого API-интерфейса для трехмерной графики в сеть WebGPU .

WebGPU, как и другие современные API для трехмерной графики, использует шейдеры. Шейдеры - это программы, использующие преимущества специализированной архитектуры графических процессоров. Например, приложения, разработанные для Metal, используют язык Metal Shading, приложения, разработанные для Direct3D 12, используют HLSL, а приложения, разработанные для Vulkan, используют SPIR-V или GLSL. Вот почему команда WebKit представила WHLSL для API WebGPU. Вот некоторые требования, которые WHLSL стремится выполнить.

Нужен безопасный шейдерный язык

Независимо от того, что делает приложение, шейдеру следует разрешать только чтение или запись данных из домена веб-страницы. Без этой гарантии безопасности вредоносные веб-сайты могут запускать шейдер, который считывает пиксели из других частей экрана, даже из нативных приложений.

Хорошо определенный язык

Для обеспечения взаимодействия между браузерами необходимо точно указать язык затенения для Интернета. Кроме того, часто команды рендеринга пишут шейдеры на своем собственном собственном внутреннем языке, а затем кросс-компилируются на тот язык, который необходим. Вот почему язык шейдеров должен иметь достаточно небольшой набор однозначных грамматических правил и правил проверки типов, на которые авторы компилятора могут ссылаться при создании этого языка.

Перевод на другие языки

Поскольку WebGPU предназначен для работы над Metal, Direct3D 12 и Vulkan, шейдер должен быть переведен на Metal Shading Language, HLSL (или DXIL) и SPIR-V. Должно быть условие для представления шейдеров в форме, приемлемой для API, отличных от WebGPU.

Язык перформанта

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

Легко читать и писать

Язык шейдера должен быть легким для чтения и записи для разработчика. Это должно быть знакомо программистам как на GPU, так и на CPU. Программисты на GPU являются важными клиентами, поскольку у них есть опыт написания шейдеров. Поскольку графические процессоры сейчас широко используются в различных областях, помимо рендеринга, включая машинное обучение , компьютерное зрение и нейронные сети, программисты ЦП также являются важными клиентами.

источник

иллюстрация