JDK-8118152 : error rendering Arc.setStroke
  • Type: Bug
  • Component: javafx
  • Sub-Component: graphics
  • Affected Version: 8
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2013-07-23
  • Updated: 2015-06-17
  • Resolved: 2013-08-13
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 8
8Fixed
Related Reports
Duplicate :  
Duplicate :  
Duplicate :  
Duplicate :  
Duplicate :  
Duplicate :  
Duplicate :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Description
run application attached: there is Arc with setStroke(Green) and setFill(Yellow)
see screenshot: some visual artifacts at top side of arc

same in hardware and software rendering modes.
Comments
Target build: b103
13-09-2013

Verified on 8.0b104
26-08-2013

Affected tests: SceneGraphAutomated/test/scenegraph/functional/Shape2Test/ShapeIntersect_STROKE_CAP SceneGraphAutomated/test/scenegraph/functional/Shape2Test/ShapeSubtract_SUBTRACT SceneGraphAutomated/test/scenegraph/functional/Shape2Test/ShapeSubtract_STROKE_CAP SceneGraphAutomated/test/scenegraph/functional/Shape2Test/ShapeSubtract_SUBTRACT_WT_DASH SceneGraphAutomated/test/scenegraph/functional/Shape2Test/ShapeSubtract_STROKE_GRAD SceneGraphAutomated/test/scenegraph/functional/Shape2Test/ShapeSubtract_TRANSPARENT
16-08-2013

Affected tests: tests/docsamples/PieChartSample_9 tests/samples/Ensemble8_09_Charts_Pie FXCssAutomated/test/css/controls/api/PieChartsAPICssTest/PieCharts_IMAGE_BORDER_REPEAT_X
15-08-2013

Affected tests: graphics/api/font/FontPostureTest2Test.java graphics/api/node/Clip_bTest.java graphics/api/node/TText1Test.java graphics/api/text/ContentTest.java graphics/api/text/EffectsTest.java graphics/api/text/SizeTest.java graphics/api/text/XyTest.java graphics/api/text/NameTest.java graphics/api/text/Textalignment_aTest.java graphics/api/node/TransparentMousePack_6bTest.java SceneGraphAutomated/test/scenegraph/functional/CanvasShape2Test/Text_STROKE_GRAD SceneGraphAutomated/test/scenegraph/functional/CanvasShape2Test/Text_FILL SceneGraphAutomated/test/scenegraph/functional/CanvasShape2Test/Text_LINEAR_GRAD SceneGraphAutomated/test/scenegraph/functional/CanvasShape2Test/Text_RADIAL_GRADIENT SceneGraphAutomated/test/scenegraph/functional/CanvasShape2Test/Text_STROKE SceneGraphAutomated/test/scenegraph/functional/CanvasShape2Test/Text_TRANSPARENT
14-08-2013

Target Build: b104
13-08-2013

Affected tests: graphics/api/chart/PieChart_aTest.java
13-08-2013

RULE ControlsAutomatedTestSuite/javafx/scene/control/test/chart/PieChartTest/addDataTest Exception org.jemmy.TimeoutExpiredException: State 'Control having expected image' has not been reached in ... milliseconds RULE ControlsAutomatedTestSuite/javafx/scene/control/test/chart/PieChartTest/animatedTest Exception org.jemmy.TimeoutExpiredException: State 'Control having expected image' has not been reached in ... milliseconds RULE ControlsAutomatedTestSuite/javafx/scene/control/test/chart/PieChartTest/clockwiseTest Exception org.jemmy.TimeoutExpiredException: State 'Control having expected image' has not been reached in ... milliseconds RULE ControlsAutomatedTestSuite/javafx/scene/control/test/chart/PieChartTest/cssClockwise Exception org.jemmy.TimeoutExpiredException: State 'Control having expected image' has not been reached in ... milliseconds RULE ControlsAutomatedTestSuite/javafx/scene/control/test/chart/PieChartTest/cssLabelLineLength Exception org.jemmy.TimeoutExpiredException: State 'Control having expected image' has not been reached in ... milliseconds RULE ControlsAutomatedTestSuite/javafx/scene/control/test/chart/PieChartTest/cssLegendSide Exception org.jemmy.TimeoutExpiredException: State 'Control having expected image' has not been reached in ... milliseconds RULE ControlsAutomatedTestSuite/javafx/scene/control/test/chart/PieChartTest/cssLegendVisible Exception org.jemmy.TimeoutExpiredException: State 'Control having expected image' has not been reached in ... milliseconds RULE ControlsAutomatedTestSuite/javafx/scene/control/test/chart/PieChartTest/cssPieLabelVisible Exception org.jemmy.TimeoutExpiredException: State 'Control having expected image' has not been reached in ... milliseconds RULE ControlsAutomatedTestSuite/javafx/scene/control/test/chart/PieChartTest/cssStartAngle Exception org.jemmy.TimeoutExpiredException: State 'Control having expected image' has not been reached in ... milliseconds RULE ControlsAutomatedTestSuite/javafx/scene/control/test/chart/PieChartTest/cssTitleSide Exception org.jemmy.TimeoutExpiredException: State 'Control having expected image' has not been reached in ... milliseconds RULE ControlsAutomatedTestSuite/javafx/scene/control/test/chart/PieChartTest/labelLineLengthTest Exception org.jemmy.TimeoutExpiredException: State 'Control having expected image' has not been reached in ... milliseconds RULE ControlsAutomatedTestSuite/javafx/scene/control/test/chart/PieChartTest/labelsVisibleTest Exception org.jemmy.TimeoutExpiredException: State 'Control having expected image' has not been reached in ... milliseconds RULE ControlsAutomatedTestSuite/javafx/scene/control/test/chart/PieChartTest/legendSideTest Exception org.jemmy.TimeoutExpiredException: State 'Control having expected image' has not been reached in ... milliseconds RULE ControlsAutomatedTestSuite/javafx/scene/control/test/chart/PieChartTest/legendVisibleTest Exception org.jemmy.TimeoutExpiredException: State 'Control having expected image' has not been reached in ... milliseconds RULE ControlsAutomatedTestSuite/javafx/scene/control/test/chart/PieChartTest/removeDataTest Exception org.jemmy.TimeoutExpiredException: State 'Control having expected image' has not been reached in ... milliseconds RULE ControlsAutomatedTestSuite/javafx/scene/control/test/chart/PieChartTest/startAngleTest Exception org.jemmy.TimeoutExpiredException: State 'Control having expected image' has not been reached in ... milliseconds RULE ControlsAutomatedTestSuite/javafx/scene/control/test/chart/PieChartTest/titleSideTest Exception org.jemmy.TimeoutExpiredException: State 'Control having expected image' has not been reached in ... milliseconds RULE ControlsAutomatedTestSuite/javafx/scene/control/test/chart/PieChartTest/titleTest Exception org.jemmy.TimeoutExpiredException: State 'Control having expected image' has not been reached in ... milliseconds RULE ControlsAutomatedTestSuite/javafx/scene/control/test/nchart/PieChartTest/screenshot1Test Exception org.jemmy.TimeoutExpiredException: State 'Control having expected image' has not been reached in ... milliseconds RULE ControlsAutomatedTestSuite/javafx/scene/control/test/nchart/PieChartTest/screenshot3Test Exception org.jemmy.TimeoutExpiredException: State 'Control having expected image' has not been reached in ... milliseconds
13-08-2013

Affected tests: FXCssAutomated/test/css/controls/api/PieChartsAPICssTest/PieCharts_IMAGE_BORDER_REPEAT_X
13-08-2013

Affected tests: tests/docsamples/PieChartSample_9 tests/samples/Ensemble8_09_Charts_Pie
13-08-2013

RULE ControlsAutomatedTestSuite/javafx/scene/control/test/chart/PieChartTest/cssPieLabelVisible Exception org.jemmy.TimeoutExpiredException: State 'Control having expected image' has not been reached in ... milliseconds RULE ControlsAutomatedTestSuite/javafx/scene/control/test/chart/PieChartTest/labelsVisibleTest Exception org.jemmy.TimeoutExpiredException: State 'Control having expected image' has not been reached in ... milliseconds
13-08-2013

Affected tests: FXCssAutomated/test/css/controls/api/PieChartsAPICssTest/PieCharts_BORDER_COLOR FXCssAutomated/test/css/controls/api/PieChartsAPICssTest/PieCharts_BORDER_STYLE_DOTTED FXCssAutomated/test/css/controls/api/PieChartsAPICssTest/PieCharts_BORDER_WIDTH FXCssAutomated/test/css/controls/api/PieChartsAPICssTest/PieCharts_BORDER_WIDTH_dotted FXCssAutomated/test/css/controls/api/PieChartsAPICssTest/PieCharts_IMAGE_BORDER FXCssAutomated/test/css/controls/api/PieChartsAPICssTest/PieCharts_IMAGE_BORDER_NO_REPEAT FXCssAutomated/test/css/controls/api/PieChartsAPICssTest/PieCharts_IMAGE_BORDER_ROUND FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_BACKGROUND_IMAGE FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_BACKGROUND_POSITION FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_BACKGROUND_REPEAT_ROUND FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_BACKGROUND_REPEAT_SPACE FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_BACKGROUND_REPEAT_X_Y FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_BACKGROUND_SIZE FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_BLEND_MODE FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_BORDER_COLOR FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_BORDER_STYLE_DASHED FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_BORDER_STYLE_DOTTED FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_BORDER_WIDTH FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_BORDER_WIDTH_dashed FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_BORDER_WIDTH_dotted FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_CLOCKWISE FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_DROP_SHADOW FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_IMAGE_BORDER FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_IMAGE_BORDER_NO_REPEAT FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_IMAGE_BORDER_ROUND FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_INNER_SHADOW FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_LABEL_LINE_LENGTH FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_LEGEND_SIDE_BOTTOM FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_LEGEND_SIDE_LEFT FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_LEGEND_SIDE_RIGHT FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_LEGEND_SIDE_TOP FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_LEGEND_VISIBLE FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_POSITION_SCALE_SHAPE FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_ROTATE FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_SCALE_SHAPE FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_SCALE_X FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_SCALE_Y FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_SHAPE FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_SNAP_TO_PIXEL FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_START_ANGLE FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_TITLE_SIDE_BOTTOM FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_TITLE_SIDE_LEFT FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_TITLE_SIDE_RIGHT FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_TITLE_SIDE_TOP FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_TRANSLATE_X FXCssAutomated/test/css/controls/functional/PieChartsCssTest/PieCharts_TRANSLATE_Y
13-08-2013

Good questions Jim. I actually am surprised that any supported hardware we would run on wouldn't support SSE2 at the very least, as that was added to hardware in 2001 (12 years ago!). SSE3 is even 9 years old (released in 2004). From a cursory reading of https://en.wikipedia.org/wiki/SSE2 it looks like AMD 64 has always supported SSE2 so I suspect 64-bit builds can always have at least SSE2 enabled. If you look at the set of chipsets supporting SSE2 on that wiki page, it lists Atom, Pentium M, Celeron M, and Core (among others). Do we even have a minimum CPU hardware list anywhere? It would be good to add comments to the win.gradle file as we change the flags so that we know why they are different for different projects that we build. It would be fantastic to get performance numbers based on the different flag settings to see if there is any advantage one way or the other. If we find performance improvement is marginal, playing it safe and supporting more systems is probably the right way to go.
13-08-2013

It may be that the 64-bit architecture supports a minimum SSE level and so requesting pre-SSE2 and 64-bits on the same command line is a conflict (recorded as "unknown option"). Can we do a conditional /arch based on if the build is 64-bits? Note that the SSE flag is necessary to prevent SSE2 instruction generation if we still support pre-SSE2 hardware.
13-08-2013

VectorTest (in the tests/performance/GUIMark directory) should provide decent performance numbers for Pisces...
13-08-2013

>Also, should we do a performance analysis of the default /O2 being used and /Ox? Pisces is fairly performance intensive code... If you have a test case in mind that exercise this code intensively I can give it try (using different compiler flags)
12-08-2013

Note that, contrary to Richard's recommendations above, and according to RT-21470, /arch:SSE is not enough to ensure that no SSE2 instructions are used in Decora. Care needs to be taken as per the fix in that other bug to keep Decora running on all hardware. (Unless we've recently discontinued support for pre-SSE2 hardware?)
12-08-2013

>The fact that the compilers that Felipe is using don't understand /arch:SSE could indicate that we are on newer compilers now? I'm using Visual Studio 2010 Pro, the same our Hudson uses (where the same problem can also be seen in the logs, only for 64 compilation). My best guess is that the VS2010 compiler for 64 does not implement the /arch:SSE flag.
12-08-2013

I found the bug on the SSE instruction set (RT-21470). A comment in the bug indicates that the bug was fixed in the 2010SP1 compilers. Also, the /arch:SSE was apparently on the list of flags before we "fixed" that bug, so it looks like the problem was that the compilers used an SSE2 instruction even when told only to use SSE. The changelog for that fix would indicate what we had to do to fix the instructions used for Decora and we can then determine if those flag settings are still relevant to our current hardware support list and our current minimum compiler revisions...
12-08-2013

I recall that the problem was that the compilers we were using a while back were using SSE<too high> instructions when we asked for a given level of SSE. As a result, we were failing on supported hardware. Unfortunately, the hg histories were lost when we moved files around, so I'll have to look up the bug, but if we've changed our minimum hardware requirements, or if they fixed the bug in the compilers, then we can go back to using a default architecture. The fact that the compilers that Felipe is using don't understand /arch:SSE could indicate that we are on newer compilers now? I'll do a Jira search and see what I can find... Also, should we do a performance analysis of the default /O2 being used and /Ox? Pisces is fairly performance intensive code...
12-08-2013

I might recommend only removing fp:fast and using it for decora, since that is causing the problem and leave the SSE flag in place.
12-08-2013

I confirm that removing "/fp:fast" fixes the problem In the past this flag was only used in /rt/obsolete/decora-sse-native/Makefile The same is true for "arch:SSE", only decora-sse-native set it, which apparently upsets my compiler: Command line warning D9002 : ignoring unknown option '/arch:SSE' How do you we want to fix this problem ? Remove '/arch:SSE' to all, remove "/fp:fast" (and only add it to decora) ?
12-08-2013

I have 4 other bugs that are all the same problem: RT-32163: On Windows, full screen prompt is garbled. RT-31572: Canvas: error with GraphicsContext.setStroke(new LinearGradient( ... RT-31551: Canvas: error rendering text using GraphicsContext.strokeText RT-31926: PieChart label lines are corrupted Since I have the proper hardware here with me I'll test Jim suggestions and send a review accordingly.
12-08-2013

It looks like there are new flags used now for the native pisces code which can sometimes cause problems. The flags used for 64-bit compilation look reasonable, but perhaps some of the optimization flags affect the 64-bit compiler more than the 32-bit compiler. The native pisces library (prism-common-native) used to be built by a Makefile with optimization flag "/Ox". With the gradle build scripts it now uses "/O2 /fp:fast /arch:SSE /EHsc". Of all of those, the most suspicious would be the /fp:fast flag which Richard remembers seeing visual artifacts from before. I would test a build removing that optimization, but I do not have the right environment for a 64-bit WIndows build so I am reassigning to Peter who reportedly got the 64-bit gradle builds up and running for analysis and to fix the CC_FLAGS if the above observations pan out. My recommendation would be to modify the WIN.prism.ccFlags property to remove /O2 and /fp:fast and to add back in /Ox and see if the problems go away. Note that there are several related bugs linked to this issue which may also be caused by this change of compliler flags...
08-08-2013

I can reproduce it on a 64-bit promoted build (b100), but not a 32-bit build.
06-08-2013

The test case had the green border commented out. I'm assuming that I need to put it back to see the bug? Even with the stroke I don't see the bug on Windows 7 using the latest graphics scrum.
05-08-2013

I do not see this on my MBP running Windows 7 on either the default D3D or the SW pipeline.
05-08-2013

Affected tests: graphics/api/node/IntersectsTestTest.java graphics/api/node/Clip_bTest.java graphics/api/node/TArc1Test.java graphics/api/node/TArcTest.java graphics/api/shape/Path_1aTest.java graphics/api/shape/Path_1bTest.java graphics/api/shape/SVGPath_1aTest.java
31-07-2013

Affected tests: SceneGraphAutomated/test/scenegraph/binding/shapes/RectangleTest/arcHeight SceneGraphAutomated/test/scenegraph/binding/shapes/RectangleTest/arcWidth
24-07-2013

related bug: https://javafx-jira.kenai.com/browse/RT-31572 https://javafx-jira.kenai.com/browse/RT-31551
23-07-2013