Two ietestcenter cases in WebKit that play with dashing patterns start failing after b66065537cec5 " stroke: Compute bounds for fallback stroker (typically dashing)": https://bugs.webkit.org/show_bug.cgi?id=99189 ietestcenter/css3/bordersbackgrounds/border-radius-style-001.htm ietestcenter/css3/bordersbackgrounds/border-radius-style-002.htm
Actually, one commit earlier: 99593538a9d054aa1bb9fa620f.
Created attachment 69225 [details] Correct rendering for the first test case
Created attachment 69226 [details] Regression rendering for this test case Observe how the dashed line has rounded little extra pieces everywhere.
Created attachment 69232 [details] Cairoscript trace file to reproduce Using this same trace file for both cases, the correct image is generated before the offending commit, the regressed image is generated afterwards.
Created attachment 69234 [details] Simpler test case, dashed black (correct)
Created attachment 69235 [details] Dashed black, incorrect
Created attachment 69236 [details] Dashed black, tracefile
Thanks for the trace, much easier than tracking down border-radius-style-001.htm. :) So "git revert 99593538a9d054aa1bb9fa620f" fixes things for me, which indeed is odd as we shouldn't be applying CAIRO_LINE_CAP_ROUND at all...
It's not the capping, but the joins around the curve...
(In reply to comment #9) > It's not the capping, but the joins around the curve... I tried sprinkling fixed joins in webKit's cairo backend, that didn't seem to help (or i missed a few places).
This form of the stroker uses implicit ROUND joins along the splines. It just answers the mystery of how we end up generate fans but not the root cause.
commit d7f5a1bec421d6c7b92d16daae681fa31ac7c212 Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Wed Oct 31 09:27:52 2012 +0000 pen: First check whether the in/out edges lie within the single pen vertex In order to prevent underflow when searching for the closing pen vertex, we first need to be sure that it does not simply lie next to the opening pen vertex. As a result we were missing many cases that should have been a bevel (in == out) and generating almost complete round caps instead. Reported-by: Dominik Röttsches <dominik.rottsches@intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=56432 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.