Компания Microsoft объявила (https://blogs.msdn.microsoft.com/directx/2017/01/23/new-dire... об открытии компилятора шейдеров DirectX Shader Compiler, предназначенного для трансляции шейдеров на языке HLSL (https://ru.wikipedia.org/wiki/HLSL) (High-Level Shader Language, присутствует начиная с DirectX 9.0) в новый бинарный формат DXIL (DirectX Intermediate Language), поддерживаемый в DirectX 12. Код открыт (https://github.com/Microsoft/DirectXShaderCompiler) под лицензией MIT и реализован в форме модифицированной версии LLVM/Clang.
Для сообщества проект представляет интерес как отправная точка для создания трансляторов с HLSL/DXIL на языки GLSL и SPIR-V, чему способствует наличие готовых компонентов для трансляции в промежуточное представление LLVM. Код также может быть использован проектом Wine в бэкенде Gallium3D (state tracker) с реализацией DirectX 12.URL: https://blogs.msdn.microsoft.com/directx/2017/01/23/new-dire.../
Новость: https://www.opennet.ru/opennews/art.shtml?num=45907
С паршивой овцы хоть шерсти клок.
Современный
Почти половина текста там на твёрдость-мягкость, о которой многие носители языка не знают.В русском огромное значение имеет твёрдость и мягкость, отсутствующая в других языках, вкл. некоторые славянские.
Правила несложные, но то, что буква может произноситься двумя разными вариантами - это большая сложность для изучающих язык.
И, к огромному сожалению, русский язык здесь не помощник. В добавлении к этому, мягкость может меняться. Напр. "солнце" - "л" не читается, пишем мягкую "е", читаем твёрдую "э". "Солнечный" - читаются все буквы, но твёрдая "э" заменилась на мягкую "е".
И таких примеров-исключений вагон и тележка.
Многие реформы предлагали зафиксировать наконец эту разницу в языке, но тогда к чертям летит грамматика: напр. солнцЕ - солнЕчный. Сейчас эта буква проверяется через однокоренные слова, а если принять реформу, то придётся изучать твёрдость-мягкость на уроках русского языка и это станет немалой головной болью для очень многих.
Можно подумать, в других языках нет исключений и всякого legacy.
Их ошибки не оправдывают наших.Если половина ошибок носителей языка на Н и НН, значит от этого нужно избавиться.
Если половина ошибок изучающих русский язык на мягкость-твёрдость, значит необходимо отмечать мягкость и твёрдость в учебных материалах и адаптированных книгах. А, возможно, даже в надписях, которые могут читать иностранцы. Напр. на остановках автобуса, на ж/д вокзалах, в аэропортах.
это потому, что вайн как бы уже готов к проглатыванию этого кода, не раньше ни позже...но все равно МС+ за это.
Интересно, что Microsoft, столько лет производящая языки компиляторы, воспользовалась LLVM/Clang. Видимо, они изначально планировали код открыть.
А не они ли одни из продвигающих LLVM?
> А не они ли одни из продвигающих LLVM?Не перепутал с Эпплом...
> А не они ли одни из продвигающих LLVM?LLVM сумел стать "дефолтно-предполагаемым промежуточным представлением", а такое представление, к которому с одной стороны крепятся фронтенды "языков", а с другой бэкенды "машкодов", удобно многим
зы: что б там про gcc и его промежуточное представление ни говорили - но не видно чтот желания у людей писать к нему фронтенды и бэкенды
а можно промежуточное представление gcc компилить в llvm и/или обратно без потерь ? есть такие тулзы ?
> а можно промежуточное представление gcc компилить в llvm и/или обратно без потерьПрежде чем про "без потери" спрашивать, оплати консультацию лояра по этому вопросу, потом с копией чека -- за разрешением к тов.Столману.
Вот в теме про Майкрософт -- самое место таким вопросам, да. Поэтому сразу место ответу: works as designed. https://www.opennet.ru/openforum/vsluhforumID3/104551.html#54 . https://www.opennet.ru/openforum/vsluhforumID3/101723.html#131 .
> ? есть такие тулзы ?
In YSFLIGHT for OpenGL 2.0, I have implemented the shadow-map method. I believe it can also be done with Direct X9, but, I don't want to spend even a second to learn an API that runs on only one operating system, and even declared deprecated by the vendor. Shadow-map feature will be available only in YSFLIGHT on OpenGL 2.0/ES 2.0 for now.
http://ysflight.in.coocan.jp/ysflight/ysflight/testvere.htmlIf Vulkun API catches up the speed, I will add support for Vulkun. Then the shadow- map feature will be available in YSFLIGHT on Vulkun then. But, I don't know how popular Vulkun can become. It may just fade away. Right now, there is no replqcement of OpenGL 1.1. I need to go very high- level, which is pretty much useless for me, or very low-level, which needs work to make it useful for me. Not everyone needs photo-realistic movie- like graphics. For me, I need 3D graphics to prove my concept in my research. OpenGL 1.1 was just good for my purpose. To use OpenGL 2.0 with ease, I wrote a cover library. Maybe I'll need to do the same for Vulkan eventually.
But, what I desperately want to avoid is to spend considerable time to lean how to use Vulkun only to see Vulkun just fading away. I wasted too much time to learn Direct3D9. Microsoft ditched it in Direct X10. If I knew my knowledge in DirectX9 becomes useless in such a short time, I definitely wouldn't have wasted time learning Direct3D9. I learned from it. I will never spend time learning Direct X12.
http://ysflight.in.coocan.jp/ysflight/ysflight/e.html
>[оверквотинг удален]
> a cover library. Maybe I'll need to do the same for
> Vulkan eventually.
> But, what I desperately want to avoid is to spend considerable time
> to lean how to use Vulkun only to see Vulkun just
> fading away. I wasted too much time to learn Direct3D9. Microsoft
> ditched it in Direct X10. If I knew my knowledge in
> DirectX9 becomes useless in such a short time, I definitely wouldn't
> have wasted time learning Direct3D9. I learned from it. I will
> never spend time learning Direct X12.
> http://ysflight.in.coocan.jp/ysflight/ysflight/e.htmlэто как бы его личное наболевшее, не хочет как хочет ;)...
Кто это?
Объясните, плз. Эта компиляция в реальном времени будет происходить или что это вообще такое???
У каждой видеокарты свой API.У каждого драйвера свой API.
Всякие DirectX, OpenGL и пр. являются платформенно-независимыми и позволяют писать универсальный код для всех карт. То, что видеокарта не поддерживает, часто (не всегда) пересчитывается на центральном процессоре.
Сейчас в моде шейдеры - программы, исполняемые непосредственно на видеокарте. Обычно они представляют собой модификацию готовых текстур.
Пример шейдера: берёшь квадрат и файл-таблицу высот, объединяешь и получаешь трёхмерную карту местности. Накладываешь на неё текстуру травы. А для реалистичности сверху накладываешь "загрязнение" чтобы трава не была одноцветной.
Программы для шейдеров пишутся на универсальных платформенно-независимых языках программирования. Первые такие языки напоминали ассемблер, сейчас доросли до Си. HLSL - это Си-подобный язык шейдеров. Он компилируется в псевдокод DXIL (как раз этот компилер открыли), который DirectX и драйвер видеокарты преобразуют в исполняемый на видеокарте двоичный код.
ОК, спасибо за разъяснения.
А использовать это где предполагают?
Майкрософт никому ничего не предлагает, особенно СПО.Этот компилятор - это малополезная утилита, используемая где-то в глубинах DirectX. Его исходник интересен только тем, кто хочет скопировать DirectX (WINE, ReactOS).
Там же написано, в первую очередь для компиляции в бинарный формат DirectX 12. Скажем, пишите вы DX12-only игру, хотите, чтобы
1) шейдеры загружались ещё быстрее и
2) злобные конкуренты не увидели их исходный код в ресурсах игрыВот и компилируете их в такой типа java-байткод, который потом относительно легко и быстро преобразуется драйвером в исполняемый код, который будет работать на железе пользователя.
> для компиляции в бинарный формат DirectX 12Это понятно. Непонятно зачем надо было исходники тулзы открывать. Т.е. то что код C++ компилятора MSVC закрыт - это ничо так, то что видеодрайвер закрыт - тоже норм, dll-ки DirectX бинарные - тоже подойдет. А шейдерный компилятор (точнее половина этого компилятора) - пуп земли что ли? Что-то тут не так...
При наличии исходников их можно адаптировать и к другому компилятору. Впрочем, если там есть win-специфические вызовы, то толку от этого будет мало.А открыли, вероятно, чтобы было легче интегрировать в движки. Пишешь шейдеры на HLSL, а в бандлы они уже в двоичном виде попадают.
>берёшь квадрат и файл-таблицу высот, объединяешь и получаешь трёхмерную карту местности.А, так вот в чём секрет Малевича :)
> Объясните, плз. Эта компиляция в реальном времени будет происходить или что это
> вообще такое???Это опен-вошь. https://www.opennet.ru/openforum/vsluhforumID3/105598.html#69 + #70, и #64, и #52
Это *не* интересно. https://www.opennet.ru/openforum/vsluhforumID3/108255.html#3 + #16 + #5 + https://www.opennet.ru/openforum/vsluhforumID3/109110.html#131 + https://www.opennet.ru/openforum/vsluhforumID3/106322.html#19 + #15 + #76
Это отвратительно. https://www.opennet.ru/openforum/vsluhforumID3/109118.html#17 + https://www.opennet.ru/openforum/vsluhforumID3/108387.html#13 + https://www.opennet.ru/openforum/vsluhforumID3/108383.html#88 + https://www.opennet.ru/openforum/vsluhforumID3/108719.html#79 + https://www.opennet.ru/openforum/vsluhforumID3/108187.html#13
---Friends Don't Let Friends Microsoft Brainwash.
Во, прям струей открытые техногологии поперли.
Вот что бывший SUNовец деоает.
> Во, прям струей открытые техногологии поперли.Каждый раз, когда M$ что-то опять открывает, у меня мурашки по коже. Это потому, что каждый раз когда MS что-то открывает, гусь пробегает по чьей-то ещё не вырытой могилке ;)
HLSL и DXIL по-прежнему закрыты. Расходимся.
ждём ебилдов
Хотят подсадить на свою платформу, вот же нелюди. Пока есть шанс продвинуть Вулкан это надо делать, жаль только почти весь игропром под мелксофтом.
> жаль только почти весь игропром под мелксофтом.С разморозкой. M$ его большую часть уже слила Sony и продолжает активно наращивать темпы слития.
Там ещё и PC есть. А вот последняя консолька тёти Сони в народе получила почётное название "ремастерстейшен".
> А вот последняя консолька тёти Сони в народе получила почётное название "ремастерстейшен"Это плохо или хорошо?
Смотря кому. Если, скажем, ты любишь покупать старое в новой обёртке, тогда какие к тебе вопросы? А халтурщикам от игростроя - так и вовсе замечательно, не надо напрягаться и новое что-то выдумывать. Тяп-ляп - и в продакшен.
У меня есть и PS4 и PS4 Pro. Сейчас на некоторые игры для PS4 выходят патчи для PS4 Pro улучшающие контент - все они БЕСПЛАТНЫ! Все игры купленные для PS4 получают патчи для PS4 Pro БЕСПЛАТНО. Выходят ремастеры игр выходивших ранее на приставках предыдущего поколения, как-то на PS3 или более ранних, вот за них нужно платить. Вы же здесь такие слышали звон.. а в руках ничего из этого не держали.
> Там ещё и PC есть.А ещё есть Steam(OS), Nintendo и Android.
А M$ слила все свои эксклюзивы, кроме Хало, закрывает ожидаемые экслюзивы, а также подсаживает на ОффтопикСтор, отстраняясь от стима.
это же компилятор 1) из HLSL в LLVM и 2) из LLVM в DXIL ?
и "для опенсорса" оно может быть полезно только где-то в виде "взять HLSL из винигры написаной для DirectX 9/10/11 (работающей в вайне например), компильнуть в LLVM, а потом в OpenGL/Vulkun для вывода на экран" ?(с учётом что компиляция в DXIL "в опенсорсе" нафиг никому не сдалась ?)
Не к добру это…
Пусть сделают windows open source.
> Пусть сделают windows open source.Пость отсидят, раскаются, исправят содеянное -- и присоединяются к GNU. Мы не звери!
Если это упростит работу разработчикам WINE, то неплохо.
Зачем? MS хочет сделать кроссплатформенные игры?
Прими боже чего мне негоже?