Partikel in OpenGL



  • mad_martin schrieb:

    ... meint bei NVIDIA z.b., dass es keine 3-d Beschleunigung gibt. Und wenn es das auch bei ATI heißt (was ich vermute), dann liegt die Lösung ja auf der Hand, oder?

    Also ich spiel hier unter Linux auch 3D-Spiele (sowas wie Cod2 läuft sogar perfekt) unter Linux mit ner Geforce...
    ATI ist da schlechter dran... (noch?)

    => Infos: http://www.spielen-unter-linux.de



  • nvidia geht auf jeden fall besser, als ATI, aber irgendwie glaub ich das ich den Falschen treiber habe, denn auf der Seite von ATI steht:

    Optimized Software Support

    * ATI Catalyst™ driver update support
    * Microsoft® DirectX® 9.0 and OpenGL® drivers
    * Unified driver support or all ATI Radeon PCI Express discrete and integrated graphics products
    * Support for Microsoft® Windows® XP, Windows® 2000, and Linux

    http://ati.amd.com/products/Radeonxpress1100mobintel/specs.html
    diese daten lassen auf bessere leistung, als die gebotene Schließen.



  • Versuch ma fglrxinfo auf der Shell 😉

    Wenn du dann nicht sowas

    $ fglrxinfo
    display: :0.0  screen: 0
    OpenGL vendor string: Mesa project: www.mesa3d.org
    OpenGL renderer string: Mesa GLX Indirect
    OpenGL version string: 1.4 (2.1 Mesa 7.0.3)
    

    Bekommst hast du den AMD/ATI Treiber mit voller Leistung.

    (Bei mir geht's nicht da der Kernel-Wrapper nicht für 2.6.25.1 compiliert 😉 )



  • $ fglrxinfo
    display: :0.0  screen: 0
    OpenGL vendor string: ATI Technologies Inc.
    OpenGL renderer string: ATI Radeon Xpress Series
    OpenGL version string: 2.0.6473 (8.37.6)
    

    => Daraus schließen wir: ATI = Mist



  • langeweile schrieb:

    mad_martin schrieb:

    ... meint bei NVIDIA z.b., dass es keine 3-d Beschleunigung gibt. Und wenn es das auch bei ATI heißt (was ich vermute), dann liegt die Lösung ja auf der Hand, oder?

    Also ich spiel hier unter Linux auch 3D-Spiele (sowas wie Cod2 läuft sogar perfekt) unter Linux mit ner Geforce...
    ATI ist da schlechter dran... (noch?)

    => Infos: http://www.spielen-unter-linux.de

    Ja, wenn du die proprietären Treiber nimmst. Die werden aber nicht in der Distri mitgegeben, sondern die muss sich der geneigte User selbst installieren. Und wenn man das nicht weiß, wundert man sich trotz richtiger Erkennung der Karte durchs System über mangelnde Leistung 😉



  • Ja, das ist aber besser, als Garkein 3D ohne Proprientären Treiber, und mit Treiber extrem schlechte performance und kaum extention support, ich hab grad noch mal unter windows nehe lesson22 gestartet, und da sieht die Sache schon ganz anders aus:

    Renderer: ATI RADEON XPRESS 1100 x86/SSE2
      Vendor: ATI TECHNOLOGOES INC
     Version: 2.0.6645 WinXP Release
    
    insgesamt 91 extentions
    

    Das sieht ganz anders aus, aber unter Windows will ich nicht Programmieren.



  • Und wieso weigerst Du Dich nun weiterhin den Treiber zu installieren?



  • hellihjb schrieb:

    Und wieso weigerst Du Dich nun weiterhin den Treiber zu installieren?

    Also da drauf muss ich jetz nicht antworten oder?



  • Deine Situation ist ja folgende:
    Irgendein "Treiber" ist bei Deiner Linux-Distribution dabeigewesen der immerhin in der Lage ist Deine Grafikkarte beim Namen zu nennen und behauptet OpenGL 2.0-konform zu sein - trotzdem fehlt relevante Funktionalitaet in erheblichem Masse.
    Es waere also sehr naheliegend, beim Hersteller einen offiziellen Treiber fuer Deine (oder eine aehnliche) Grafikkarte zu laden, der nachweislich diese Probleme beheben wuerde.
    Aus mir unbegreiflichen Gruenden tust Du das aber nicht sondern beschwerst Dich ueber die Firma ATI.



  • so hab jetzt ein Systhemupdate gemacht, und nun ist der Treiber (der sehr viele Probleme gemacht hat, bevor er endlich funktionierte) installiert, er funktioniert jetzt ein bisschen besser, als vorher. Vertex Buffer und Point Sprites werden nun unterstützt. Und ja ganz nebenbei wenn es etwas gibt das ich hasse, dann ist das die Treiberinstallation von ATI unter Linux.



  • Hab mir mal so ein Beispiel von VBOs heruntergeladen, und es funktioniert auch. Allerdings scheinen die keinerlei Vorteile für meine Grafikkarte zu bieten, denn denn Geschwindigkeit geht mit dem Aktivieren der VBO deutlich herunter, Was allerdings sehr wahrscheinlich an meiner Grafikkarte liegt, denn meine Karte hat keinen eigenen Speicher, und muss mit dem Hauptspeicher bedient werden.


  • Mod

    was eher wahrscheinlich ist, ist dass die vertextransformationsleistung deiner graka ueberhaupt nicht das bottleneck ist.

    oder anders gefragt, wie bist du darauf gekommen, dass das das problem ist?



  • denn Geschwindigkeit geht mit dem Aktivieren der VBO deutlich herunter

    Im Vergleich zu was denn (Displayliste oder glVertex-Calls) ?
    Die Reihenfolge meiner Vorschlaege war uebrigens bewusst gewaehlt...
    Das groesste Problem in Deinem Source ist, dass Du pro Polygon eine neue Matrix setzt und damit der Pipelinefluss abreisst.
    VBOs nutzen Dir erst in letzter Instanz um den Datentransfer zwischen RAM und GPU zu minimieren. Bei Shared-Memory-Loesungen ist deren Nutzen geringer.



  • also mein Testprogramm hab ich von http://www.songho.ca/opengl/gl_vbo.html es ist vbo.zip, den Quellcode hab ich mir bisher nicht genauer angeschaut, allerdings musste ich das Makefile für linux umändern damit es funktionierte, die haben ein Modul vergessen, eine Display Liste wird es wohl kaum sein, die könnte sowas nicht realisieren, die ist zu Statisch.

    Wie ich nun darauf komme, dass es an meiner Grafikkarte liegt, nun zum einen sind die Effekte auf Windows beim selben rechner die selben, und zum anderen hab ich mir was über VBOs durchgelesen, was mich dazu veranlasst hat das zu glauben, aber was ich mir da genau durchgelesen hab hab ich mittlerweile schon wieder vergessen 😕 .

    Das Programm auf meinem Desktop pc mit echter Grafikkarte funktioniert deutlich besser, auch sind die FPS Zahlen deutlich höher, und der Leistungsschub ist durch die VBO zu erkennen.



  • Wie gesagt liegen Deine Bottlenecks im Moment wo anders.
    Du musst Dir um das fuer und wider von VBOs noch keinen einzigen Gedanken machen.



  • aber das ist frustrierend, wenn man als Belohnung für das erlernen der VBOs eine schlechtere Performance bekommt


  • Mod

    Krux schrieb:

    aber das ist frustrierend, wenn man als Belohnung für das erlernen der VBOs eine schlechtere Performance bekommt

    das ist leider meistens so wenn man probleme loest die man nicht hat. deswegen ist prioritaet 1 beim optimieren: rausfinden was das problem ist.



  • also um das Lernen von Vertex buffern komme ich sowiso nicht rum, also stört es auch nicht, wenn ich die etwas früher lerne.


Anmelden zum Antworten