Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.19;
Скачать: CL | DM;

Вниз

Как использовать MMX SSE . . .   Найти похожие ветки 

 
Hek   (2003-06-04 23:46) [0]

У меня есть процедура смешивания двух текстур.
Надобы ее заоптимизировать. Есть ли какие опции компилятора или утилки какие что-бы Delphi мне под MMX ее заоптимизировала.
Вот кусок
for j:=jmin to jmax do begin
y:=Round( (j-jk)*lj_ );
for i:=imin to imax do
begin
x:=Round( (i-ik)*li_ );
m:=Map[x,y]*blend;
ofs:=i + j shl k;
r:=Data[ofs].R + m*Color.r shr 16;
g:=Data[ofs].G + m*Color.g shr 16;
b:=Data[ofs].B + m*Color.b shr 16;
if r>255 then r:=255;
if g>255 then g:=255;
if b>255 then b:=255;
Data[ofs].R:=r;
Data[ofs].G:=g;
Data[ofs].B:=b;
end;
end;

По идеи тут три операции можно за один такт сделать.


 
Vulko ©   (2003-06-05 06:44) [1]


> Delphi мне под MMX ее заоптимизировала

Именно под ММХ? :)
Вообще-то не понимаю при чем тут MMX SSE?
Это же набор инструкций процессора. Тогда тебе надо в Дельфи делать асм вставки.

И зачем теб вот это ofs:=i + j shl k;?


 
Hek   (2003-06-05 13:10) [2]

Data - двумерный массив [0..x-1,0..y-1] где x, y всегда числа равные степени двойки. Значит смещение в массиве вычисляется как i+j*x. А умножение на степень двойки можно заменить побитовым сдвигом. Тогда k=log2(x); i + j shl k

А на счет оптимизации под MMX то для C есть копилятор IntelC там ключ при компиляции указываешь и копилятор использует MMX/SSE инструкции. А MMX как раз дает выйгрыш при обработки больших однотипных данных. Тут по идее можно сразу для RGB считать за инструкцию


 
VMcL ©   (2003-06-05 14:43) [3]

>Hek (05.06.03 13:10)

В Delphi таких опций компилятора (пока) нет. Нужно писать самому на asm или юзать какие-либо библиотеки (*.pas, *.obj, *.dll).



Страницы: 1 вся ветка

Текущий архив: 2003.06.19;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
9-60012
Карлсон
2003-01-12 00:13
2003.06.19
DXInput


14-60364
Zigs
2003-06-02 16:46
2003.06.19
Есть ли кого-нить модуль экспорта отчета QReport в Excel?


8-60276
Gratch
2003-03-04 23:20
2003.06.19
x-files & DelphiX, Please help...


14-60336
Дмитрий К.К.
2003-06-02 05:56
2003.06.19
Именинники 2 июня


1-60254
alexus
2003-06-05 17:04
2003.06.19
Интерактивное добавление компонентов на форму