Войти
OpenGL communityФорумВопросы по программированию

Как быть с glMultiDrawElementsIndirect?

#0
17:13, 18 сен. 2020

Добрый день!

Я хочу попробовать MDI + gpu culling через compute shader, но все примеры довольно простые (opengl superbible 6th). Я пока не нашел примеров, когда используется геометрия как с SHORT, так и с INT типами EBO одновременно.
Как правильно делать - использовать INT всегда, или делать 2 вызова glMultiDrawElementsIndirect для short и для int?


#1
13:50, 19 сен. 2020

Simi4

ну бей геометрию по шортам

#2
15:37, 19 сен. 2020

Simi4
Юзай инты и не парься.
Вот тут пишут https://community.khronos.org/t/unsigned-short-int-performance/58451
старое конечно, но я думаю в этом плане ничего не меняется. Другое дело когда тебе надо экономить память (на смартфоне например).

А так для шорт и инт надо делать отдельные вызовы MDI

#3
20:06, 23 сен. 2020

RmzVoid
Да, с интами в принципе нормально, спасибо.

#4
15:42, 24 сен. 2020

Simi4
ну да, сейчас же не время GeForce3 :)

#5
(Правка: 21:50) 20:51, 11 окт. 2020

Еще такой вопрос появился: будет ли прирост скорости от использования инстанцирования в glMultiDrawElementsIndirectCountARB?

struct DrawElementsIndirectCommand
{
    uint count;
    uint instanceCount; // <---
    ...
};

И работает ли вообще инстанцирование в glMultiDrawElementsIndirectCountARB?
У меня не получилось заставить работать/отладить это.
Для glMultiDrawElementsIndirect оно работало, gl_BaseInstanceARB в шейдере был корректный,
а для glMultiDrawElementsIndirectCountARB gl_BaseInstanceARB как будто не инкрементится.

#6
10:06, 17 окт. 2020

Simi4
> Я хочу попробовать MDI + gpu culling через compute shader

ну и как результат ?

#7
11:28, 17 окт. 2020

innuendo
> ну и как результат ?
На RTX2060 меня устраивает, а на GTX 660Ti, конечно, не так круто.
Думаю после добавления LOD'ов должно стать  получше.
На AMD(Vega 3) столкнулся с данным багом: https://community.amd.com/thread/248051 - при использовании ~460 резидентных текстур крашится контекст.

#8
11:46, 17 окт. 2020

Simi4
> На RTX2060 меня устраивает, а на GTX 660Ti, конечно, не так круто

в цифрах плиз

#9
12:12, 17 окт. 2020

innuendo
> в цифрах плиз

frustum culling 7666 матриц: 0.03ms
Culling time | Как быть с glMultiDrawElementsIndirect?

drawing after culling(8203 drawcommands): 6.44ms
Drawing time | Как быть с glMultiDrawElementsIndirect?

#10
12:17, 17 окт. 2020

Simi4
> frustum culling

ааааа, я думал про occlusion culling :)

OpenGL communityФорумВопросы по программированию