{"id":113,"date":"2009-03-22T03:27:32","date_gmt":"2009-03-22T02:27:32","guid":{"rendered":"http:\/\/www.instruyete.org\/?p=113"},"modified":"2009-03-22T03:27:32","modified_gmt":"2009-03-22T02:27:32","slug":"full-screen-antialiasing","status":"publish","type":"post","link":"https:\/\/www.instruyete.org\/?p=113","title":{"rendered":"Full Screen Antialiasing"},"content":{"rendered":"<p>Full Screen Antialiasing (FSAA) ist ein Feature welches von modernen GPU&#8217;s (Graphic Processor Units) angeboten wird. Es wird von OpenGL (auf Windows auch Direct 3D) Applikationen angesprochen.<\/p>\n<p>Im Zuge von Einbr\u00fcchen der Frameraten von OpenGL Programmen auf KDE 4.2 Desktops hatte ich mir Antialiasing (AA) mal genauer angeschaut.<\/p>\n<p><a href=\"http:\/\/www.instruyete.org\/wp-content\/uploads\/2009\/03\/nvidia-aa.png\" title=\"nVIDIA AA Settings\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.instruyete.org\/wp-content\/uploads\/2009\/03\/nvidia-aa.png\" alt=\"nVIDIA AA Settings\" width=\"660\" height=\"426\" \/><\/a><\/p>\n<p>Es gibt prinzipiell 3 M\u00f6glichkeiten, welches FSAA zum Einsatz kommt.<\/p>\n<ol>\n<li>Das Programm setzt AA. Im OpenGL Kontext erfolgt dies durch <strong>glEnable<\/strong> Methoden (Parameter sind bspw.: <strong>GL_POLYGON_SMOOTH<\/strong>, <strong>GL_MULTISAMPLE<\/strong>&#8230;) oder durch ARB Erweiterungen, z.B.\u00a0 <strong>GL_NV_framebuffer_multisample_coverage<\/strong><\/li>\n<li>Eine Umgebungsvariable setzt AA: <strong>__GL_FSAA_MODE<\/strong><\/li>\n<li>Die Steuerzentrale des Grafiktreibers (oben: <em>nvidia-settings<\/em>) steuert das AA Verhalten,wobei zuerst ausgew\u00e4hlt werden kann ob die Programmseitige Einstellungen \u00fcberschrieben, unber\u00fchrt bleiben oder &#8222;erg\u00e4nzt&#8220; werden soll (nicht unter Mac OS X verf\u00fcgbar)<\/li>\n<\/ol>\n<p>Auf einer nVIDIA 8600M GT GPU, sind bspw. folgende __GL_FSAA_MODE Werte zul\u00e4ssig:<\/p>\n<pre>\u00a0\u00a0\u00a0 Names for valid 'FSAA' values:\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0 - Off\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 1 - 2x (2xMS)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 5 - 4x (4xMS)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 7 - 8x (4xMS, 4xCS)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8 - 16x (4xMS, 12xCS)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 9 - 8x (4xSS, 2xMS)\n\u00a0\u00a0\u00a0\u00a0\u00a0 10 - 8x (8xMS)\n\u00a0\u00a0\u00a0\u00a0\u00a0 12 - 16x (8xMS, 8xCS)<\/pre>\n<p>Die verschiedenen Techniken von AA sind:<\/p>\n<ul>\n<li>Supersampling (SS)<\/li>\n<li>Multisampling (MS)<\/li>\n<li>Coverage Sampling (CS, nVIDIA Erweiterung)<\/li>\n<li>Alpha Blending<\/li>\n<\/ul>\n<p>Die Verwendung von AA ben\u00f6tigt aber nicht nur mehr Rechenleistung sondern auch mehr Video Speicher (VRAM), da einfache Pixels nun genauer (x-fach) aufgel\u00f6st werden.<\/p>\n<p>Den Effekt sieht man sch\u00f6n bei eine Benchmark der <a href=\"http:\/\/www.phoronix-test-suite.com\/\" title=\"Phoronix Test Suite\">Phoronix-Test-Suite<\/a> &#8211; glmark<\/p>\n<p><a href=\"http:\/\/www.instruyete.org\/wp-content\/uploads\/2009\/03\/2.png\" title=\"Verschiede AA Einstellungen 1440 x 900 px\"><img decoding=\"async\" src=\"http:\/\/www.instruyete.org\/wp-content\/uploads\/2009\/03\/2.png\" alt=\"Verschiede AA Einstellungen 1440 x 900 px\" \/><\/a><\/p>\n<p>Neben dem offensichtlichen Unterschied der Frameraten zwischen dem Benchmark auf IceWM und KDE 4.2 sieht man sch\u00f6n den Performanceabfall, bei h\u00f6herwertigen AA Einstellungen.<\/p>\n<p>Interessant wird es wenn der gleiche Benchmark auf dem gleichen System mit h\u00f6herer Aufl\u00f6sung (jetzt: 1680 x 1050 px.) gefahren wird.<\/p>\n<p><a href=\"http:\/\/www.instruyete.org\/wp-content\/uploads\/2009\/03\/1.png\" title=\"Verschiede AA Einstellungen 1680 x 1050 px\"><img decoding=\"async\" src=\"http:\/\/www.instruyete.org\/wp-content\/uploads\/2009\/03\/1.png\" alt=\"Verschiede AA Einstellungen 1680 x 1050 px\" \/><\/a><\/p>\n<p>Auf einmal bricht die Framerate schon beim \u00dcbergang von 2fach Multisampling zu 4MS ab. Ein eindeutiger Hinweis, dass der origin\u00e4re Videospeicher nicht mehr reichte und der Grafiktreiber auf das herk\u00f6mmliche RAM ausweichen musste, wass deutliche Latenz ins Spiel brachte.<\/p>\n<p>Der Ausreisser unter KDE 4.2, bei dem die h\u00f6chste Performance bei bester AA Einstellung suggeriert wird, ist darauf zur\u00fcckzuf\u00fchren, dass der KDE Windowmanager (<em>kwin<\/em>) wegen \u00dcberlastung, eine eigene Einstellung von AA w\u00e4hlte und die Einstellung von <em>nvidia-settings <\/em>\u00fcberschrieb.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Full Screen Antialiasing (FSAA) ist ein Feature welches von modernen GPU&#8217;s (Graphic Processor Units) angeboten wird. Es wird von OpenGL (auf Windows auch Direct 3D) Applikationen angesprochen. Im Zuge von Einbr\u00fcchen der Frameraten von OpenGL Programmen auf KDE 4.2 Desktops hatte ich mir Antialiasing (AA) mal genauer angeschaut. Es gibt prinzipiell 3 M\u00f6glichkeiten, welches FSAA &hellip; <a href=\"https:\/\/www.instruyete.org\/?p=113\" class=\"more-link\"><span class=\"screen-reader-text\">Full Screen Antialiasing<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,10,7],"tags":[],"class_list":["post-113","post","type-post","status-publish","format-standard","hentry","category-linux","category-macos","category-unix"],"_links":{"self":[{"href":"https:\/\/www.instruyete.org\/index.php?rest_route=\/wp\/v2\/posts\/113","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.instruyete.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.instruyete.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.instruyete.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.instruyete.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=113"}],"version-history":[{"count":0,"href":"https:\/\/www.instruyete.org\/index.php?rest_route=\/wp\/v2\/posts\/113\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.instruyete.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=113"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.instruyete.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=113"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.instruyete.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=113"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}