Войти
ПрограммированиеФорумГрафика

Переход на Vulkan. С чего начать?

Страницы: 1 2 3 Следующая »
#0
18:13, 21 ноя. 2017

В общем, взял себе я новый ящик с GeFroce 1080Ti, и уже начал перекидывать код с OpenCL на CUDA, ввиду того, что на NVidia CUDA дрова работают быстрее, да и потом, он функциональней.
Далее, я вот так подумал, раз уж Mac отказался от поддержки OpenGL, то наверное шёл бы он кобыле в трещину вообще, откажусь от поддержки Mac-а, да и вообще, он особо в РФ не распространён, а раз не нужен Mac, остаётся поддержка Windows/Linux, а вот на них уже можно запулить Vulkan, так накой мне тогда OpenGL, когда есть Vulkan? Решил на него переключиться и тут собственно и несколько вопросов:
1. Какое сейчас есть современное SDK для работы с Vulkan, не на SPIR-V же код писать :-) Полагаю, что Lunar SDK?
2. Как вообще сейчас этот Vulkan поживает, не вышло ли чего по круче под Win/Lin? Он развивается или уже загибается?
3. Или есть смысл не бросаться на вулкан и посмотреть в сторону OpenGL 4.6?
4. Вот смотрю я на это видео:

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

там говорится про некоторую прослойку Vulkan Universally Portable Subset, с помощью которой можно будет ремапить на Metal/DX12, сделано что-то в этом направление или это пока что только идеи?


#1
20:04, 21 ноя. 2017

4 - вообще про vulkan protability initiative от сюда ноги растут
https://www.khronos.org/blog/khronos-announces-the-vulkan-portabi… ty-initiative
на счет сделано пока тока разговоры
ну т.е. предполагается что SPIR можно во что угодно компилировать
и решают какие подмножества апи во что лучше мапить
у раста есть вот такое проект
https://github.com/kvark/portability
в общем суть этой портабилить в том что реализовать какую то прослойку которая мапится в модные API т.е. технически можешь уже начианть реализовывать, правда пока еще не совсем понятно как что во что мапится )
https://github.com/gfx-rs/gfx/issues/1354
3 - если смысл смотреть в сторону OpenGL 4.6
хз куда все ползет помойму вот сюда
https://github.com/gpuweb/gpuweb
там есть такая дока
https://github.com/gpuweb/gpuweb/blob/master/design/Pipelines.md
относительно того чего куда мапить )

#2
20:15, 21 ноя. 2017

-=MASTER=-
> ввиду того, что на NVidia CUDA дрова работают быстрее, да и потом, он
> функциональней.

срочно кастую в тему Andrey :)

#3
20:40, 21 ноя. 2017

Если не знаешь с чего начать, то и не нужен тебе вулкан.

#4
20:41, 21 ноя. 2017

Перенести с огл на вулкан несложно, особенно если пользоваться последними функциями типа glTexStorage, glBufferStorage и direct state access который в 4.5 наконец добавили (до этого как расширение даже на интеле с огл 4.4 нормально работает).
Если действительно много времени чтоб освоить вулкан и написать свои утилиты типа с++ обертки над шейдерами, фрейм граф с оптимизацией и тд, тагда да, иначе проще разрабатывать на огл и потом портировать.

#5
20:43, 21 ноя. 2017

Единственное что на вулкане нет - bindless texxtures, так что не стоит использовать их в оптимизации огл.

#6
21:00, 21 ноя. 2017

ArchiDevil
> Если не знаешь с чего начать, то и не нужен тебе вулкан.

редкий случай когда я согласен

#7
21:01, 21 ноя. 2017

/A\
> Единственное что на вулкане нет - bindless texxtures

а tfb ?

#8
21:06, 21 ноя. 2017

innuendo
> а tfb ?
а им кто-то еще пользуется? есть же компьют шейдеры

#9
21:29, 21 ноя. 2017

А Lunar SDK, эт чё вообще? Разве это не есть обёртка на вулкан?

#10
21:35, 21 ноя. 2017

-=MASTER=-
Это "загрузчик", чтобы функции вручную с dll не грузить.
Скачай, установи, поковыряй примеры, напиши парочку демок с кубиками.
Там и поймешь нужно ли оно тебе.

#11
21:46, 21 ноя. 2017

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

#12
21:46, 21 ноя. 2017

/A\
> Единственное что на вулкане нет - bindless texxtures, так что не стоит
> использовать их в оптимизации огл.
bindless texxtures не нужны для Vulkan, Дескрипторы это и есть аналог bindless texxtures, разница только в синтаксическом сахаре.

К примеру на AMD: VkPhysicalDeviceLimits::maxDescriptorSetSampledImages == UINT_MAX, Vulkan(и ему подобные Mantle/Metal/Direct3D12) с коробки поддерживают быструю установку групп текстур(как и других ресурсов), и как видно число устанавливаемых текстур не ограничено.
Ну и тут это тоже обсуждают:
https://forums.khronos.org/showthread.php/12967-Vulkan-and-bindless

#13
22:13, 21 ноя. 2017

/A\
> Там слои валидации, если ты что-то делаешь неправильно, тебе об этом скажут,
> без них будет молча падать или неправильно работать.
хмм, а вот это грамотно продумано

Ну так что, а есть тут вулканцы? [я не про героя с ушами из стар трэка :) ]  Кто-то реально пишет уже на нём коммерческий софт? Ну и как? На каком языке вообще пишется, на SPIR? Реально намного больше кода получается из-за ассемблер подобного кода?

#14
22:26, 21 ноя. 2017

И ещё серия вопросов к вулканцам по поводу комьют шейдеров:
1. Что там есть из атомарного? Есть atomic min/max/exchnage? Или только counter?
2. Можно ли работать в локальной памятью?
3. Если ли барьеры на локальную/ глобальную память?

Страницы: 1 2 3 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.