Dampire
> я не секу
именно
Dampire
> В реальном проекте все это строится на нескольких шейдерах, остальные стейты
> кроме вао и текстур переключаются вместе с ними. В итоге сортируется по
> шейдерам, текстурам и получаем дешёвые дипы. Если у тебя разный формат вершин
> на каждый дип, то ты явно что-то делаешь не так.
Не ну, "у нас" все как раз как в #22. Вот прямо так. Геометрия забейкана в ворлд спейсе. Шаг влево, шаг вправо - жопа. Если внутрь цикла добавить установку одного юниформа, перформанс (именно сабмита батчей, т.е. CPU) на некотором говенном железе падает в 10 раз. Хотя казалось бы!
Т.е. можно долго говорить о мифическом AZDO, но там, где гл все еще актуален (старые могилки), половина функционала тупо не работает, несмотря на гордо заявленный GLES 3.2.
Wraith
ты расскажи про нормальные апи … это про PS4 ?
> на некотором говенном железе падает в 10 раз
это проблемы GL или железа ?
Wraith
> Непонятно только зачем при наличии всей этой радости цепляться за OpenGL.
а за что цепляться ?
Wraith
> Если внутрь цикла добавить установку одного юниформа
который меняется каждый кадр ?
Wraith
> Если внутрь цикла добавить установку одного юниформа, перформанс (именно сабмита батчей, т.е. CPU) на некотором говенном железе падает в 10 раз.
У меня внутри цикла стоит установка одного юниформа. Волосы мягкие и шелковистые. Даже на самом говеном лоуэнде семилетней давности боттлнек - филлрейт.
Dampire
> аже на самом говеном лоуэнде семилетней давности боттлнек -
он про мобилки
Wraith
> Т.е. можно долго говорить о мифическом AZDO
налицо какая-то попоболь
Dampire
Если вао состоит из монолитного буфера
Ты просто поумничать пришёл, да?
У ТС все данные разбиты на отдельные блоки.
Wraith
Пока рендеришь одним шейдером, одним стейтом, и одним форматом вершин, - действительно, все хорошо и прекрасно.
Ничё подобного.
У нас тут уже был тред: будет ли профит если рисовать робота в один дравколл, а анимировать его на костях?
Общим голосованием порешили что да, профит будет.
Я таки передалал на кости всё.
Профита нет =D
Меньше дравколов - это реальный плюс.
Т.е. FPS реально больше если всё в один кравколл рисовать.
Даже если шейдер один и тот же и никаких стейтов не меняется.
Но вот незадача - два дополнительных атрибута - массив индексов и весов у кости выдал минус по производительности.
Причём перекрывающий плюс от дравкола.
Текущие идеи как исправить положение:
объединить все буферы в один
минимизировать фрагментацию атрибутов
покурить доки про выравнивание данных в памяти для видеокарты
f1ufx_
> Даже если шейдер один и тот же и никаких стейтов не меняется.
> Но вот незадача - два дополнительных атрибута - массив индексов и весов у кости
> выдал минус по производительности.
> Причём перекрывающий плюс от дравкола.
значит он чето не так сделал. не может быть такого.
f1ufx_
> У ТС все данные разбиты на отдельные блоки.
Пруфанешь из какого поста ты это взял?
ему там нужен был один индекс матрицы, так как модель без скиннинга. тупо рисовать за один дравкол и вершина должна иметь ссылку на свою матрицу.
а этот индекс можно было засунуть куда угодно 3м 4м компонентом, где он не задействован. это даже не повляло бы на Layout
главное чтоб инерполятор его незахерил) а хотя нахрен он ему в фрагментном шейдере
f1ufx_
он про мобилки
Ой, создал тему и забыл про нее))
innuendo
> всё остально работает максимально быстро ? :)
Все остальное это уже другой вопрос. Или это к тому, что я не то оптимизировать пытаюсь? :) Я просто решил уточнить этот вопрос.
0r@ngE
> А у вас один VB ? Или все атрибуты по разным VB лежат?
Да, один. Я даже не просто так подписал {PNT...}. Типа позиция, нормаль, ювешка, и т.д. Тогда встречный вопрос. Может стоит разделить на несколько, чтобы shadow pass был оптимизированнее?
Wraith
> В гл ничего не надо - слишком большой кост дро колла сведет на нет все
> "оптимизации".
В каком смысле "ничего не надо"? Нет смысла в этой "опримизации"? Да и я же этим не увеличиваю количество дроу колов.
Dimich
> Дык если всё в одном буфере, оно один хрен в кэш попадает.
Вот именно поэтому я и задумался.
Тема в архиве.