The mi arc code caches the results of some "expensive" computations, presumably for performance reasons. It's actually in desperate need of a rewrite, possibly by just reverting to the R4 version, but this is low-hanging fruit.
Created attachment 5383 [details] [review] miarc-fat-trim-1.patch reduce the cache to a single bucket, and remove a needlessly global symbol. i'll test performance of this with Xvfb in a bit.
this can't be right: ~% x11perfcomp -r /tmp/xvfb-old-arc.perf /tmp/xvfb-new-arc.perf 1: /tmp/xvfb-old-arc.perf 2: /tmp/xvfb-new-arc.perf 1 2 Operation -------- ----------------- ----------------- 6680000.0 6820000.0 ( 1.02) 1-pixel circle 4080000.0 3800000.0 ( 0.93) 10-pixel circle 611000.0 570000.0 ( 0.93) 100-pixel circle 117000.0 104000.0 ( 0.89) 500-pixel circle 202000.0 214000.0 ( 1.06) 100-pixel dashed circle 170000.0 170000.0 ( 1.00) 100-pixel double-dashed circle 449000.0 443000.0 ( 0.99) 10-pixel wide circle 25400.0 43100.0 ( 1.70) 100-pixel wide circle 1890.0 7440.0 ( 3.94) 500-pixel wide circle 6240.0 6430.0 ( 1.03) 100-pixel wide dashed circle 6520.0 7160.0 ( 1.10) 100-pixel wide double-dashed circle 1880000.0 1810000.0 ( 0.96) 10-pixel partial circle 514000.0 506000.0 ( 0.98) 100-pixel partial circle 72400.0 71600.0 ( 0.99) 10-pixel wide partial circle 21200.0 26200.0 ( 1.24) 100-pixel wide partial circle 15900000.0 15700000.0 ( 0.99) 1-pixel solid circle 720000.0 796000.0 ( 1.11) 10-pixel solid circle 19300.0 68500.0 ( 3.55) 100-pixel solid circle 3450.0 9160.0 ( 2.66) 500-pixel solid circle 538000.0 546000.0 ( 1.01) 10-pixel fill chord partial circle 27100.0 77800.0 ( 2.87) 100-pixel fill chord partial circle 506000.0 505000.0 ( 1.00) 10-pixel fill slice partial circle 23800.0 69400.0 ( 2.92) 100-pixel fill slice partial circle 3460000.0 3470000.0 ( 1.00) 10-pixel ellipse 670000.0 654000.0 ( 0.98) 100-pixel ellipse 153000.0 153000.0 ( 1.00) 500-pixel ellipse 255000.0 252000.0 ( 0.99) 100-pixel dashed ellipse 205000.0 203000.0 ( 0.99) 100-pixel double-dashed ellipse 543000.0 214000.0 ( 0.39) 10-pixel wide ellipse 35900.0 22200.0 ( 0.62) 100-pixel wide ellipse 2710.0 4090.0 ( 1.51) 500-pixel wide ellipse 5930.0 5270.0 ( 0.89) 100-pixel wide dashed ellipse 5030.0 4130.0 ( 0.82) 100-pixel wide double-dashed ellipse 1610000.0 1600000.0 ( 0.99) 10-pixel partial ellipse 585000.0 588000.0 ( 1.01) 100-pixel partial ellipse 69700.0 56900.0 ( 0.82) 10-pixel wide partial ellipse 13000.0 14300.0 ( 1.10) 100-pixel wide partial ellipse 954000.0 994000.0 ( 1.04) 10-pixel filled ellipse 31100.0 98800.0 ( 3.18) 100-pixel filled ellipse 5060.0 14400.0 ( 2.85) 500-pixel filled ellipse 605000.0 604000.0 ( 1.00) 10-pixel fill chord partial ellipse 60000.0 130000.0 ( 2.17) 100-pixel fill chord partial ellipse 601000.0 587000.0 ( 0.98) 10-pixel fill slice partial ellipse 54900.0 114000.0 ( 2.08) 100-pixel fill slice partial ellipse
Sorry about the phenomenal bug spam, guys. Adding xorg-team@ to the QA contact so bugs don't get lost in future.
Fixed in git, yay.
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.