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

Sergey Bylokhov serb at openjdk.java.net
Thu Sep 10 22:54:46 UTC 2020


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 improvement is direct blitting. If the source is much
bigger than the destination we should not try to copy to 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:
https://bugs.openjdk.java.net/browse/JDK-8252070?focusedCommentId=14365864&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-14365864

The old review request:
https://mail.openjdk.java.net/pipermail/2d-dev/2020-August/011007.html

-------------

Commit messages:
 - 8252070: Some platform-specific BLIT optimizations are not effective

Changes: https://git.openjdk.java.net/jdk/pull/121/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=121&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8252070
  Stats: 81 lines in 1 file changed: 42 ins; 28 del; 11 mod
  Patch: https://git.openjdk.java.net/jdk/pull/121.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/121/head:pull/121

PR: https://git.openjdk.java.net/jdk/pull/121


More information about the 2d-dev mailing list