История изменений
Исправление KivApple, (текущая версия) :
OpenGL был очень толстой прослойкой в драйвере (над конкретной реализацией в кремнии). Vulkan тонкая прослойка в драйвере, а дальше ты уже сам решаешь какой толщины и какую прослойку использовать в своём приложении (можно очень толстую в виде готового движка, можно умеренной толщины в виде какого-нибудь WebGPU, можно юзать голый Vulkan).
Проблемы у OpenGL две:
- Прослойка толстая, а производителей GPU много (не забывай, что помимо десктопов есть ещё мобилки), а ещё у каждого производителя много разных моделей GPU (и у них бывают очень разные архитектуры). А чем толще прослойка, тем больше человекочасов на неё нужно. Соответственно, каждый драйвер реализовывал OpenGL со своими багами и фичами и создавал большую головную боль авторам приложений когда они выходили за рамки базового «нарисовать цветной треугольник». С Vulkan есть надежда, что из-за уменьшенной толщины прослойки драйвера будут содержать меньше багов и отклонений от стандарта, а разработчики смогут вложить больше человекочасов в driver-agnostic движки. Ну и так или иначе баг в движке проще поправить, чем баг в драйвере, потому что исходники движка часто доступны (даже если по EULA), а исходники драйвера почти никогда.
- У OpenGL много legacy решений из эпохи Fixed Function Pipeline и одноядерных CPU.
Возможно, Vulkan слишком тонкая прослойка, об этом до сих пор ведуться дебаты и его конкуренты всё же более высокоуровневые (что как бы намекает). Но OpenGL был точно слишком толстой прослойкой, которая не отражала ни современные архитектуры GPU, ни современные потребности разработчиков.
Исправление KivApple, :
OpenGL был очень толстой прослойкой в драйвере (над конкретной реализацией в кремнии). Vulkan тонкая прослойка в драйвере, а дальше ты уже сам решаешь какой толщины и какую прослойку использовать в своём приложении (можно очень толстую в виде готового движка, можно умеренной толщины в виде какого-нибудь WebGPU, можно юзать голый Vulkan).
Проблемы у OpenGL две:
- Прослойка толстая, а производителей GPU много (не забывай, что помимо десктопов есть ещё мобилки), а ещё у каждого производителя много разных моделей GPU (и у них бывают очень разные архитектуры). А чем толще прослойка, тем больше человекочасов на неё нужно. Соответственно, каждый драйвер реализовывал OpenGL со своими багами и фичами и создавал большую головную боль авторам приложений когда они выходили за рамки базового «нарисовать цветной треугольник». С Vulkan есть надежда, что из-за уменьшенной толщины прослойки драйвера будут содержать меньше багов и отклонений от стандарта, а разработчики смогут вложить больше человекочасов в driver-agnostic движки. Ну и так или иначе баг в движке проще поправить, чем баг в драйвере, потому что исходники движка часто доступны (даже если по EULA), а исходники драйвера почти никогда.
- У OpenGL много legacy решений из эпохи Fixed Function Pipeline и одноядерных CPU.
Возможно, Vulkan слишком тонкая прослойка, об этом до сих пор ведуться дебаты и его конкуренты всё же более высокоуровневые. Но OpenGL был точно слишком толстой прослойкой, которая не отражала ни современные архитектуры GPU, ни современные потребности разработчиков.
Исправление KivApple, :
OpenGL был очень толстой прослойкой в драйвере (над конкретной реализацией в кремнии). Vulkan тонкая прослойка в драйвере, а дальше ты уже сам решаешь какой толщины и какую прослойку использовать в своём приложении (можно очень толстую в виде готового движка, можно умеренной толщины в виде какого-нибудь WebGPU, можно юзать голый Vulkan).
Проблемы у OpenGL две:
- Прослойка толстая, а производителей GPU много (не забывай, что помимо десктопов есть ещё мобилки), а ещё у каждого производителя много разных моделей GPU (и у них бывают очень разные архитектуры). А чем толще прослойка, тем больше человекочасов на неё нужно. Соответственно, каждый драйвер реализовывал OpenGL со своими багами и фичами и создавал большую головную боль авторам приложений когда они выходили за рамки базового «нарисовать цветной треугольник». С Vulkan есть надежда, что из-за уменьшенной толщины прослойки драйвера будут содержать меньше багов и отклонений от стандарта, а разработчики смогут вложить больше человекочасов в driver-agnostic движки. Ну и так или иначе баг в движке проще поправить, чем баг в драйвере, потому что исходники движка часто доступны (даже если по EULA), а исходники драйвера почти никогда.
- У OpenGL много legacy решений из эпохи Fixed Function Pipeline и одноядерных CPU.
Исходная версия KivApple, :
OpenGL был очень толстой прослойкой в драйвере (над конкретной реализацией в кремнии). Vulkan тонкая прослойка в драйвере, а дальше ты уже сам решаешь какой толщины и какую прослойку использовать в своём приложении (можно очень толстую в виде готового движка, можно умеренной толщины в виде какого-нибудь WebGPU, можно юзать голый Vulkan).
Проблемы у OpenGL две:
- Прослойка толстая, а производителей GPU много, а ещё у каждого производителя много разных моделей GPU. А чем толще прослойка, тем больше человекочасов на неё нужно. Соответственно, каждый драйвер реализовывал OpenGL со своими багами и фичами и создавал большую головную боль авторам приложений когда они выходили за рамки базового «нарисовать цветной треугольник». С Vulkan есть надежда, что из-за уменьшенной толщины прослойки драйвера будут содержать меньше багов и отклонений от стандарта, а разработчики смогут вложить больше человекочасов в driver-agnostic движки. Ну и так или иначе баг в движке проще поправить, чем баг в драйвере, потому что исходники движка часто доступны (даже если по EULA), а исходники драйвера почти никогда.
- У OpenGL много legacy решений из эпохи Fixed Function Pipeline и одноядерных CPU.