Форум: "Прочее";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];
ВнизЕще одна просьба провести тест Найти похожие ветки
← →
antonn © (2008-07-09 01:23) [0]Еще одна просьба провести тест и показать результат :)
Тест блитинга, с бампмапингом, "линзами", и классом рендером, отсекающий все лишнее :)
Процессор при наличии админстких прав и еще пары условий определится сам, если нет - напишите какой.
Все также сильно хочется увидеть результаты с AMD.
http://desksoft.ru/index.php?downloads=attachments&id=102 (rar, 533Кб)
http://desksoft.ru/index.php?downloads=attachments&id=103 (zip, 576Кб)
(архив скачать, распаковать в любое место)
← →
AFHU (2008-07-09 01:38) [1]CPU: Intel(R) Core(TM)2 Quad CPU @ 2.40GHz
===================
Copy bliting: 3279.47
Transparent bliting: 2945.64
Opacity bliting (MMX): 900.99
Alpha bliting: 926.12
Alpha bliting (a): 835.79
Alpha bliting (MMX): 1080.07
Alpha bliting (a, MMX): 718.24
Rotate: 273.69
Rotate opacity: 213.79
Rotate alpha: 225.58
Rotate alpha colorized: 232.43
Resize (proportional): 3227.26
Resize: 1826.70
Draw Scene: bump maping: 256.39
Draw Scene: reflective + bump maping: 244.07
Draw Scene: sharpen: 68.10
← →
Юрий © (2008-07-09 01:46) [2]CPU: Intel(R) Core(TM)2 Duo CPU E6750 @ 2.66GHz
===================
Copy bliting: 3680.19
Transparent bliting: 3432.59
Opacity bliting (MMX): 1025.45
Alpha bliting: 1061.25
Alpha bliting (a): 977.48
Alpha bliting (MMX): 1231.22
Alpha bliting (a, MMX): 863.23
Rotate: 352.45
Rotate opacity: 249.55
Rotate alpha: 261.92
Rotate alpha colorized: 275.37
Resize (proportional): 3883.56
Resize: 2061.66
Draw Scene: bump maping: 314.68
Draw Scene: reflective + bump maping: 301.36
Draw Scene: sharpen: 78.51
← →
umbra © (2008-07-09 01:48) [3]а какой для амд?
← →
umbra © (2008-07-09 01:53) [4]
> CPU: AMD Sempron(tm) Processor 2500+
> ===================
> Copy bliting: 387.43
> Transparent bliting: 389.40
> Opacity bliting (MMX): 215.66
> Alpha bliting: 146.91
> Alpha bliting (a): 146.37
> Alpha bliting (MMX): 277.45
> Alpha bliting (a, MMX): 228.76
> Rotate: 93.91
> Rotate opacity: 67.69
> Rotate alpha: 65.88
> Rotate alpha colorized: 68.71
> Resize (proportional): 955.76
> Resize: 536.76
> Draw Scene: bump maping: 57.98
> Draw Scene: reflective + bump maping: 59.34
> Draw Scene: sharpen: 11.83
при щелке на фоме в последнем тесте картинка беспощадно исчезла и появилась через 30 секунд (примерно)
← →
Asteroid (2008-07-09 02:12) [5]Голоса в голове нашептывают мне, что тип\частота памяти тут тоже имеют большое значение, но еще большее - размер кэша :) А еще отсутствие многопоточности, так что различия между Quad и Duo примерно соответствуют частотам.
← →
turbouser © (2008-07-09 02:15) [6]CPU: под вайном не определился но он такой же как и в [2]
===================
Copy bliting: 5393.64
Transparent bliting: 2098.23
Opacity bliting (MMX): 1021.26
Alpha bliting: 1045.16
Alpha bliting (a): 966.75
Alpha bliting (MMX): 1225.03
Alpha bliting (a, MMX): 834.98
Rotate: 322.67
Rotate opacity: 248.55
Rotate alpha: 257.75
Rotate alpha colorized: 256.78
Resize (proportional): 3750.61
Resize: 2018.61
Draw Scene: bump maping: 246.26
Draw Scene: reflective + bump maping: 242.47
Draw Scene: sharpen: 72.14
← →
Pavia © (2008-07-09 03:19) [7]CPU: Intel(R) Pentium(R) 4 CPU 2.40GHz
===================
Copy bliting: 598.41
Transparent bliting: 572.32
Opacity bliting (MMX): 455.10
Alpha bliting: 91.71
Alpha bliting (a): 89.74
Alpha bliting (MMX): 354.74
Alpha bliting (a, MMX): 286.03
Rotate: 103.98
Rotate opacity: 54.45
Rotate alpha: 38.96
Rotate alpha colorized: 39.57
Resize (proportional): 863.74
Resize: 565.74
Draw Scene: bump maping: 87.61
Draw Scene: reflective + bump maping: 94.06
Draw Scene: sharpen: 25.35
← →
Pavia © (2008-07-09 03:55) [8]Частота 1000МГц
CPU: AMD Athlon(tm) Processor
===================
Copy bliting: 179.97
Transparent bliting: 160.66
Opacity bliting (MMX): 86.32
Alpha bliting: 63.15
Alpha bliting (a): 60.47
Alpha bliting (MMX): 87.91
Alpha bliting (a, MMX): 84.15
Rotate: 65.93
Rotate opacity: 41.65
Rotate alpha: 42.06
Rotate alpha colorized: 42.51
Resize (proportional): 352.55
Resize: 206.78
Draw Scene: bump maping: 33.70
Draw Scene: reflective + bump maping: 31.86
Draw Scene: sharpen: 9.09
← →
Узурап (2008-07-09 10:08) [9]CPU: Celeron M 1.6 (под Wine)
===================
Copy bliting: 525.29
Transparent bliting: 514.01
Opacity bliting (MMX): 434.05
Alpha bliting: 424.99
Alpha bliting (a): 419.05
Alpha bliting (MMX): 466.66
Alpha bliting (a, MMX): 415.58
Rotate: 165.50
Rotate opacity: 125.65
Rotate alpha: 126.02
Rotate alpha colorized: 130.19
Resize (proportional): 1461.25
Resize: 789.06
Draw Scene: bump maping: 95.87
Draw Scene: reflective + bump maping: 85.16
Draw Scene: sharpen: 28.81
← →
passlight © (2008-07-09 10:16) [10]CPU: Intel(R) Core(TM)2 CPU 6420 @ 2.13GHz
===================
Copy bliting: 2959.80
Transparent bliting: 2713.91
Opacity bliting (MMX): 819.02
Alpha bliting: 841.45
Alpha bliting (a): 780.68
Alpha bliting (MMX): 986.17
Alpha bliting (a, MMX): 684.24
Rotate: 284.79
Rotate opacity: 198.18
Rotate alpha: 208.01
Rotate alpha colorized: 220.17
Resize (proportional): 3078.02
Resize: 1634.61
Draw Scene: bump maping: 247.78
Draw Scene: reflective + bump maping: 236.32
Draw Scene: sharpen: 62.53
← →
engine © (2008-07-09 10:17) [11]CPU: AMD Sempron(tm) Processor 3400+
===================
Copy bliting: 807.65
Transparent bliting: 799.76
Opacity bliting (MMX): 386.35
Alpha bliting: 273.40
Alpha bliting (a): 260.72
Alpha bliting (MMX): 477.98
Alpha bliting (a, MMX): 409.78
Rotate: 161.77
Rotate opacity: 117.07
Rotate alpha: 116.92
Rotate alpha colorized: 116.39
Resize (proportional): 1700.37
Resize: 988.45
Draw Scene: bump maping: 101.19
Draw Scene: reflective + bump maping: 102.76
Draw Scene: sharpen: 20.69
← →
Плохиш © (2008-07-09 10:50) [12]CPU: Intel(R) Pentium(R) 4 CPU 3.00GHz
===================
Copy bliting: 1292.41
Transparent bliting: 1600.82
Opacity bliting (MMX): 489.61
Alpha bliting: 178.45
Alpha bliting (a): 172.78
Alpha bliting (MMX): 576.54
Alpha bliting (a, MMX): 456.29
Rotate: 169.88
Rotate opacity: 111.93
Rotate alpha: 108.46
Rotate alpha colorized: 96.86
Resize (proportional): 1113.59
Resize: 630.45
Draw Scene: bump maping: 190.68
Draw Scene: reflective + bump maping: 190.40
Draw Scene: sharpen: 38.47
← →
antonn © (2008-07-09 12:04) [13]
> при щелке на фоме в последнем тесте картинка беспощадно
> исчезла и появилась через 30 секунд (примерно)
то, что отрисовывается на форме в квадрате справа во время теста не рисуется :)
> Pavia © (09.07.08 03:19) [7]
>
> CPU: Intel(R) Pentium(R) 4 CPU 2.40GHz
> ===================
> Alpha bliting: 91.71
> Alpha bliting (a): 89.74
> Alpha bliting (MMX): 354.74
> Alpha bliting (a, MMX): 286.03
обалдеть %)
> Голоса в голове нашептывают мне, что тип\частота памяти
> тут тоже имеют большое значение, но еще большее - размер
> кэша :) А еще отсутствие многопоточности, так что различия
> между Quad и Duo примерно соответствуют частотам.
в тесте там где не "draw scene" копируются области 512*512 в 32 бита на пиксель друг на друга (пиксели рандомом генерятся, для трудности :) ), это около 1Мб, вроде не так уж должна шина вылазить... ну и пока в один поток выполняется :)
← →
shlst (2008-07-09 12:32) [14]CPU: AMD Athlon(tm) 64 Processor 3000+
===================
Copy bliting: 552.38
Transparent bliting: 527.58
Opacity bliting (MMX): 401.41
Alpha bliting: 295.30
Alpha bliting (a): 272.46
Alpha bliting (MMX): 466.51
Alpha bliting (a, MMX): 412.27
Rotate: 169.79
Rotate opacity: 125.00
Rotate alpha: 125.05
Rotate alpha colorized: 125.45
Resize (proportional): 1660.78
Resize: 766.37
Draw Scene: bump maping: 94.46
Draw Scene: reflective + bump maping: 96.62
Draw Scene: sharpen: 21.60
← →
brother © (2008-07-09 12:46) [15]CPU: AMD Athlon(tm) 64 X2 Dual Core Processor 3600+
===================
Copy bliting: 1063.38
Transparent bliting: 980.40
Opacity bliting (MMX): 396.28
Alpha bliting: 294.91
Alpha bliting (a): 275.48
Alpha bliting (MMX): 481.46
Alpha bliting (a, MMX): 416.24
Rotate: 174.53
Rotate opacity: 125.58
Rotate alpha: 124.04
Rotate alpha colorized: 126.10
Resize (proportional): 2157.78
Resize: 1168.65
Draw Scene: bump maping: 118.39
Draw Scene: reflective + bump maping: 118.31
Draw Scene: sharpen: 22.48
← →
Sapersky (2008-07-09 13:30) [16]CPU: Intel(R) Celeron(R) CPU 2.80GHz
===================
Copy bliting: 1059.42
Transparent bliting: 966.98
Opacity bliting (MMX): 419.77
Alpha bliting: 153.31
Alpha bliting (a): 148.62
Alpha bliting (MMX): 529.60
Alpha bliting (a, MMX): 406.60
Rotate: 138.24
Rotate opacity: 96.27
Rotate alpha: 89.98
Rotate alpha colorized: 79.89
Resize (proportional): 940.04
Resize: 549.04
Draw Scene: bump maping: 134.03
Draw Scene: reflective + bump maping: 135.20
Draw Scene: sharpen: 32.08
Это в каких у.е., кстати?
← →
Юрий © (2008-07-09 13:34) [17]Ну что, Core 2 Duo всех натянул. :)
← →
brother © (2008-07-09 13:46) [18]> Ну что, Core 2 Duo всех натянул. :)
а видюху не учитываем?
← →
Юрий © (2008-07-09 13:50) [19]Так это как его, nvidia значит тоже натянула. :)
← →
Sapersky (2008-07-09 13:54) [20]Ну что, Core 2 Duo всех натянул. :)
Недавно тестировал масштабирование картинки с билиненой фильтрацией по 4-м точкам. Cel 2.8 (точнее, любой P4 около 3 Ггц) оказался быстрее всех CoreDuo (до 2.4 Ггц). Сам был сильно удивлён... всё ж таки могут старички, если им правильный код подсунуть...
а видюху не учитываем?
Автор страдает необъяснимой любовью к "канвасу" и видюху напрочь игнорирует :)
← →
antonn © (2008-07-09 13:58) [21]видяху не учитываем, все "вручную" :)
>
> Автор страдает необъяснимой любовью к "канвасу" и видюху
> напрочь игнорирует :)
каждый сходит с ума по своему :)
я бы уже 3dnow глянул, только у меня ни разу небыло еще Атлона, а в слепую как то не очень хорошо :)
← →
DVM © (2008-07-09 14:01) [22]CPU: AMD Athlon(tm) 64 X2 Dual Core Processor 4600+
===================
Copy bliting: 1372.43
Transparent bliting: 1282.39
Opacity bliting (MMX): 499.76
Alpha bliting: 354.03
Alpha bliting (a): 348.64
Alpha bliting (MMX): 610.27
Alpha bliting (a, MMX): 514.01
Rotate: 213.03
Rotate opacity: 153.75
Rotate alpha: 154.77
Rotate alpha colorized: 154.06
Resize (proportional): 2869.49
Resize: 1500.52
Draw Scene: bump maping: 145.66
Draw Scene: reflective + bump maping: 149.37
Draw Scene: sharpen: 28.08
← →
Sapersky (2008-07-09 14:24) [23]antonn © (09.07.08 13:58) [21]
Всё-таки, в чём измеряются результаты? Мб/c, что ли?
Может, поделюсь своим кодом, если он всё ещё быстрее (в прошлый раз был быстрее, особенно не-MMX). Чтоб не балдеть тебе каждый раз от результатов P4 :)
я бы уже 3dnow глянул
А зачем 3dnow для целочисленного кода? Скорее уж SSE2, там MMX "расширили" до 128 бит.
http://www.tommesani.com/SSE2MMX.html
Для P4 никакого выигрыша не даст, но для CoreDuo должно.
← →
antonn © (2008-07-09 14:33) [24]
> Всё-таки, в чём измеряются результаты? Мб/c, что ли?
fps :)
нехило так рисовать картинку с альфаканалом размерами 512*512 под тысячу раз в секунду :)
вот еще подшлифую бамп, там приведение типов осталось, которое и не нужно...
> (в прошлый раз был быстрее, особенно не-MMX)
а где та темка, я гляну. у меня только 32х битные битмапы (с альфой ессно).
← →
ketmar © (2008-07-09 14:41) [25]на. pIII/600, WINE 1.1.0
CPU:
===================
Copy bliting: 124.92
Transparent bliting: 74.96
Opacity bliting (MMX): 31.18
Alpha bliting: 42.03
Alpha bliting (a): 44.47
Alpha bliting (MMX): 43.22
Alpha bliting (a, MMX): 29.72
Rotate: 26.93
Rotate opacity: 20.45
Rotate alpha: 21.10
Rotate alpha colorized: 21.89
Resize (proportional): 151.28
Resize: 110.91
Draw Scene: bump maping: 14.35
Draw Scene: reflective + bump maping: 14.43
Draw Scene: sharpen: 4.26
зыж неплохо бы было кнопку «run all tests» приделать.
---
Do what thou wilt shall be the whole of the Law.
← →
Polevi (2008-07-09 14:47) [26]CPU: Intel(R) Celeron(R) D CPU 3.20GHz
===================
Copy bliting: 995.18
Transparent bliting: 991.82
Opacity bliting (MMX): 567.45
Alpha bliting: 179.10
Alpha bliting (a): 170.63
Alpha bliting (MMX): 583.92
Alpha bliting (a, MMX): 463.98
Rotate: 160.65
Rotate opacity: 113.41
Rotate alpha: 104.52
Rotate alpha colorized: 98.75
Resize (proportional): 1263.24
Resize: 633.94
Draw Scene: bump maping: 148.02
Draw Scene: reflective + bump maping: 150.34
Draw Scene: sharpen: 36.58
← →
antonn © (2008-07-09 14:52) [27]
> зыж неплохо бы было кнопку «run all tests» приделать.
действительно, было бы удобно, поэтому я ее туда и приделал :)
← →
ketmar © (2008-07-09 15:04) [28]>[27] antonn © (2008-07-09 14:52:00)
у меня по ссылке на .rar скачалось нечто, у которого «run test», и для «all» ничего не было. внимательно осмотрел — не увидел ни на форме, ни в меню.
---
All Your Base Are Belong to Us
← →
ketmar © (2008-07-09 15:04) [29]>[27] antonn © (2008-07-09 14:52:00)
собственно, меню вообще не увидел. %-)
---
Understanding is not required. Only obedience.
← →
DVM © (2008-07-09 15:09) [30]И в zip архиве и в rar архиве кнопка All Tests есть на формах. Просто надо использовать нормальную ОС для запуска, вероятно.
← →
ketmar © (2008-07-09 15:09) [31]>[30] DVM © (2008-07-09 15:09:00)
ну так и использовал нормальную, а не игрозапускалку. надо делать версии под нормальные ОС, вероятно.
---
Do what thou wilt shall be the whole of the Law.
← →
Zeqfreed © (2008-07-09 15:16) [32]CPU: Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz
===================
Copy bliting: 3635.20
Transparent bliting: 3090.02
Opacity bliting (MMX): 917.33
Alpha bliting: 939.67
Alpha bliting (a): 869.36
Alpha bliting (MMX): 1094.63
Alpha bliting (a, MMX): 771.08
Rotate: 316.98
Rotate opacity: 222.20
Rotate alpha: 233.04
Rotate alpha colorized: 246.58
Resize (proportional): 3431.64
Resize: 1821.51
Draw Scene: bump maping: 274.00
Draw Scene: reflective + bump maping: 261.88
Draw Scene: sharpen: 69.80
> ketmar © (09.07.08 15:09) [31]
Не нормальную ты использовал, значит.$ wine --version
wine-1.0
Есть все кнопочки, которые надо :)
← →
speller (2008-07-09 15:17) [33]Если еще актуально:
CPU: AMD Athlon(tm) 64 Processor 3000+ (слегка разогнан)
===================
Copy bliting: 1397.12
Transparent bliting: 1255.23
Opacity bliting (MMX): 385.49
Alpha bliting: 283.93
Alpha bliting (a): 271.27
Alpha bliting (MMX): 478.17
Alpha bliting (a, MMX): 410.73
Rotate: 178.74
Rotate opacity: 126.84
Rotate alpha: 126.24
Rotate alpha colorized: 126.71
Resize (proportional): 2576.12
Resize: 1306.18
Draw Scene: bump maping: 124.19
Draw Scene: reflective + bump maping: 122.51
Draw Scene: sharpen: 22.34
← →
Zeqfreed © (2008-07-09 15:18) [34]> antonn © (09.07.08 01:23) [0]
Ты бы лучше сделал кнопку Upload results (с возможностью ручного заполнения типа процессора) и обрабатывал бы их автоматически на сайте.
← →
Renegat (2008-07-09 15:24) [35]CPU: Celeron 2400
===================
Copy bliting: 618.19
Transparent bliting: 620.25
Opacity bliting (MMX): 411.16
Alpha bliting: 83.16
Alpha bliting (a): 80.39
Alpha bliting (MMX): 328.90
Alpha bliting (a, MMX): 265.19
Rotate: 36.51
Rotate opacity: 25.33
Rotate alpha: 20.95
Rotate alpha colorized: 20.64
Resize (proportional): 925.73
Resize: 528.46
Draw Scene: bump maping: 75.81
Draw Scene: reflective + bump maping: 84.52
Draw Scene: sharpen: 22.15
← →
wl © (2008-07-09 15:29) [36]CPU: Intel(R) Celeron(R) CPU 2.00GHz
===================
Copy bliting: 365.81
Transparent bliting: 365.99
Opacity bliting (MMX): 325.99
Alpha bliting: 75.04
Alpha bliting (a): 72.82
Alpha bliting (MMX): 303.00
Alpha bliting (a, MMX): 236.05
Rotate: 57.24
Rotate opacity: 34.37
Rotate alpha: 26.12
Rotate alpha colorized: 26.16
Resize (proportional): 835.02
Resize: 458.69
Draw Scene: bump maping: 62.33
Draw Scene: reflective + bump maping: 66.82
Draw Scene: sharpen: 19.52
← →
antonn © (2008-07-09 15:29) [37]
> Ты бы лучше сделал кнопку Upload results (с возможностью
> ручного заполнения типа процессора) и обрабатывал бы их
> автоматически на сайте.
я бы не стал доверять неизвестной программе отправлять результаты в инет, думаю я не один такой :)
> Alpha bliting: 83.16
> Alpha bliting (a): 80.39
> Alpha bliting (MMX): 328.90
> Alpha bliting (a, MMX): 265.19
о боже.. :)
как жаль, что так рано появились аппаратные видеоконтроллеры, может если чуть позже, то появилась бы MMX2, работало бы еще быстрее %)
← →
GrayFace © (2008-07-09 15:33) [38]> Sapersky (09.07.08 13:54) [20]
> Недавно тестировал масштабирование
> картинки с билиненой фильтрацией по 4-м точкам. Cel 2.8
> (точнее, любой P4 около 3 Ггц) оказался быстрее всех CoreDuo
> (до 2.4 Ггц). Сам был сильно удивлён... всё ж таки могут
> старички, если им правильный код подсунуть...
Ага, если код с потоками не дружит :)
← →
ketmar © (2008-07-09 15:33) [39]>[32] Zeqfreed © (2008-07-09 15:16:00)
>Есть все кнопочки, которые надо :)
значит, я как обычно вне майнстрима. %-)
---
Understanding is not required. Only obedience.
← →
ketmar © (2008-07-09 15:33) [40]>[39] ketmar © (2008-07-09 15:33:00)
алсо, у меня svn 1.1 %-)
---
All Your Base Are Belong to Us
← →
ketmar © (2008-07-09 15:37) [41]>[37] antonn © (2008-07-09 15:29:00)
вообще-то у меня проц держит SSE и MMX2. а если аффтар ниасилил… бывает. %-)
---
All Your Base Are Belong to Us
← →
antonn © (2008-07-09 15:38) [42]кстати, падение производительности м/у "Alpha bliting (MMX)" и "Alpha bliting (a, MMX)" большой из-за того, что после вывода в регистр результа
movd eax, mm0 //в еах dword-пиксель
последний четвертый байт (альфа) вычисляется "отдельно":rol eax, 8
mov bl, byte ptr [esi+3]
cmp bl,al
jb @set_al
mov al, bl
@set_al:
ror eax, 8
как приделать это действие в ММХ - хз, сломал голову, "сравнение" в регистрах ММХ не осилил (в альфу кладется бОльшее значение из двух битмапов).
а "Alpha bliting (MMX)" этот шаг пропускает, он конечную альфу не пересчитывает. А для интерфейса выводимого через updatelayerdwindow() не очень подходит такой вариант...
← →
Zeqfreed © (2008-07-09 15:39) [43]> ketmar © (09.07.08 15:33) [40]
Я когда хотел ставить 1.1 у меня был сломанный компилятор, а потом я уже расхотел :)
> antonn © (09.07.08 15:29) [37]
А запускать неизвестную программу это ничего? :)
← →
antonn © (2008-07-09 15:41) [44]
> А запускать неизвестную программу это ничего? :)
ну... запускать - не в инет неизвестно кому передавать неизвестно что :)
тогда нужно запускать на виртуальной машине! %)
← →
shlst (2008-07-09 15:44) [45]Антон, чего там с нашими цифрами, помогают? :)
← →
Zeqfreed © (2008-07-09 15:45) [46]> antonn © (09.07.08 15:41) [44]
Тогда могу предложить сделать страничку куда надо будет отправлять текстовый файл, который бы создавала программа :)
← →
ketmar © (2008-07-09 15:49) [47]>[42] antonn © (2008-07-09 15:38:00)
>jb @set_al
хинт ему не пробовал ставить?
---
Understanding is not required. Only obedience.
← →
antonn © (2008-07-09 15:54) [48]
> Антон, чего там с нашими цифрами, помогают? :)
я разочарован в атлонах, все больше :)
думаю бросить нафиг "не-ММХ" :)
хотя в общем то получается довольно шустрые функции
> Zeqfreed © (09.07.08 15:45) [46]
угу, и график еще по ним строить :)
← →
Zeqfreed © (2008-07-09 15:59) [49]> antonn © (09.07.08 15:54) [48]
Без графиков никуда, тогда те, кто заслал результаты, будут видеть, что их труды не пропадают даром ;)
← →
ketmar © (2008-07-09 16:02) [50]>[49] Zeqfreed © (2008-07-09 15:59:00)
причём вполне можно строить график рандомом, всё равно никто проверять не будет. %-)
---
Understanding is not required. Only obedience.
← →
antonn © (2008-07-09 16:03) [51]
> причём вполне можно строить график рандомом, всё равно никто
> проверять не будет. %-)
>
да мне надо было не сами значения результатов, а падение производительности м/у разными тестами
← →
Sapersky (2008-07-09 16:07) [52]нехило так рисовать картинку с альфаканалом размерами 512*512 под тысячу раз в секунду :)
Помнится, автор SpriteUtils при создании софтверного рендера упёрся в невозможность синхронизации вывода на экран с вертикальной развёрткой. В быстрых скроллерах артефакты от несинхронного вывода оказались сильно заметны. Пришлось ему изобретать какую-то гибридную с DDraw схему, не помню, насколько хорошо она работала.
а где та темка, я гляну.
http://sapersky.narod.ru/files/antonn_graphics.rar
Впрочем, что-то я засомневался в правильности работы своих функций.
Похоже, что обычная формула блендинга:
ia := (255 - a);
dc.b := (sc.b * a + dc.b * ia) shr 8;
dc.g := (sc.g * a + dc.g * ia) shr 8;
dc.r := (sc.r * a + dc.r * ia) shr 8;
даёт не вполне корректный результат (макс. 255 * 255 / 256 = 254).
Заметно, если не проверять if (a <> 0)... А проверять в MMX-варианте нежелательно, на "плохих" данных это сильно его тормозит.
появилась бы MMX2, работало бы еще быстрее
оно таки появилось, см. [23]
Ага, если код с потоками не дружит :)
Где-то читал, что у CoreDuo "производительность на Мгц" должна быть почти в 2 раза выше чем у P4, и вроде бы исключительно в силу архитектуры, без учёта двухъядерности. Хотя, может, и с учётом, не помню точно.
← →
atruhin1 (2008-07-09 16:16) [53]CPU: AMD Athlon(tm) 64 X2 Dual Core Processor 5600+
===================
Copy bliting: -40388.85
Transparent bliting: 1593.33
Opacity bliting (MMX): 616.19
Alpha bliting: 433.86
Alpha bliting (a): 414.19
Alpha bliting (MMX): 759.74
Alpha bliting (a, MMX): 627.18
Rotate: 253.91
Rotate opacity: 184.24
Rotate alpha: 181.69
Rotate alpha colorized: 184.18
Resize (proportional): 3614.52
Resize: 1843.23
Draw Scene: bump maping: 189.11
Draw Scene: reflective + bump maping: 171.59
Draw Scene: sharpen: 34.26
← →
antonn © (2008-07-09 16:45) [54]
> Помнится, автор SpriteUtils при создании софтверного рендера
> упёрся в невозможность синхронизации вывода на экран с вертикальной
> развёрткой. В быстрых скроллерах артефакты от несинхронного
> вывода оказались сильно заметны. Пришлось ему изобретать
> какую-то гибридную с DDraw схему, не помню, насколько хорошо
> она работала.
угу, знаем, именно его код и был сильно замучен и изучен :) у него, имхо, гораздо более понятно сделано, чем FastLib. Но я то не собираюсь выводить 1000 кадров, я обычно ограничиваю вывод 30ю кадрами, будет "пустое время" - пусть проц отдохнет, мне не жалко :)
← →
Test (2008-07-09 17:00) [55]CPU: AMD Athlon(tm) 64 X2 Dual Core Processor 4400+
===================
Copy bliting: 1345.70
Transparent bliting: 1215.26
Opacity bliting (MMX): 530.81
Alpha bliting: 391.63
Alpha bliting (a): 370.30
Alpha bliting (MMX): 652.69
Alpha bliting (a, MMX): 547.04
Rotate: 228.70
Rotate opacity: 168.08
Rotate alpha: 164.76
Rotate alpha colorized: 166.16
Resize (proportional): 2988.96
Resize: 1528.59
Draw Scene: bump maping: 157.81
Draw Scene: reflective + bump maping: 158.64
Draw Scene: sharpen: 30.11
← →
Sapersky (2008-07-09 17:20) [56]у него, имхо, гораздо более понятно сделано, чем FastLib.
Ага, почти чистый asm.
Кажется, что это очень круто, но на самом деле - жутко неудобно. Сам же автор как-то жаловался о сложности переделки 16-битного кода с формата 5-5-5 на 5-6-5. Да и скорости не-MMX asm вовсе не гарантирует. Компилятор, он на самом деле тоже неплохо asm знает, получше многих программистов.
У меня не-MMX вариант альфа-блендинга именно на Паскале, и он уступает MMX максимум в 1.5 раза, а не в 3.
MMX содран с той же SpriteUtils, за исключением использования pshufw (enhanced MMX) для размножения альфы.
Похоже, что обычная формула блендинга даёт не вполне корректный результат. Заметно, если не проверять if (a <> 0)...
Вру, в обычных условиях ничего не заметно. Это я пытался получить корректную картинку, прогнав 100 циклов блендинга :)
Результаты в fps у меня такие:
без проверки альфы на 0 (if a <> 0):
non-MMX 491
eMMX (SSE) 640
c проверкой, "плохие" данные (Random(255)):
non-MMX 319
eMMX (SSE) 340
c проверкой, "хорошие" данные (из набора png-иконок Висты):
non-MMX 875
eMMX (SSE) 1072
← →
Sapersky (2008-07-09 17:52) [57]Код (для FastLIB):
procedure xLine_DrawAlpha32_SSE(Src, Dst : Pointer; Count : Integer);
Const
Mask : Int64 = $000000FF00FF00FF;
asm
push esi
mov esi, eax
lea eax, [Mask]
db $0F,$6F,$28 /// movq mm5, [eax] // mm5 - $0000.00FF|00FF.00FF
db $0F,$EF,$FF /// pxor mm7, mm7 // mm7 = 0
@inner_loop:
{
mov eax, [esi]
test eax, $FF000000
jz @noblend
}
// testing the case when alpha = 0
db $0F,$6E,$06 /// movd mm0, [esi]
db $0F,$6E,$0A /// movd mm1, [edx]
db $0F,$60,$C7 /// punpcklbw mm0, mm7 // mm0 - src
db $0F,$60,$CF /// punpcklbw mm1, mm7 // mm1 - dst
db $0F,$70,$F0,$FF /// pshufw mm6, mm0, 255 // mm6 - src alpha
// db $0F,$DB,$F5 /// pand mm6, mm5
// clear alpha component of mm6 - can be skipped if not needed
db $0F,$D5,$C6 /// pmullw mm0, mm6
db $0F,$EF,$F5 /// pxor mm6, mm5
db $0F,$D5,$CE /// pmullw mm1, mm6
db $0F,$FD,$C1 /// paddw mm0, mm1
db $0F,$71,$D0,$08 /// psrlw mm0, 8
db $0F,$67,$C7 /// packuswb mm0, mm7
db $0F,$7E,$02 /// movd [edx], mm0
@noblend:
add esi, 4
add edx, 4
dec ecx
jnz @inner_loop
db $0F,$77 /// emms
pop esi
end;
procedure FDIB_DrawAlpha(Src, Dst : TFastDIB; dx, dy : Integer);
Type
TMMXAlphaProc = procedure (Src, Dst : Pointer; Count : Integer);
var
x, y, a, ia: Integer;
sc, dc: PFColorA;
MMXProc : TMMXAlphaProc;
begin
MMXProc := nil;
With CPUInfo do
If (cfSSE in Features) then MMXProc := xLine_DrawAlpha32_SSE;
else If (cfMMX in Features) then MMXProc := xLine_DrawAlpha32_MMX;
// строго говоря, для eMMX не обязательно наличие SSE (напр. 1-е Athlon)
// но как это проверить - я не в курсе
// xLine_DrawAlpha32_MMX - копия SpriteUtils, ничего интересного
for y:=0 to Src.AbsHeight-1 do begin
sc := Src.Scanlines[y];
dc := Dst.Scanlines[y + dy]; Inc(dc, dx);
If Assigned(MMXProc) then MMXProc(sc, dc, Src.Width) else
For x:=0 to Src.Width-1 do begin
a := sc.a;
// If (a <> 0) then
begin
ia := (255 - a);
dc.b := (sc.b * a + dc.b * ia) shr 8;
dc.g := (sc.g * a + dc.g * ia) shr 8;
dc.r := (sc.r * a + dc.r * ia) shr 8;
end;
Inc(sc); Inc(dc);
end;
end;
end;
как приделать это действие в ММХ - хз, сломал голову, "сравнение" в регистрах ММХ не осилил (в альфу кладется бОльшее значение из двух битмапов).
Вроде советовал уже PMAXSW или PMAXUB из того же eMMX:
http://www.tommesani.com/SSEPrimer.html
← →
VICTOR_ (2008-07-09 18:19) [58]CPU: AMD Phenom(tm) 9600 Quad-Core Processor
===================
Copy bliting: 1687.00
Transparent bliting: 1193.45
Opacity bliting (MMX): 337.92
Alpha bliting: 185.71
Alpha bliting (a): 172.05
Alpha bliting (MMX): 370.34
Alpha bliting (a, MMX): 307.02
Rotate: 119.41
Rotate opacity: 84.55
Rotate alpha: 75.90
Rotate alpha colorized: 73.98
Resize (proportional): 1708.90
Resize: 906.75
Draw Scene: bump maping: 110.16
Draw Scene: reflective + bump maping: 106.15
Draw Scene: sharpen: 18.22
CPU: AMD Processor model unknown
===================
Copy bliting: 626.99
Transparent bliting: 1310.91
Opacity bliting (MMX): 635.61
Alpha bliting: 446.81
Alpha bliting (a): 426.19
Alpha bliting (MMX): 764.92
Alpha bliting (a, MMX): 654.96
Rotate: 260.34
Rotate opacity: 189.42
Rotate alpha: 190.01
Rotate alpha colorized: 188.68
Resize (proportional): 3343.31
Resize: 1677.34
Draw Scene: bump maping: 175.83
Draw Scene: reflective + bump maping: 179.48
Draw Scene: sharpen: 35.00
← →
VICTOR_ (2008-07-09 18:24) [59]1. AMD Phenom 9600 Quad-Core Processor, 2310 MHz
2. DualCore AMD Athlon 64 X2, 3090 MHz
← →
DeadMeat © (2008-07-09 19:06) [60]CPU: AMD Turion(tm) 64 X2 Mobile Technology TL-58
===================
Copy bliting: 476.85
Transparent bliting: 443.16
Opacity bliting (MMX): 164.20
Alpha bliting: 120.38
Alpha bliting (a): 114.01
Alpha bliting (MMX): 196.23
Alpha bliting (a, MMX): 168.42
Rotate: 73.17
Rotate opacity: 52.32
Rotate alpha: 52.07
Rotate alpha colorized: 51.99
Resize (proportional): 961.41
Resize: 513.23
Draw Scene: bump maping: 52.59
Draw Scene: reflective + bump maping: 52.33
Draw Scene: sharpen: 9.40
Ноут под вистой (не SP1) на автономном питании (на батарейке в смысле... он на ней медленней работает).
← →
Омлет (2008-07-09 19:26) [61]CPU: AMD Athlon(tm) 64 Processor 3500+
===================
Copy bliting: 981.39
Transparent bliting: 1023.83
Opacity bliting (MMX): 458.88
Alpha bliting: 336.06
Alpha bliting (a): 318.09
Alpha bliting (MMX): 556.32
Alpha bliting (a, MMX): 472.95
Rotate: 196.52
Rotate opacity: 139.50
Rotate alpha: 137.84
Rotate alpha colorized: 140.97
Resize (proportional): 2364.92
Resize: 1268.21
Draw Scene: bump maping: 128.39
Draw Scene: reflective + bump maping: 133.27
Draw Scene: sharpen: 25.52
← →
X9 © (2008-07-09 19:35) [62]CPU: AMD Athlon(tm) 64 Processor 3200+
===================
Copy bliting: 1006.32
Transparent bliting: 1030.74
Opacity bliting (MMX): 415.58
Alpha bliting: 307.81
Alpha bliting (a): 291.00
Alpha bliting (MMX): 508.92
Alpha bliting (a, MMX): 437.28
Rotate: 186.06
Rotate opacity: 130.85
Rotate alpha: 132.72
Rotate alpha colorized: 130.65
Resize (proportional): 2424.97
Resize: 1227.17
Draw Scene: bump maping: 125.97
Draw Scene: reflective + bump maping: 125.73
Draw Scene: sharpen: 23.56
← →
X9 © (2008-07-09 19:43) [63]> [48] antonn © (09.07.08 15:54)
> я разочарован в атлонах, все больше :)
> думаю бросить нафиг "не-ММХ" :)
А чего это вы в них разочарованы? Вон мой 2,0ГГц обгоняет Intel(R) Pentium(R) 4 CPU 2.40GHz. Не у всех пока ещё Коры имеются, нужно писать под то, что есть.
← →
Sapersky (2008-07-09 20:16) [64]CPU: AMD Athlon(tm) 64 X2 Dual Core Processor 5600+
===================
Copy bliting: -40388.85
От подобных "заскоков" должно помогать такое:
procedure QueryPerformanceCounter(Var Cnt : Int64);
Var Thread, OldMask : DWord;
begin
// force the thread to CPU 0 for multi-core CPU
Thread := GetCurrentThread; OldMask := SetThreadAffinityMask(Thread, 1);
// update counter frequency for CPUs with variable clock rate (Athlon64, Pentium M)
QueryPerformanceFrequency(PCFreq);
Windows.QueryPerformanceCounter(Cnt);
// restore threads
SetThreadAffinityMask(Thread, OldMask)
end;
← →
antonn © (2008-07-09 20:20) [65]странно, у меня в одном потоке все выполняется...
← →
Sapersky (2008-07-09 20:39) [66]Планировщик может перебросить поток на другое ядро, а там другое значение счётчика.
http://channel9.msdn.com/forums/TechOff/152339-QueryPerformanceCounter-AthlonX2/
← →
AFHU (2008-07-09 21:20) [67]
> странно, у меня в одном потоке все выполняется...
Не этот ли фактор повлиял на крайне слабую точность измерений?
Всего пара минут сидения с прижатым Enterом и вот такие результаты:
CPU: Intel(R) Core(TM)2 Quad CPU @ 2.40GHz
===================
Copy bliting: 5659.00
Transparent bliting: 5727.09
Opacity bliting (MMX): 1032.25
Alpha bliting: 1088.18
Alpha bliting (a): 980.68
Alpha bliting (MMX): 1252.82
...
Советую сравнить с [1]
И для многоядерных процессоров всё-таки лучше предусмотреть выполнение в несколько потоков. А тут же на деле получается не ускорение, а торможение.
← →
boa_kaa © (2008-07-09 22:04) [68]CPU: AMD Athlon(tm) XP 1700+
===================
Copy bliting: 358.36
Transparent bliting: 313.92
Opacity bliting (MMX): 259.23
Alpha bliting: 151.46
Alpha bliting (a): 139.78
Alpha bliting (MMX): 262.14
Alpha bliting (a, MMX): 242.60
Rotate: 112.71
Rotate opacity: 68.09
Rotate alpha: 67.48
Rotate alpha colorized: 68.79
Resize (proportional): 757.57
Resize: 434.14
Draw Scene: bump maping: 59.83
Draw Scene: reflective + bump maping: 59.10
Draw Scene: sharpen: 14.64
← →
Sapersky (2008-07-09 23:18) [69]Всего пара минут сидения с прижатым Enterом и вот такие результаты:
Ну от параллельно выполняемых задач "поплывут" результаты на любом процессоре, хотя на двухъядернике они должны плыть меньше. Может быть, особенности QPC на AthlonX2 влияют.
Бороться с этим следует заданием высокого приоритета процессу/потоку, а не созданием дополнительных потоков.
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];
Память: 0.67 MB
Время: 0.044 c