Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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.66 MB
Время: 0.041 c
6-1192218336
prisoner849
2007-10-12 23:45
2008.08.24
IdHTTP и Post в Indy 10 (BDS 2006)


2-1216556223
MixPix
2008-07-20 16:17
2008.08.24
вставить TTreeNode в дерево


2-1216645839
antonn
2008-07-21 17:10
2008.08.24
назначить процедуру в событии...


15-1215454118
@!!ex
2008-07-07 22:08
2008.08.24
Запуск колладйера отложили?


15-1215076787
Сергей_77
2008-07-03 13:19
2008.08.24
Поиск работы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский