Главная страница
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.041 c
14-60355
Странник
2003-05-30 11:05
2003.06.19
Вулфовиц: Уничтожение ОМУ не было основной целью США в Ираке


1-60181
Jimal
2003-06-05 08:07
2003.06.19
CopyFile


3-60093
Илайдж
2003-05-29 07:53
2003.06.19
При добавлении в поле базы строки размером > 255


7-60449
dlph
2003-04-15 11:31
2003.06.19
что рисуется на Canvas?


3-60034
vantage10
2003-05-25 18:44
2003.06.19
SQL запрос, бд-MS Access, по дате