[OpenJDK 2D-Dev] RFR: 8252070 Some platform-specific BLIT optimizations are not effective

Sergey Bylokhov Sergey.Bylokhov at oracle.com
Sat Aug 29 01:26:03 UTC 2020

Please review the fix for jdk/client.

Bug: https://bugs.openjdk.java.net/browse/JDK-8252070
Fix: http://cr.openjdk.java.net/~serb/8252070/webrev.01

Some of our code assumes that the native system(XRender, D3D, OGL) makes some
effective optimizations, but in some cases, we can do better.

One of the areas for improvements is direct blitting. If the source is much
bigger than the destination we should not try to copy the non-existent area
and could cut coordinates accordingly.

The actual change is:
  951         Rectangle dst =
  952                 new Rectangle(dx, dy, w, h).intersection(dstData.getBounds());
  953         if (dst.isEmpty()) {
  972                 // return
  975         }
  979         sx += dst.x - dx;
  980         sy += dst.y - dy;

See performance data and some additional comments:

Best regards, Sergey.

More information about the 2d-dev mailing list