This is a follow-on to JDK-8211294.
To reproduce the bug, run the attached test program. This test program renders three controls with or without node caching enabled. The top two controls are deliberately rendered with fractional values of layoutX and layoutY. When caching is enabled, you can see that the text in those controls is blurry. When caching is disabled, the text is not blurry.
Rendering a shape or control into a cache and then rendering that cached image should match rendering that shape or control directly. This should be true the first time it is rendered, and should remain true as long as the transform is unchanged (or differs only by a translation delta of a whole pixel value) from when the cache was rendered into.
This is currently broken for rendering text if the translation is not on a pixel boundary, and is the main reason that the snap-to-pixel bug in JDK-8211294 led to such noticeable blurriness.
See https://git.openjdk.java.net/jfx/pull/308 for some discussion on this.