@Ruzmanz
mein problem ist mal sicherlich überhaupt nicht ... fakt ist jedoch : man KANN einfach nicht vorher sagen : "binary X soll mit GPU-kern Y laufen" ... völlig egal ob man vorher weis das der code irgendwo mal umschalten wird auf aktives 3D-rendering oder nur im 2D-mode "zeichnet"
[ot]hier sei noch erwähnt : auch 2D-zeichnen ist schon eigentlich "rendern", denn der begriff "rendering" bezeichnet den vorgang der grafikkarte aus den roh-daten ein "bild" aufzubereiten und "fertigzustellen" ... das übertragen und letztenendes anzeigen des monitors ist dann schon wieder der nächste schritt und hat mit dem eigentlichen "rendern" nichts mehr zu tun
allerdings wird für 2D-operationen gebräuchlich lediglich "drawing" bzw im deutschen "zeichnen" genutztn wohingegen 3D-operationen als "(aktives) rendern" bezeichnet werden
die nutzung bei z.b. video-bearbeitung oder modellierungen (z.b. Cinema4D oder wie sie nicht alle heißen) ist der begriffsdefinition nach eigentlich falsch[/ot]
Wenn er explizit eine Grafikkarte VOR dem Start anfordert, dann müsste der Computer diese auch verwenden.
tja ... aber leider geht genau DAS eben nicht ... zumindest nicht so wie es hier beschrieben wurde
es ist richtig das nVidia und teilweise auch AMD in einigen driver-versionen in zusammenarbeit mit der dazugehörigen steuersoftware einstellungen anbieten um die eine oder andere anwendung noch ein bisschen nach zu regeln oder vorab ein system-global zu setzen ... aber explizit einen bestimmten gpu-kern anfordern ... sowas hab ich noch nie gesehen ... nicht mal bei diesen custom-oem-krams den notebook-hersteller gerne nutzen in zusammenhang mit nVid-karten
von daher möchte ich die zitierte aussage, das man einer anwendung vorab einen bestimmten gpu-kern zuweisen kann, an sich schon vom autor her in frage stellen, wenn nicht dessen kompetenz selbst
auch ist deine weitere aussage weder in sich noch generell stimmig, denn DOCH : grundsätzlich verwaltet das OS in zusammenarbeit mit seinem kernel und den treibern die entscheidung welcher hardware-teil welche software abarbeitet
oder kurz : am ende sagt der kernel welche GPU
theoretisch würde es also schon die möglichkeit geben "einen wunsch" anzumelden, ob dies am ende dann aber technisch machbar ist muss halt geprüft und bei fehlschlag umentschieden werden
um mal wieder zurückzukommen auf java
grundsätzlich arbeitet java im normalen 2D-drawing welches durch die hardware "beschleunigt" wird, die sog. 3D-hardware-beschleunigung
unter unix wird dies in der regel durch OpenGL umgesetzt, welches aber (zumindest laut DOC) standardmäßig deaktiviert ist
unter windows hingegen wird auf Direct3D/DirectX zurückgegriffen (typisch halt) um eine 3D-beschleunigung zu erhalten
eine vorgegebene standard-value gibt es dafür nicht da es von mehreren faktoren abhängt, z.b. ob der desktop gerade im 2D- oder 3D-modus läuft, ob Direct3D überhaupt aktiv ist, etc
[ot]bezüglich desktop und 3D : laut M$ wird seit vista auch der normale desktop bei aktivem AERO 3D-gerendert
in wie weit hier wirklich 3D am werk ist müsste man mal in den tiefen des MSDN nachforschen[/ot]
und jetzt kommen wir mal drauf was TO geschrieben hat : er nutzt Swing !
ergo : er "zeichnet" 2D was dann von java durch native-calls an die grafik-API des OS übergeben wird
java selbst versucht (zumindest unter windows) aktive (Direct)3D-beschleunigung umzusetzen, letztenendes hängt es aber von der grafik-API, dem kernel und dem treiber ab ob dies auch wirklich umgesetzt wird
so ... und nun zu dem problem was TO geschildert hat : er hat unter Mac performance-probleme
hmm ... spontan würde mir da erstmal einfallen : zeig mal den "draw-code" wie viel was wo wie gezeichnet wird
spontan würde mir nämlich einfallen : wenn du Swing nutzt musst du entsprechend (z.b. von einem JPanel erbend) paintComponent(Graphics) überschreiben und hier als erstes den super-call "super.paintComponent(Graphics)" einfügen, und ich wette das es bei dir an genau diesem problem hakt ... ist einfach n typischer anfänger-fehler
daher würde es auch nichts bringen das ganze durch die vorhandene 3D-gpu zu schicken, weil das würde nur den call-stack noch weiter aufblähen und die performance noch weiter drücken da es einfach mehr zeit kostet
ps : nein, anti-banane soll nich gegen dich sein sondern ergab sich einfach aus dem kontext da mir nichts anderes eingefallen ist