The ShaderRectRep class implements an optimization to amortize the calculation of the parallelogram bounds for Antialiased rectangles.
Unfortunately, the transform validation in that class caused the bug reported as RT-5788 since it tried to use the transform's hash code to detect changes in the transforms. Unfortunately a hashcode is insufficient to detect transform changes since two non-equal transforms can have the same hash code. As a result that class had to be disabled in the Prism graphics stack.
Thus, the fix for 5788 has left us with a missing opportunity for a performance fix. The performance gains of caching the parallelogram vertices needs to be reimplemented in a way that does not cause the bug in RT-5788.
Unfortunately, the transform validation in that class caused the bug reported as RT-5788 since it tried to use the transform's hash code to detect changes in the transforms. Unfortunately a hashcode is insufficient to detect transform changes since two non-equal transforms can have the same hash code. As a result that class had to be disabled in the Prism graphics stack.
Thus, the fix for 5788 has left us with a missing opportunity for a performance fix. The performance gains of caching the parallelogram vertices needs to be reimplemented in a way that does not cause the bug in RT-5788.
- relates to
-
JDK-8090473 Prism: Math.floor and Math.ceil take up a lot of cpu time
- Open