Pull to refresh

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.

Отлично расскажите какие такие специфичные механизмы на уровне ядра ОС(которая к тому же unix подобная), нужны для драйвера видеокарты процентов 90 которого находится в юзер-спэйс? А то мне прямо интересно стало.

Но ведь Metal появился раньше, чем Vulcan.

Это понятно, вопрос конвергенции. Мне лично не ясно, чем metal принципиально лучше vulcan. Просто apple может тащить очередной стандарт без "фатальных ошибок".

и запустить его на симуляторе iOS 15.4+

резануло, всё же наверное на эмуляторе?

меня тоже подергивает от слова "симулятор", но в Xcode это называется именно так, и все окружающие меня iOS-разработчики тоже говорят так, поэтому я просто смирился :)

Есть такое слово - моветон, и его можно применять к статьям, где люди пишущие на массовую аудиторию не утруждают себя писать "красиво", доступно и понятно. Если какая-то узкоспециализированная система пользуется какой-то своей терминологией (кто бы сомневался что у яблока она будет иной), что отличается от общепринятых не то что терминов в индустрии, а вообще лингвистически и по смыслу, то наверное автору стоит на это указать в статье, ведь это не бложик пользователей Xcode.

Вообще-то для разработки iOS приложений применяется именно симулятор iOS. Он не эмулирует железо iPhone, не содержит в себе всего кода операционной системы, а симулирует рантайм-окружение, напрямую пробрасывая большую часть вызовов API в macOS (благо это близкородственные системы), реализуя отсутствующие библиотеки.
Именно на основе технологий этого симулятора работает нативный запуск iOS приложений в macOS на Apple Silicon маках.

Ну вот, адекватный ответ, спасибо за разъяснения.

Мне одному новый логотип команды напомнил логотип СБИС?

токсичность аудитории зашкаливает )

Сейчас OpenGL просто своим существованием блочит и/или замедляет работу
целому пласту iOS-разработчиков. Во-первых, счастливчики, которым
довелось поиметь M1, вынуждены страдать со сборкой и Rosetta

Так OpenGL есть же нативный под macOS на M1, почему они страдают с Rosetta?

GLES на симуляторах ARM64 очень много странных падений под капотом выдает, поэтому приходится на x86_64 сидеть

а почему не выбрали vulkan? iOS его тоже не поддерживает?

Vulkan нативно не поддерживается. Есть библиотека MoltenVK, которая по сути транслирует вызовы Vulkan в вызовы Metal. Решили, что раз переходим на новый API "с нуля", будет логичнее как раз с Metal начинать.

Лучше бы Эппл забросила Метьал к чертм и перешла на Вулкан..хоть нормальная поддержка продуктов бы была особенно игровых..

Sign up to leave a comment.