Dibujo lento de Java2D en gráficos integrados

Estoy trabajando en un juego 2D simple, renderizado a través de la API Java2D. Me he dado cuenta de que cuando intento dibujar en una tarjeta gráfica integrada, el rendimiento falla.

He probado este juego en mi plataforma principal con una nueva ATI Radeon y mi computadora portátil de 5 años que también tiene una (increíblemente anticuada) Radeon. En ambos, obtengo un buen FPS, pero cuando trato de usar los gráficos HD 4000 integrados de mi Intel i5, se arrastra a unos 20 FPS.

Estoy usando el modo Exclusivo de pantalla completa.

En cualquier momento dado, estoy renderizando aproximadamente 1000 imágenes a la vez.

Molestamente, cuando trato de obtener una memoria disponible (), devuelve -1 para esta tarjeta, y parece negarse a acelerar cualquier imagen.

¿Alguien tiene alguna idea de cómo solucionar este problema?

Código de renderizado:

    Graphics g = bufferStrategy.getDrawGraphics();
    g.drawImage(img, x, y, img.getWidth(), img.getHeight(), null)
    g.dispose();
    bufferStrategy.show();

Imagen cargando código:

    BufferedImage I = null;
    I = ImageIO.read(new File(currentFolder+imgPath));
    imgMap.put(imgIdentifier, I);

Las imágenes se almacenan en un hashmap de BufferedImages identificadas por cadenas, por lo que cuando una entidad necesita dibujar y obtener imágenes, simplemente las saca del hashmap y las dibuja. En el caso actual, las entidades son en su mayoría mosaicos de pisos y paredes, por lo que nunca cambian (y, por lo tanto, no tienen que obtener la imagen del mapa de hash que no sea la primera vez).

EDITAR - He incorporado el método de MadProgrammer, pero no cambió mi FPS.

Respuestas a la pregunta(1)

Su respuesta a la pregunta