I'm on macOS High Sierra with a very new and very high end MacBook Pro. I have a pretty basic GUI that uses translucency fairly aggressively. I added a DropShadow effect to some nodes, which looks great, but to my great surprise this one line of code kills the UI performance not of my app, but other apps on the same machine, specifically:
- I can see the frame rate of the dock's zoom animation is lower - Chrome becomes nearly unusable. Opening a new tab goes from nearly instant to sluggish, this is very noticeable if you watch the tab in the tab strip itself expand. It goes from smooth and fast to being able to see the individual frames. Stopping my app immediately restores the other apps to full framerate. So presumably, the DropShadow shader is triggering some slow path not only in JavaFX but the GPU or driver itself. I've experimenting with caching and that speeds up scrolling of nodes with drop shadows in my own app, but the OS-wide slowdown remains. Has anyone seen anything like this before? I'm suspecting that I'll need to render my own drop shadow effect using static bitmaps to work around it. I don't have access to the OpenJDK bug tracker so I can't file a bug report for this and I'm not sure how to reproduce it reliably. It's the first time I noticed it.