Тест номер один:
NVIDIA Geforce GT650M 2 GB
Matrix - Constant - 72
Matrix - Texture - 96
Matrix - Buffer - 97
Matrix - Block - 72
Quaternion - Constant - 95
Quaternion - Texture - 111
Quaternion - Buffer - 111
Quaternion - Block - 92
Тест номер два:
NVIDIA Geforce GT650M 2 GB
Matrix - Constant - 19
Matrix - Texture - 26
Matrix - Buffer - 26
Matrix - Block - 18
Quaternion - Constant - 25
Quaternion - Texture - 30
Quaternion - Buffer - 30
Quaternion - Block - 25
С второй версией, там где туева куча объектов:
Vendor: NVIDIA Corporation
Adapter: GeForce GT 620M/PCIe/SSE2 1GB
OpenGL: 3.3.0
CPU: Intel(R) Core(TM) i7-3517U CPU @ 1.90GHz
RAM: 10GB
Matrix - Constant - 21
Matrix - Texture - 19
Matrix - Buffer - 17
Matrix - Block - 20
Quaternion - Constant - 21
Quaternion - Texture - 21
Quaternion - Buffer - 21
Quaternion - Block - 20
А вот с Intel 4000 -- бедаааа....
С второй версией, там где туева куча объектов должна быть:
Adapter: Intel(R) HD Graphics 4000
OpenGL: 3.3.0 - Build 8.15.10.2761
GLSL: 3.30 - Intel Build 8.15.10.2761
CPU: Intel(R) Core(TM) i7-3517U CPU @ 1.90GHz
RAM: 10GB
Matrix - Constant - 14
Matrix - Texture - 10
Matrix - Buffer - 11
Matrix - Block - 3
Quaternion - Constant - 17
Quaternion - Texture - 15
Quaternion - Buffer - 16
Quaternion - Block - 14
И есть баги
![2nd bug 2nd bug | Протестите плиз GPU скиннинг (тест оптимизаторов в [33], 3 стр.)](https://gamedev.ru/files/images/87741_1367867567_b2.jpg)
второй тест с hd 4000
Matrix - Constant - 12
Matrix - Texture - 7
Matrix - Buffer - 8
Matrix - Block - 8
Quaternion - Constant - 12
Quaternion - Texture - 10
Quaternion - Buffer - 11
Quaternion - Block - 11
>А вот с Intel 4000 -- бедаааа....
да все вроде как обычно, нету беды. в старых дровах беда, да.
![интел инфо интел инфо | Протестите плиз GPU скиннинг (тест оптимизаторов в [33], 3 стр.)](https://gamedev.ru/files/images/cx.jpg)
Radeon 6950
Matrix - Constant - 229
Matrix - Texture - 189
Matrix - Buffer - 232
Matrix - Block - 235
Quaternion - Constant - 297
Quaternion - Texture - 190
Quaternion - Buffer - 269
Quaternion - Block - 298
Matrix - Constant - 60
Matrix - Texture - 42
Matrix - Buffer - 60
Matrix - Block - 61
Quaternion - Constant - 68
Quaternion - Texture - 44
Quaternion - Buffer - 61
Quaternion - Block - 67
Высший результат всего в полтора раза меньше пиковой пропускной способности экспорта вершин. Надо оптимизировать меши.
DeadMeat
> Примерно подтверждается то, что я видел у себя. На NV лучше юзать текстуру или
> TBO (суть одно). А вот на AMD лучше юзать константы или UBO.
Тест №2 NV GTX 560, результаты несколько другие.
Matrix - Constant - 65 Matrix - Texture - 58 Matrix - Buffer - 64 Matrix - Block - 65 Quaternion - Constant - 68 Quaternion - Texture - 63 Quaternion - Buffer - 67 Quaternion - Block - 66
NV GT 520
Matrix - Constant - 41
Matrix - Texture - 36
Matrix - Buffer - 38
Matrix - Block - 41
Quaternion - Constant - 41
Quaternion - Texture - 41
Quaternion - Buffer - 37
Quaternion - Block - 41
Вот тут задумаешься, стоит ли изучать кватернионы...
Большое спасибо всем за тест.
В большинстве случаев соотношение сохраняется:
AMD - массив униформов или UBO
NV - текстура или TBO
Intel - разницы почти нет
Причем заметно, что для AMD лучше таки массив униформов, а для NV стабильнее будет TBO. Есть конечно исключения из правил, но их не много.
Так же лучше юзать кватернионы + позиции, но и здесь есть исключения из правил. На некоторых картах матрицы быстрее (почему?). Хотя может тут зависит от способа расчета на CPU. У меня матрицы считаются в любом случае, но для варианта кватернионов еще дополнительно получается из результата кватернион. Т.е. по сути "расчет" кватернионов должен быть медленнее на CPU, т.к. он не "честный". Однако на общий результат это повлияло не очень сильно.
Вероятно оптимизация вершин может сильно изменить соотношение, но врядли, т.к. может кэш и шина буду лучше задействованы, но матрицы/кватернионы от этого не изменятся в количестве. Будет тот же объем памяти гонятся по шине и использоваться в расчетах. Но я могу ошибаться. Не большой спец. в таких low level деталях.
ЗЫ. Табличка с результатами: Статистика для GPU скиннинга
Надеюсь я правильно все посчитал.
Intel HD 4000
-----------------------------------
07.05.2013 10:53:35.64
-----------------------------------
Matrix - Constant - 27
Matrix - Texture - 18
Matrix - Buffer - 28
Matrix - Block - 23
Quaternion - Constant - 36
Quaternion - Texture - 26
Quaternion - Buffer - 23
Quaternion - Block - 28
насыщенная версия:
-----------------------------------
07.05.2013 10:55:57.55
-----------------------------------
Matrix - Constant - 10
Matrix - Texture - 6
Matrix - Buffer - 8
Matrix - Block - 9
Quaternion - Constant - 12
Quaternion - Texture - 10
Quaternion - Buffer - 11
Quaternion - Block - 12
Кстати багов нету. Но у меня самые свежие дрова. Наверное Intel поправил дрова под OpenGL.
AMD Radeon HD 6310
-----------------------------------
Matrix - Constant - 15
Matrix - Texture - 12
Matrix - Buffer - 15
ATI\AMD HD 7770 1gb Mgz Edit PowerColor
Matrix - Block - 215
Matrix - Buffer - 216
Matrix - Constant - 223
Matrix - Texture - 174
Quaternion - Block - 228
Quaternion - Buffer - 228
Quaternion - Constant - 234
Quaternion - Texture - 205
-------------------------------------------------
Обновлённая версия
-------------------------------------------------
Matrix - Block - 58
Matrix - Buffer - 58
Matrix - Constant - 56
Matrix - Texture - 51
Quaternion - Block - 60
Quaternion - Buffer - 55
Quaternion - Constant - 62
Quaternion - Texture - 48
GeForce GT330M
-----------------------------------
Первый
-----------------------------------
Matrix - Constant - 65
Matrix - Texture - 55
Matrix - Buffer - 60
Matrix - Block - 64
Quaternion - Constant - 51
Quaternion - Texture - 78
Quaternion - Buffer - 79
Quaternion - Block - 51
-----------------------------------
Второй
-----------------------------------
Matrix - Constant - 19
Matrix - Texture - 15
Matrix - Buffer - 17
Matrix - Block - 19
Quaternion - Constant - 14
Quaternion - Texture - 22
Quaternion - Buffer - 20
Quaternion - Block - 14
680GT
обычная:
Matrix - Constant - 304
Matrix - Texture - 391
Matrix - Buffer - 404
Matrix - Block - 306
Quaternion - Constant - 450
Quaternion - Texture - 393
Quaternion - Buffer - 416
Quaternion - Block - 366
насыщенная:
Matrix - Constant - 78
Matrix - Texture - 90
Matrix - Buffer - 97
Matrix - Block - 79
Quaternion - Constant - 117
Quaternion - Texture - 93
Quaternion - Buffer - 97
Quaternion - Block - 88
забавно что на матрицах быстрее buffer, а на кватернионах быстрее constant.
Спасибо еще раз.
Судя по всему тендеция сохраняется.
NV - текстуры
AMD - униформы
Intel - пофиг. Хотя может если нагрузку снизить разница будет четче видна.
Если не сложно, владельцы интеллов, проверьте плиз эти версии:
4х4 персов
6х6 персов
Как обычно, просто в корень распаковать. Интересно таки узнать, что для них предпочтительней, раз они ОГЛ 3.3 все же тянут.
Intel HD 4000
4x4
-----------------------------------
08.05.2013 15:51:22.41
-----------------------------------
Matrix - Constant - 107
Matrix - Texture - 63
Matrix - Buffer - 68
Matrix - Block - 68
Quaternion - Constant - 110
Quaternion - Texture - 109
Quaternion - Buffer - 105
Quaternion - Block - 110
6x6
-----------------------------------
08.05.2013 15:52:21.58
-----------------------------------
Matrix - Constant - 51
Matrix - Texture - 31
Matrix - Buffer - 33
Matrix - Block - 37
Quaternion - Constant - 52
Quaternion - Texture - 50
Quaternion - Buffer - 51
Quaternion - Block - 51
Тема в архиве.