Comments 19
Я просто оставлю это здесь
Вас не удивляет что у гипермаркетов нет стойла для лошадей или вы не можете просто подключить наушники начала века к айфону?
В быстро развивающейся отрасли, такой как 3D графика, API постоянно перестраиваются под текущие требования и текущее железо (и ближайшего будущего).
OpenGL мог быть хорош в 90-х годах, но сейчас это как лоскутное одеяло, совершенно не отвечающее современным потребностям (в частности многопоточному рендеру).
iwtp
В Metal же все обстоит немножко сложнее.
…
А мы хотим, как вы помните, как можно больше переиспользовать объекты API, поэтому переключать LoadAction проходов на каждое движение камеры как-то не круто. Как быть? Создадим специальный технический очищающий проход отрисовки (вообще, два — для буфера цвета и буфера глубины/трафарета):
А вы не задумывались почему «сложнее»?
В iOS (и теперь в macOS) девайсах стоит TBDR GPU, который рендерит во внутренней памяти тайлами. Соотвественно цель оптимизации это максимизировать использование тайловой памяти и минимизировать количество трансферов с основной памятью.
Вы, пытаясь сэкономить копейку, потеряли рубль (я достаточно стар чтобы говорить поговорками). Вместо быстрой очистки перед рендером сделали лишние запись-чтение всего буфера цвета.
Картинка как раз в тему, если бы их волновали именно технологии современного рендера то там бы был Vulkan, а OpenGL можно оставить для кучи всякого легаси. А так - очередной вендор лок, приправленные лапшей которую надо снять с ушей.
Дело в том, что хороший API органично встроен в ОС и основан на общих механизмах. macOS весьма специфична и Vulkan там смотрится несколько чужеродным. Поэтому на Windows имеем D3D, а на macOS имеем Metal.
Крайне смешно читать про вендорлок и другие страхи.
Я же вижу возможность использовать железо с помощью инструмента, который предназначен именно для него.
Не можете написать/поддерживать мультиплатформенный рендер (чем я занимаюсь уже много лет) — используйте moltenVK или к примеру bgfx.
Но ведь Metal появился раньше, чем Vulcan.
и запустить его на симуляторе iOS 15.4+
резануло, всё же наверное на эмуляторе?
меня тоже подергивает от слова "симулятор", но в Xcode это называется именно так, и все окружающие меня iOS-разработчики тоже говорят так, поэтому я просто смирился :)
Есть такое слово - моветон, и его можно применять к статьям, где люди пишущие на массовую аудиторию не утруждают себя писать "красиво", доступно и понятно. Если какая-то узкоспециализированная система пользуется какой-то своей терминологией (кто бы сомневался что у яблока она будет иной), что отличается от общепринятых не то что терминов в индустрии, а вообще лингвистически и по смыслу, то наверное автору стоит на это указать в статье, ведь это не бложик пользователей Xcode.
Вообще-то для разработки iOS приложений применяется именно симулятор iOS. Он не эмулирует железо iPhone, не содержит в себе всего кода операционной системы, а симулирует рантайм-окружение, напрямую пробрасывая большую часть вызовов API в macOS (благо это близкородственные системы), реализуя отсутствующие библиотеки.
Именно на основе технологий этого симулятора работает нативный запуск iOS приложений в macOS на Apple Silicon маках.
Мне одному новый логотип команды напомнил логотип СБИС?
Сейчас OpenGL просто своим существованием блочит и/или замедляет работу
целому пласту iOS-разработчиков. Во-первых, счастливчики, которым
довелось поиметь M1, вынуждены страдать со сборкой и Rosetta
Так OpenGL есть же нативный под macOS на M1, почему они страдают с Rosetta?
а почему не выбрали vulkan? iOS его тоже не поддерживает?
Лучше бы Эппл забросила Метьал к чертм и перешла на Вулкан..хоть нормальная поддержка продуктов бы была особенно игровых..
Переход на Metal