AWT Graphics2D.drawImage() funktioniert nicht mehr korrekt mit Core i7

Status
Nicht offen für weitere Antworten.

0xdeadbeef

Top Contributor
Seit dem Update auf einen Quadcore (Core i7-920) habe ich ein merkwürdiges Problem: der Redraw in Java-Anwendungen funktioniert allgemein nicht mehr so ganz richtig, aber speziell Graphics2D.drawImage() scheint nicht mehr in einem Rutsch zu kopieren, sondern die Fläche zerfällt in rechteckige Teilbereiche, die unsynchron gezeichnet werden und teils auch an der völlig falschen Stelle erscheinen.

Mit meinem vorherigen Dualcore (AMD X2 4200+) hatte ich diese Problem mit der gleichen Grafikkarte (Nvidia GTS 8800 640MB) und dem gleichen Betriebssystem (Xp 32bit SP3) nicht. Inzwischen habe ich eine neue Grafikkarte (GTX 285), neue Grafikkartentreiber und eine neue JRE (6, Update 16), aber das Verhalten bleibt unverändert.

Die Probleme treten ausschließlich mit Java-Programmen auf, da aber praktisch immer. Besonders auffällig wird es wie gesagt, wenn man größere Bitmaps mit drawImage in der Grafikkontext der Anwendung kopiert.

Mal als Beispiel ein Screenshot der ColorChooserDemo aus der im JDK6 enthaltenen SwingSet2 Demo:

Sllg.png


Wie gesagt: mit nativen Windows-Anwendungen habe ich keinerlei Probleme, egal ob Spiele, Videoplayer oder was auch immer. Habe auch schon so ziemlich alles probiert (Multithreading im GPU-Treiber ausgestellt, Javaw.exe auf CPU0 beschränkt, /USEPMTIMER in Boot.ini, PAE ausgeschaltet), aber leider ohne Erfolg.

Habe auch schon vor mehreren Wochen einen Bug in Suns Bugtracker eingetragen, aber leider gab es bislang keinerlei Feedback, ob zumindest mal eine Bewertung stattgefunden hat.

Also versuche ich's mal hier: Hat irgendjemand mit einem QuadCore und einer NVidia-Karte ähnliche Phänomene beobachtet? Kommt AWT mit 4 Cores nicht zurecht oder ist das am Ende ein Problem mit der PAE, wenn man mehr als 3GB RAM unter WinXP hat (von denen man natürlich nicht mehr als 3GB benutzen kann).
 

Ebenius

Top Contributor
Hast Du mal die DirectDraw-Unterstützung ausgestellt? Ich habe mich schon eine Weile nicht mehr mit Windowsen beschäftigen müssen, und weiß daher nicht, ob das heute noch Relevanz hat. Wenn der Schalter aber hilft, dann würde es zumindest erklären, warum Du bei anderen Programmen keine Probleme hast. Wie gesagt: Nur ein Schuss ins Blaue.

Ich glaube, Java-System-Property "sun.java2d.noddraw" war's:
Code:
java -Dsun.java2d.noddraw=true

Ebenius
 
Zuletzt bearbeitet:

0xdeadbeef

Top Contributor
Ich bin gerade zur selben Erkenntnis gekommen ;)

Habe allerdings "-Dsun.java2d.d3d=false" benutzt. Damit stimmt der Redraw wieder. Wäre natürlich trotzdem schön, wenn sich ein paar Quadcore-Nutzer melden könnten und wenn Sun diesen Bug wenigstens mal in den Bugtracker eintragen würde.

Per Umgebungsvariable "_JAVA_OPTIONS" mit dem Wert "-Dsun.java2d.d3d=false" läßt sich der Workaround aber zumindest auch global einstellen. Soweit ich das verstehe, schaltet das auch nur die Direct3D-Erweiterung aus, nicht DirectDraw. Man verliert also nicht die gesamte Hardwarebeschleunigung.
 
Zuletzt bearbeitet:

Ebenius

Top Contributor
Ich gehe davon aus, dass das kein Java-Problem ist, sondern ein Problem mit dem Graphikkartentreiber, Board-Treiber oder weiß der Teufel was. Und ich denke nicht, dass das direkt mit dem Quad-Core zu tun hat, sondern eher mit dem speziellen Board... Ist aber auch nur ein Gefühl.

Ebenius
 

0xdeadbeef

Top Contributor
Das würde ich mal für SEHR, SEHR, SEHR unwahrscheinlich halten angesichts der Tatsache, daß native Anwendungen/Spiele keinerlei Probleme machen und daß es völlig unabhängig von der PAE-Einstellung auftritt.

Nach menschlichem Ermessen ist das ein Bug in der D3D-Schnittstelle der JRE, vermutlich im Zusammenhang mit dem Zugriff auf BufferedImages, die ins RAM der Grafikkarte ausgelagert wurden. Wäre ja auch nicht das erste Mal, daß sowas auftritt.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
U Was ist ein Shape, also klar ein Objekt, aber was ist damit gemeint (Graphics2d)? Und was sidn affinetransformationen AWT, Swing, JavaFX & SWT 1
L Graphics2d zoomen AWT, Swing, JavaFX & SWT 3
L AWT graphics2d transform AWT, Swing, JavaFX & SWT 7
M Schnittpunkte zwischen zwei Graphics2D Elemente ermitteln. AWT, Swing, JavaFX & SWT 5
Soloeco Graphics2D - Verbinden zweier Punkte AWT, Swing, JavaFX & SWT 6
B Graphics -> Graphics2D etwas zu beachten? AWT, Swing, JavaFX & SWT 8
D AWT Graphics2D getClip gibt null zurück AWT, Swing, JavaFX & SWT 3
B Graphics2D Componente Drehen AWT, Swing, JavaFX & SWT 2
M Graphics2D: drawString Berechnung AWT, Swing, JavaFX & SWT 1
X AWT Graphics2D zum LWJGL Display hinzufügen aber wie? AWT, Swing, JavaFX & SWT 4
D Graphics2D einen Bereich füllen AWT, Swing, JavaFX & SWT 1
M JPanel und Graphics2D AWT, Swing, JavaFX & SWT 2
S Java2D/Graphics2D in Android..? AWT, Swing, JavaFX & SWT 2
B Graphics2d drawString mit double Werten? AWT, Swing, JavaFX & SWT 5
S Graphics2D: Transparent übereinander zeichnen AWT, Swing, JavaFX & SWT 7
S Graphics2D - setClip() AWT, Swing, JavaFX & SWT 2
J 2D-Grafik Graphics2D object in ein anderes Zeichnen AWT, Swing, JavaFX & SWT 7
S AWT Pong - Probleme mit übergreifenden Objekten && Graphics2D AWT, Swing, JavaFX & SWT 3
C Image mit Graphics2D zeichnen AWT, Swing, JavaFX & SWT 9
S Frage zu Graphics2D AWT, Swing, JavaFX & SWT 3
Developer_X Swing Auf ein BufferedImage mit Graphics/Graphics2D zeichnen AWT, Swing, JavaFX & SWT 6
N AWT Graphics2D mehrmals aufrufen AWT, Swing, JavaFX & SWT 5
Developer_X Swing Graphics2D.zoom, wie rückgängig machen? AWT, Swing, JavaFX & SWT 6
Developer_X Swing Graphics2D translate zerstört performance AWT, Swing, JavaFX & SWT 2
N graphics2d auf panel AWT, Swing, JavaFX & SWT 2
Dit_ Ein Kreis als Graphics2D oder als Ellipse2D Objekt AWT, Swing, JavaFX & SWT 19
A Swing LAF unter Windows: javax.swing.DebugGraphics cannot be cast to java.awt.Graphics2D AWT, Swing, JavaFX & SWT 5
A Swing Mit Graphics2D auf transparentem Hintergrund zeichnen AWT, Swing, JavaFX & SWT 7
E Graphics2D: altes Objekt löschen, wenn repaint aufgerufen wird AWT, Swing, JavaFX & SWT 7
D BufferedImage und Graphics2D AWT, Swing, JavaFX & SWT 3
cowabunga1984 Implementierung von Graphics2D AWT, Swing, JavaFX & SWT 2
C Graphics2D, Text abschneiden AWT, Swing, JavaFX & SWT 2
N Graphics2D mit unterschiedlichen Grauwerten befüllen AWT, Swing, JavaFX & SWT 3
F Graphics2D scale und Positionierung einer TextArea AWT, Swing, JavaFX & SWT 8
F JPanel: Graphics2D, scale und Mauskoordinaten AWT, Swing, JavaFX & SWT 4
P paintComponent /paint/ update/ offscreenImage / Graphics2D / AWT, Swing, JavaFX & SWT 4
M Graphics2D - abstract void draw(.) AWT, Swing, JavaFX & SWT 2
redztripe Graphics2D rotieren und rotiertes Bild abspeichern AWT, Swing, JavaFX & SWT 2
R AffinrTransform + Graphics2D verschieben AWT, Swing, JavaFX & SWT 3
R Graphics2D + Bild anzeigen. AWT, Swing, JavaFX & SWT 25
M Probleme mit Graphics2D AWT, Swing, JavaFX & SWT 7
H Transparent zeichnen mit drawImage in paintComponent Methode AWT, Swing, JavaFX & SWT 3
J drawImage Fehlersuche AWT, Swing, JavaFX & SWT 5
U drawImage mit EPS AWT, Swing, JavaFX & SWT 0
A Problem mit drawImage AWT, Swing, JavaFX & SWT 1
M Graphics.drawImage von unten nach oben abbilden lassen AWT, Swing, JavaFX & SWT 6
P 2D-Grafik g2.drawImage() langsam AWT, Swing, JavaFX & SWT 110
L Graphics.drawImage() - Output-Größe entspricht nicht Parametern AWT, Swing, JavaFX & SWT 10
L Border verschwindet durch Graphics.drawImage() AWT, Swing, JavaFX & SWT 4
P Swing Skalieren mit DrawImage macht Linien kaputt AWT, Swing, JavaFX & SWT 6
G .ico drawImage AWT, Swing, JavaFX & SWT 5
B drawImage funktioniert nicht AWT, Swing, JavaFX & SWT 4
B drawImage auf JPanel bleibt ohne Auswirkungen AWT, Swing, JavaFX & SWT 9
K Graphics.drawImage() sehr schnell AWT, Swing, JavaFX & SWT 5
M Graphics.drawImage verlangsamt sich plötzlich AWT, Swing, JavaFX & SWT 15
G Graphics.drawImage() AWT, Swing, JavaFX & SWT 6
? Problem mit drawImage: bei Frame ok, bei JPanel nicht AWT, Swing, JavaFX & SWT 4
F Problem mit drawImage() AWT, Swing, JavaFX & SWT 6
M drawImage bremst GUI AWT, Swing, JavaFX & SWT 2
I drawImage AWT, Swing, JavaFX & SWT 4
B drawImage() hängt! AWT, Swing, JavaFX & SWT 18
O performance g2d.drawImage() AWT, Swing, JavaFX & SWT 17
L Bildbewegung mit g.drawImage AWT, Swing, JavaFX & SWT 3
K g.DrawImage unter paintComponent klappt nur beim 1. Aufruf AWT, Swing, JavaFX & SWT 3
S kurze Frage zu drawImage AWT, Swing, JavaFX & SWT 12
F Endlosschleife bei drawImage() AWT, Swing, JavaFX & SWT 4
L Gezeichnetes Image mit DrawImage überzeichnen AWT, Swing, JavaFX & SWT 3
M drawImage mit seltsamen verhalten AWT, Swing, JavaFX & SWT 2
Juelin if Abfrage funktioniert nicht richtig AWT, Swing, JavaFX & SWT 10
C Button ActionListener funktioniert nicht AWT, Swing, JavaFX & SWT 1
P AWT Programm funktioniert nicht richtig AWT, Swing, JavaFX & SWT 35
MartinNeuerlich Kann mir jemand, der einen Mac mit einem m1 oder m2-Chip hat, eine POM geben mit der Javafx-Fullscreen beim Mac mit m-Chip funktioniert? AWT, Swing, JavaFX & SWT 1
R auto. Importanweisungen für javafx funktioniert in Eclipse nicht mehr AWT, Swing, JavaFX & SWT 4
M Scrollbar funktioniert nicht AWT, Swing, JavaFX & SWT 10
D Repaint Funktioniert nicht AWT, Swing, JavaFX & SWT 2
W JEditorPane textausrichtung nach settext funktioniert nicht mehr AWT, Swing, JavaFX & SWT 11
H Swing Anpassen der Textgröße im JLabel funktioniert nur bedingt AWT, Swing, JavaFX & SWT 7
sserio JFrame setIconImmage() funktioniert nicht AWT, Swing, JavaFX & SWT 3
T Swing Tooltip-Delay funktioniert nicht immer. AWT, Swing, JavaFX & SWT 1
B Output GUI funktioniert nur beim ersten Mal richtig. AWT, Swing, JavaFX & SWT 4
sserio Wie funktioniert ein Controller bei JavaFx? AWT, Swing, JavaFX & SWT 1
U Wie funktioniert das rotieren unter 2dGraphics, also wie stelle ich z. B. 90° ein? AWT, Swing, JavaFX & SWT 1
U Wie funktioniert Polygon? AWT, Swing, JavaFX & SWT 1
U Wie genau funktioniert 2dgraphics, in diesem Bezug? AWT, Swing, JavaFX & SWT 4
S ChoiceBox aus ArrayList per setValue() mit Wert belegen funktioniert nicht. AWT, Swing, JavaFX & SWT 0
H KeyListener funktioniert nicht AWT, Swing, JavaFX & SWT 1
H BufferedImage zurücksetzen funktioniert nicht AWT, Swing, JavaFX & SWT 12
H RPG Programmieren, label.setLocation funktioniert nicht AWT, Swing, JavaFX & SWT 7
EinNickname9 Einfacher parser funktioniert nicht AWT, Swing, JavaFX & SWT 2
F Swing Adapt Row Height funktioniert nicht richtig :( AWT, Swing, JavaFX & SWT 7
P Swing jxmapviewer hinzufügen/nutzen funktioniert nicht AWT, Swing, JavaFX & SWT 7
CptK Wie funktioniert contains() für Path2D.Double AWT, Swing, JavaFX & SWT 10
J Anbindung Textfeldklasse an Table funktioniert nicht AWT, Swing, JavaFX & SWT 3
R Actionlistener funktioniert nicht AWT, Swing, JavaFX & SWT 4
B Stylen eines JTextPane funktioniert nicht AWT, Swing, JavaFX & SWT 1
VPChief Swing Eclipse: Nach Exportieren, Button funktioniert nicht mehr AWT, Swing, JavaFX & SWT 26
H Bewegung funktioniert nicht AWT, Swing, JavaFX & SWT 3
N Pixelfarbe abgleichen funktioniert nicht AWT, Swing, JavaFX & SWT 5
A Swing JTextField an Button übergeben für Popup-Fenster funktioniert nicht AWT, Swing, JavaFX & SWT 3
N eclipse Java, bilder benutzten Funktioniert nicht AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben