Медленное рисование Java2D на интегрированной графике

Я работаю над простой 2D игрой, рендеринг которой осуществляется через API Java2D. Я заметил, что когда я пытаюсь нарисовать на интегрированной видеокарте, производительность падает.

Я тестировал эту игру как на своей основной установке с новым ATI Radeon, так и на своем 5-летнем ноутбуке, который также имеет (невероятно устаревший) Radeon. На обоих я получаю хороший FPS, но когда я пытаюсь использовать встроенную графику HD 4000 моего Intel i5, он набирает около 20 FPS.

Я использую полноэкранный эксклюзивный режим.

В любой момент я рендерил около 1000 изображений одновременно.

Досадно, что когда я пытаюсь получитьAvailableAcceleratedMemory (), он просто возвращает -1 для этой карты и, похоже, отказывается ускорять любые изображения.

У кого-нибудь есть идеи как решить эту проблему?

Код рендеринга:

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

Код загрузки изображения:

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

Изображения хранятся в хэш-карте BufferedImages, идентифицируемой строками, поэтому, когда объект должен рисовать и отображать изображение, он просто получает его из хэш-карты и рисует его. В текущем случае сущности в основном представляют собой напольные и настенные плитки, поэтому они никогда не меняются (и, следовательно, не нужно получать изображение из хэш-карты, кроме самого первого раза).

РЕДАКТИРОВАТЬ - Я включил метод MadProgrammer, но он не изменил мой FPS.

Ответы на вопрос(1)

Ваш ответ на вопрос