Full Screen Antialiasing

Full Screen Antialiasing (FSAA) ist ein Feature welches von modernen GPU’s (Graphic Processor Units) angeboten wird. Es wird von OpenGL (auf Windows auch Direct 3D) Applikationen angesprochen.

Im Zuge von Einbrüchen der Frameraten von OpenGL Programmen auf KDE 4.2 Desktops hatte ich mir Antialiasing (AA) mal genauer angeschaut.

nVIDIA AA Settings

Es gibt prinzipiell 3 Möglichkeiten, welches FSAA zum Einsatz kommt.

  1. Das Programm setzt AA. Im OpenGL Kontext erfolgt dies durch glEnable Methoden (Parameter sind bspw.: GL_POLYGON_SMOOTH, GL_MULTISAMPLE…) oder durch ARB Erweiterungen, z.B.  GL_NV_framebuffer_multisample_coverage
  2. Eine Umgebungsvariable setzt AA: __GL_FSAA_MODE
  3. Die Steuerzentrale des Grafiktreibers (oben: nvidia-settings) steuert das AA Verhalten,wobei zuerst ausgewählt werden kann ob die Programmseitige Einstellungen überschrieben, unberührt bleiben oder „ergänzt“ werden soll (nicht unter Mac OS X verfügbar)

Auf einer nVIDIA 8600M GT GPU, sind bspw. folgende __GL_FSAA_MODE Werte zulässig:

    Names for valid 'FSAA' values:
       0 - Off
       1 - 2x (2xMS)
       5 - 4x (4xMS)
       7 - 8x (4xMS, 4xCS)
       8 - 16x (4xMS, 12xCS)
       9 - 8x (4xSS, 2xMS)
      10 - 8x (8xMS)
      12 - 16x (8xMS, 8xCS)

Die verschiedenen Techniken von AA sind:

  • Supersampling (SS)
  • Multisampling (MS)
  • Coverage Sampling (CS, nVIDIA Erweiterung)
  • Alpha Blending

Die Verwendung von AA benötigt aber nicht nur mehr Rechenleistung sondern auch mehr Video Speicher (VRAM), da einfache Pixels nun genauer (x-fach) aufgelöst werden.

Den Effekt sieht man schön bei eine Benchmark der Phoronix-Test-Suite – glmark

Verschiede AA Einstellungen 1440 x 900 px

Neben dem offensichtlichen Unterschied der Frameraten zwischen dem Benchmark auf IceWM und KDE 4.2 sieht man schön den Performanceabfall, bei höherwertigen AA Einstellungen.

Interessant wird es wenn der gleiche Benchmark auf dem gleichen System mit höherer Auflösung (jetzt: 1680 x 1050 px.) gefahren wird.

Verschiede AA Einstellungen 1680 x 1050 px

Auf einmal bricht die Framerate schon beim Übergang von 2fach Multisampling zu 4MS ab. Ein eindeutiger Hinweis, dass der originäre Videospeicher nicht mehr reichte und der Grafiktreiber auf das herkömmliche RAM ausweichen musste, wass deutliche Latenz ins Spiel brachte.

Der Ausreisser unter KDE 4.2, bei dem die höchste Performance bei bester AA Einstellung suggeriert wird, ist darauf zurückzuführen, dass der KDE Windowmanager (kwin) wegen Überlastung, eine eigene Einstellung von AA wählte und die Einstellung von nvidia-settings überschrieb.

Monitorkalibrierung

Bei extensiver RAW Verarbeitung von Fotos auf mehreren Rechnern lohnt es sich schon mal über eine Kalibrierung der Monitore nachzudenken.

Bei mir blieb es dann nicht beim Nachdenken – ich kaufte das X-Rite Eye-One Display II, welches native Mac OS X Software mitbringt und auf Linux mittels Argyll ohne Probleme angesteuert werden kann.

Die Prozedur besteht aus einer Monitorkalibrierung und der Profilerstellung die in einer .icc Datei mündet, die in die Video LUT (LookupTable) eingeladen wird und die Kalibrierung sofort sichtbar macht. Anwendungsprogramme müssen das Profil der .icc Datei auswerten.

Bei der Kalibrierung kann man entweder Zielvorgaben machen – Weißpunkt,Gammawert,Helligkeit – oder die nativen Werte des Monitors nehmen. Bei der Mac OS X Software heisst dass dann Basis- oder Erweiterer Modus.

Profilerstellung

Bei Argyll überspringt man beim interaktiven dispcal Befehl einfach den Menüpunkt mit der manuellen Kalibrierung.

Die Liste der Argyll-Befehle (alle im bin Verzeichnis des Argyll Paketes) lautet (root permission notwendig):

 dispcal -yl -qh monitor
 targen -v -d3 -f500 monitor
 dispread -v -yl -k monitor.cal monitor
 colprof -v -D"monitor" -qh -al monitor

Danach sollte man eine Datei namens monitor.icc haben. Diese muss man einmalig mit

dispwin -I monitor.icc

in den Video LUT installieren. Danach muss man bei jedem session start (z.B. KDE4 Autostart)

dispwin -L

angeben, so dass die Kalibrierung eingeladen (und damit dargestellt) wird.

Glänzender Niedergang

Mit der Einführung der MacBook Pro’s im Oktober stellt Apple nun konsequent seine Monitore auf sog. Glare-Type Displays mit Glasabdeckung um. Erschreckend neu ist zudem die Tatsache, dass man als Kunde keine Wahlmöglichkeit mehr zwischen den neuen Glare und den bisherigen matten Displays hat.
Der Vorteil des Glare Diplays liegt in der brilianteren Darstellung von Schwarz verbunden mit der Erhöhung des Kontrastes. Allerdings kommen öfters – und wahrscheinlich auch bei Apple – sog. TN Displays zum Einsatz, die selbst mit dem erhöhtem Kontrastumfang den besseren IPS– und VA-Panels in diesem Punkt unterlegen sind.
Der entscheidende Nachteil sind aber die Reflektionen die bei den Glare-Type Displays – oder Glossy wie Apple es nennt – besonders stark bei Lichteinfall von hinten oder Punktlichtquellen zutage treten. Dabei ist der Hinweis, dass man den Arbeitsplatz nach Möglichkeit anpassen sollte ein schlechter Witz. Blanker Hohn ist der oft zitierte Satz, dass Gamer wohl keine Probleme mit dem Gerät haben, da diese in abgedunkelten Räumen ihre Augen sowieso zugrunderichten. Dass die Reflektionsproblematik keine Geschmackssache ist, zeigt die Norm ISO 9241-7 (Ergonomische Anforderungen für Bürotätigkeiten mit Bildschirmgeräten), die Glare-Type-Displays als ungeeignet für Büroarbeiten klassifiziert.
Da allerdings privates Arbeiten zuhause nicht schlechter gestellt werden sollte und Lichteinfälle ausser Haus bei Laptoparbeiten noch schlechter zu kontrollieren sind bleibt als einzigste Erkenntnis diejeniege, dass die von Apple propagierten Displays nicht alltagstauglich sind. Die Probleme welche Profis mit diesem Typ von Monitor haben (Farbkalibrierung) kamen dabei noch gar nicht zur Sprache.

Die Entscheidung nur noch Glare-Type (Glossy) Displays einzusetzen stellt nach meiner Überzeugung nicht nur einen Rückschritt in der Technologie dar – es manifestiert eher eine gewaltige Fehlentscheidung kombiniert mit wiederkehrendem Größenwahn von Apple.

Zwar stellt Apple immer noch herrausragende Hardware her, als Kunde gibt es dennoch Alternativen. Zudem gibt es glücklicherweise noch Apple Hardware ohne Monitore und nicht zuletzt stirbt die Hoffnung, dass in dieser Sache das letzte Wort noch nicht gesprochen ist.

iTunes 7.7 Debakel

Seit iTunes 7.7 gibt es bei mehreren Usern allerhand Probleme, bspw. mit Umlauten in Liedern usw.

Ich selber kann mit dem Programm gar nichts mehr anfangen.

  •  die bestehende Library bringt iTunes zum hängen
  • eine neue Library erkennt nur noch einen Teil der Lieder
  • Zeitweise werden auch diese Lieder von iTunes als nichtauffindbar deklariert (liegen auf Netzwerkserver)
  • CD’s abspielen klappt nicht immer, wenn die Frage  nach Importieren verneint wird.

Alles in allem ist dieses Update das schlimmste, welches je über die Apple Update  Verwaltung eingespielt wurde, die eingeschobene Version 7.7.1 verbessert den Zustand allerdings – wenn auch nicht 100% zufriedenstellend. Es scheint so als ob das neue iPhone 2.0 Apple’s Softwarequalität momentan nachteilig beeinflusst.

nvidia-settings und die Memory Anzeige

Auf einem MacBook Pro mit einer NVidia 8600M GT Karte die über 128MB VRAM verfügt zeigt das Linux Tool seltsamerweise immer 512MB an.

Auf der  NVIDIA 8600 Tech-Specs Seite kann man auch den Grund erfahren. Es handelt sich hierbei um NVIDIA® TurboCache™ Technology

Hierbei wird dem dezidiertem Videospeicher zusätzlich dynamisch Systemspeicher zugefügt. Man kann davon ausgehen, dass diese Technik nicht in den von Apple angepassten NVIDIA Treibern des MAC OS X Betriebssystem vorhanden ist.  Das würde dann auch die wesentlich bessere Performance der Graphikkarte unter Linux auf einem MacBook Pro erklären.

NVidia-Settings Snapshot

praxis tipps: netstat

netstat ist ein ausgezeichnetes Kommando um sich schnell einen Überblick über alle vorhandene Socket Verbindungen zu bekommen. Hier ist die Zusammenfassung der gebräuchlichsten Parameter des GNU Kommandos welches auf jedem UNIX System zuhause ist:

Parameter Langfassung Bedeutung
-a –all alle aktiven und lauschenden(LISTEN) sockets
-l –listening Zeigt nur lauschende (LISTEN) sockets
-d –directory Zeigt den Directory Eintrag statt dessen Inhalt an
-p –programm Zeigt PID und Namen des verantwortlichen Prozesses (nur eigene)
-i –interface=IFACE zeigt Interface Infos an oder schränkt auf angegebens IFACE ein
-r –route Gibt alle Netzwerkrouten aus
-s –statistics Gibt Statistiken von /proc/net/snmp aus
-u –sort=access Sortiert nach Zugriffszeit (nur im Zusammenhang mit -t)
-n –numeric Verhindert Namensauflösung bei Hostangaben
-t / -u / -w / -x Zeigt Infos über TCP / UDP / RAW / UNIX sockets an

Spiele Benchmark: Linux vs. Mac OS X

Wer ein MacBook Pro hat und darauf 3D Spiele spielt sollte den folgenden Beitrag definitv lesen!

Ich hatte schon seit längerem das Gefühl, dass 3D Anwendungen auf Linux mit den NVidia Treibern wesentlich besser laufen als auf Mac OS X. Das Gefühl musste jetzt mal gemessen werden und zwar mit dem Benchmark von X-Plane 8. Zuerst die Rahmenbedingungen:

  • MacBook Pro (Santa Rosa) Intel CoreDuo 2 2.2GHz, 2GB (PC5300), NVidia 8600M GT 128MB
  • Mac OS X 10.5.2 mit letzen Patches, TFT 1440×900 (24bit)
  • Linux 2.6.24, KDE 3.5.9, NVidia Treiber 169.12, TFT 1440×900 (24bit)
  • X-Plane 8.64, volle Auflösung, texture resoluton high, anti-alias level 2, alle Einstellungen synchron auf Mac OS X und Linux

gemessen wurde mit den Runstring –fps_test=123 (3 digit number bestimmt gewisse Grafikeinstellungen).
Unter Linux mit:

./X-Plane-i586 --fps_test=123

Unter Mac OS X:

/Applications/X-Plane\ 8.64/X-Plane\ 864.app/Contents/MacOS/X-Plane --fps_test=123

(Leider kann man unter Mac OS X keine Runstrings – ausser einem Dateinamen – dem open Kommando mitgeben)

Unter beiden Systeme wurde 3mal gemessen und dann gemittelt. Hier die Werte für die 3 Phasen die X-Plane ausgibt.

System Phase 1 [fps] Phase 2 [fps] Phase 3 [fps]
Mac OS X 4 9 9
Linux 8 33 34

Die Flugsimulation läuft tatsächlich mehr als 3mal schneller unter Linux! Sicherlich hängt es mit dem Treiber zusammen, welcher unter Mac OS X direkt mit dem Betriebssystem ausgeliefert wird, während unter Linux der Original NVidia Treiber installiert werden kann.
Dieser verfügt natürlich auch über eine Temperaturkontrolle die die Karte ab einem Threshold drosselt. Während des Benchmarkes fuhr NVidia’s PowerMizer sofort in den höchsten Performance Level 3 (470 MHz GPU,635 MHz VRAM).

Weiterhin fuhr ich auf diesem Rechner unter Linux noch den Benchmark von X2-The Threat:

Testlauf 1: 34.086 fps
Testlauf 2: 33.947 fps

Leider kann ich diese Werte nicht direkt vergleichen, da X2 auf Mac OS X nur auf PPC läuft. Die Werte erscheinen aber ebenso hervorragend, wenn man mal X2 auf einem PPC-Mac sieht.

praxis tipps: iostat

Glücklicherweise gibt es auch eine Kommandotool um den I/O Durchsatz zu verfolgen, welches auf allen Plattformen verfügbar ist (unter SuSE Linux das Paket sysstat installieren).

iostat verfügt über einen statischen Output, sowie über ein Trackingmodus. Unter Linux wird dazu einfach als erster Parameter das Sekundenintervall angegeben, unter Sun Solaris dagegen nach dem Parameter -x, unter Mac OS X nach -w

Das Ergebniss wird tabellarisch angezeigt. Wichtig sind dabei die Felder tps (transfers per second) sowie die Durchsatzraten (entweder in kiloByte oder MegaByte angebbar).

Zudem wird immer auch die CPU Belastung (user,system,idle) protokolliert.

WPA2 und Apple AirportExpress

Nachdem ich mein WLAN Netzwerk von WEP auf WPA umstellte und zumindest anfänglich alles klappte, stellte mein AirportExpress nach einer gewissen Zeit den Dienst ein.
Dieses Spiel ging zweimal so – kurioserweise trat der Fehler immer erst nach ein paar Tagen ein. Zufällig staß ich auf folgenden Artikel, bei dem ebenfalls eine Inkompatibilität zwischen Apple Airport Produkten und einem Speedtouch Modem beschrieben wurde.

http://www.qdsl-support.de/archive/index.php?t-13262.html

Die Lösung, die bei mir ebenso zum Erfolg führte war ein Downgrade der Airport Express Firmware auf Version 6.1.1

http://www.apple.com/support/downloads/airportexpressfirmware611formacosx.html

Auf der Downloadseite der aktuellen Firmware (6.3) steht, dass WPA2 einen Macintosh Computer mit Aiport Extreme benötigt. Da sich in meiner Konfiguration der AirportExpress Client in einem bestehenden Netz einklinkt ist nicht die Kompatibilität zum Apple Rechner sondern in erster Linie zum primären AccessPoint (funkwerk bintec R232bw) wichtig. Dort ist zur Absicherung aber folgendes eingestellt.

WPA Einstellungen

Während die AiportExtreme Karte des Macintosh kein Problem hat, scheint diese Einstellung das AiportExpress Gerät aus dem Konzept zu bringen.

Im Fehlerfalle meldete das Syslog des AccessPoint immer wiederkehrende disconnectsfailed authentifications – und wieder connects. Ein „reboot“ (Aus- und Einstecken des AirportExpress) brachte nix – nach einem hartem Reset ging’s wieder ein paar Tage gut, bis diesem Problem erneut auftrat.

Eine dauerhafte Lösung ist bisher nur das Downgrade der Firmware – vielleicht kommt ja noch ne bessere Lösung…

CalDAV

eMail gehört schon seit langem zu den selbstverständlichsten Dingen auf jedem Computer. Daneben wird aber ein zentraler Kalender immer mehr ebenso zu einer Selbstverständlichkeit, welche in der Implementierung im Netzwerk aber wesentlich problematischer ist.

Denn im Gegensatz zu den eMail Standards wie POP3/IMAP4 gab es bei der Kalenderverwaltung lange Zeit keinen (Industrie)Standard. Dies nutzte in erster Linie dem Platzhirschen Microsoft mit seiner Groupwarelösung Exchange Server / Outlook Client.

Tatsächlich ist das Produkt aber für viele Netzwerke ein Overkill, kostet doch etwas Geld und ist Clientseitig nur gut auf Windows nutzbar – äusserst dumm für ein UNIX zentriertes Netzwerk.

Seit März 2007 scheint gibt es aber für diesen Fall einen absoluten Exchange Killer

CalDAV / RFC 4791

Um was geht es dort:

  • CalDAV operiert aussschliesslich mit Daten im iCalendar Format (ics)
  • Im Gegensatz zum simplen ics over HTTP, kann CalDAV den Zugriff auf die Kalenderresourcen limitieren und greift molekular auf alle einzelnen Einträge in einem iCalendar zu
  • Diese Technik wird als Erweiterung von WebDAV implementiert.

Somit steht CalDAV in bester UNIX Tradition – keep it simple. Endlich lassen sich auf UNIX (aber auch Windows) Plattformen Kalenderinformationen beliebig austauschen und verwalten. Was folgt ist noch eine Auflistung der möglichen Clients und Server:

CalDAV Clients:
  • Mozilla Sunbird / Lightning (Thunderbird plugin)
  • iCal (ab Mac OS X 10.5)
  • Novell Evolution
  • KDE Kontact (wahrscheinlich ab KDE 4.1 )
CalDav Servers: