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

Vulkan API (вышел!) (218 стр)

Страницы: 1217 218 219 220691 Следующая »
#3255
7:05, 22 сен 2016

Мужчины R9 290 дружит с вулканкой?

#3256
8:20, 22 сен 2016

Dronas
> Мужчины R9 290 дружит с вулканкой?
в общем и целом всё начиная с 7870 дружит, но насколько полностью вопрос сложный, апи низкоуровневое и там нет гарантии 100% поддержки функционала вообще.

#3257
10:36, 22 сен 2016

laMer007
> Так что ещё вопрос что более мертво

Причём заметь, тот, кто больше всех кричит о смерти GL, не торопится переводить свой супер-пупер движок на сабж...

#3258
0:03, 27 сен 2016

Кажется дефолтный переводчик GLSL -> SPIR-V неслабо так барахлит.
Шейдеры грузятся и работают, вот только совсем криво. Методом тыка было установлено, что в некоторых случаях переменная записывается значением соседней инструкции, которую убрал оптимизатор (другого объяснения пока нет).
Кто-нибудь с подобным встречался?

#3259
18:23, 27 сен 2016

UP

#3260
18:38, 27 сен 2016

The Player
Попробуй с разными версиями.
Ну и выложи пример сюда на посмотреть.

#3261
22:11, 18 окт 2016

Наткнулся на перевод буржуйских статей, мб кого заинтересует, вродь сделано не плохо. http://vulkanapi.ru/

#3262
9:02, 20 окт 2016

http://gpuopen.com/vulkan-barriers-explained/

#3263
(Правка: 15:49) 15:39, 23 окт 2016

После небольшой передышки таки вернулся к Vulkan и проблеме преобразования шейдеров. Суть такова...
Есть обычная связка шейдеров (вершинный + фрагментный), которая, пока что, должна просто выводить текстурные координаты, но само собой выводит дерьмо:

+ vertex
+ fragment
+ output

Обратите внимание на то, что ни fPos ни fTBN во фрагментном шейдере не используются, хотя мы их все таки передаем. Т.е., чисто теоретически, лунарский транслятор GLSL->SPIR-V или компилятор самого SPIR-V на видяхе все это дело оптимизируют.
Фокус в том, что если попросту убрать запись атрибутов fPos/fTBN в вершинном шейдере, то картина меняется на, кто бы мог подумать, правильную:

+ vertex
+ fragment
+ output

И знаете что тут самое подозрительное? Первый (кривой) вывод один в один сходится со значением атрибута fPos, который, само собой, был оптимизирован.
Такое ощущение что оптимизатор до боли кривой и либо пишет не туда, либо читает не из того места.

Сейчас ставлю свежую 1.0.30.0 и буду проверять, осталась ли проблема... Таки да, осталась.
Тем не менее, кто-нибудь с чем-нибудь подобным сталкивался?

#3264
16:32, 23 окт 2016

The Player
layout(location) для in/out нужно указывать. Они связываются не по именам, а по location.

#3265
16:38, 23 окт 2016

The Player
А в Vulkan'е никакие биндинги\локации для вариингов явно указывать не нужно?

Правка: опередили

#3266
18:10, 23 окт 2016

SDC
gammaker
Спасибо! Пока что, вроде бы, помогло.
З.Ы. Впервые слышу о layout(location) для внутренних атрибутов.

#3267
19:30, 23 окт 2016

А может кто нибудь подсказать псевдокодом, как в вулкане сделать следующее.
Есть 1 юниформ буфер для матриц.

Обновить данные юниформ.
Вывести один объект (пусть будет куб).
Обновить данные юниформ.
Вывести другой объект (пусть будет сфера).

#3268
(Правка: 20:10) 19:48, 23 окт 2016

JustForFun
Завести 2 descriptor set`a и биндить для каждого объекта свой.

UPD:
-обновить буфер с per-object данными для всех объектов
-bind ds_for_cube
-draw cube
-bind ds_for_sphere
-draw sphere

#3269
19:53, 23 окт 2016

JustForFun
А в чем проблема?
Обновляешь буферы, отправляешь команды, ждешь выполнения.

Страницы: 1217 218 219 220691 Следующая »
ПрограммированиеФорумГрафика