AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Alphablending mit MMX / SSE Befehle
Thema durchsuchen
Ansicht
Themen-Optionen

Alphablending mit MMX / SSE Befehle

Ein Thema von schty · begonnen am 13. Dez 2003 · letzter Beitrag vom 2. Jun 2005
Antwort Antwort
schty

Registriert seit: 13. Dez 2003
5 Beiträge
 
Delphi 6 Personal
 
#1

Re: Alphablending mit MMX / SSE Befehle

  Alt 13. Dez 2003, 16:55
Was die absolute Geschwindigkeit angeht, zum Vergleich mit deiner Code, kann ich noch keine genaue Aussagen machen, dafuer fehlt mir noch ein Testprogramm.... ich bin etwas unsicher ueber die Instruction Pairing und SSE Optimierungen usw., ich bin keine Experte. z.B. laut Intel sollte man mit PSHUFW (SSE) gegenueber nur MMX-Befehle 2 Befehle einsparen koennen, ich habe aber nur einer eingespart:

Delphi-Quellcode:
 
// mit PSHUFW (SSE):
 MOVD MM3, ECX
// MM3 = 00 00 00 00 00 00 00 AA 32 BITS -> 64 BITS Alpha
 PSHUFW MM3, MM3, 0
// MM3 = 00 AA 00 AA 00 AA 00 AA

// in MMX sieht das so aus:
 MOVD MM3, ECX
 PUNPCKLWD MM3, MM3
 PUNPCKLQD MM3, MM3

// Was ich eigentlich will ist alles in 1 Befehl, aber das habe ich mit Delphi nicht geschaft:
  PSHUFW MM3, [ECX], 0
// Das geht so nicht, weil mann muss 64 bits (aligned?) uebertragen....
Nun, relativ gesehen bin ich doch um die 50% schneller (auch abhaengig vom Linienlaenge) als der "Graphics32-MMX-Referenz", das hat teilweise aber auch mit der Loop-optimierung zu tun.

Ah, du hast recht. Der Faktor 256 ist nicht im Formel aufgelistet, sondern wird im Code mit den PSSLW (x256) und PSRLW (/256) Befehle geloest. Ich muss sagen dass die Ergebnisse kwalitativ doch ziemlich gut sein koennen, abhaengig vom Anruf.

Im Attachment n' schlechter GIF (in wirklichkeit arbeitet das Programm Bildfehlerfrei) von einem 4xAA Beispiel, also fuer jeden "Punkt" wird "Alphablend" 4x angerufen, vergleichbar mit "DrawLineFS in Graphics32").

Arjan
Angehängte Grafiken
Dateityp: gif alphablend_example.gif (92,0 KB, 102x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz