Improve caching of special case paths in GrStencilAndCoverPathRenderer
authorkkinnunen <kkinnunen@nvidia.com>
Thu, 21 May 2015 07:37:30 +0000 (00:37 -0700)
committerCommit bot <commit-bot@chromium.org>
Thu, 21 May 2015 07:37:30 +0000 (00:37 -0700)
commit070e01056acdd9980619e71e2da390efb94e912e
treeaa2eb790a9170813e396a4f593bc6eeec85efdca
parentf2539d50f911914af0f80f0092ff8c654869e650
Improve caching of special case paths in GrStencilAndCoverPathRenderer

Cache lines and oval paths in their own cache domains. Skia has many
hard-to-replace codepaths that create volatile paths out of lines or
ovals.

Results for amd64:
               desk_tigersvg.skp_1 3.06ms -> 3.07ms 1x
                   tabl_cnet.skp_1  2.3ms ->  2.3ms 1x
                  desk_baidu.skp_1 8.99ms -> 8.98ms 1x
                desk_weather.skp_1 4.58ms -> 4.57ms 1x
               desk_samoasvg.skp_1 12.3ms -> 12.3ms 1x
            tabl_gamedeksiam.skp_1 15.8ms -> 15.7ms 1x
             desk_chalkboard.skp_1 14.9ms -> 14.9ms 1x
                 desk_mapsvg.skp_1 6.57ms -> 6.54ms 1x
              desk_wordpress.skp_1  2.2ms -> 2.19ms 1x
               tabl_slashdot.skp_1 6.91ms -> 6.84ms 0.99x
               desk_linkedin.skp_1  7.7ms -> 7.58ms 0.98x
      desk_googlespreadsheet.skp_1 58.7ms -> 57.7ms 0.98x
                  tabl_ukwsj.skp_1 7.67ms -> 7.53ms 0.98x
               tabl_engadget.skp_1 4.71ms -> 4.61ms 0.98x
                 desk_carsvg.skp_1  116ms ->  114ms 0.98x
                tabl_nytimes.skp_1 3.71ms -> 3.61ms 0.97x
desk_googlespreadsheetdashed.skp_1 25.8ms -> 24.9ms 0.97x
                   tabl_hsfi.skp_1  5.3ms ->  5.1ms 0.96x
               tabl_techmeme.skp_1  2.9ms ->  2.8ms 0.96x
                    tabl_cnn.skp_1 6.88ms -> 6.62ms 0.96x
                   desk_espn.skp_1 9.12ms -> 8.64ms 0.95x
                    desk_gws.skp_1 5.15ms -> 4.88ms 0.95x
                  tabl_gspro.skp_1 4.48ms ->  4.2ms 0.94x
           desk_yahooanswers.skp_1 6.84ms ->  6.3ms 0.92x
                 tabl_pravda.skp_1 11.1ms -> 10.1ms 0.91x
                tabl_sahadan.skp_1 11.8ms -> 10.7ms 0.91x
                desk_wowwiki.skp_1 8.48ms -> 7.58ms 0.89x
             tabl_googleblog.skp_1    6ms -> 5.34ms 0.89x
           tabl_worldjournal.skp_1 6.08ms -> 5.35ms 0.88x
                desk_booking.skp_1 15.3ms -> 13.4ms 0.88x
          tabl_androidpolice.skp_1 15.5ms -> 13.5ms 0.87x
                desk_twitter.skp_1 12.2ms -> 10.6ms 0.87x
                 tabl_nofolo.skp_1 5.49ms -> 4.76ms 0.87x
             desk_mobilenews.skp_1   22ms -> 18.9ms 0.86x
             desk_forecastio.skp_1 9.47ms -> 8.05ms 0.85x
      tabl_culturalsolutions.skp_1 6.21ms -> 5.28ms 0.85x
                desk_youtube.skp_1 16.1ms -> 13.5ms 0.84x
                    tabl_mlb.skp_1 9.75ms -> 8.01ms 0.82x
                   tabl_digg.skp_1  5.2ms -> 4.22ms 0.81x
                desk_blogger.skp_1 10.2ms -> 8.24ms 0.81x
            desk_gmailthread.skp_1 26.8ms -> 21.6ms 0.81x
             desk_googleplus.skp_1 10.5ms -> 8.39ms 0.8x
               tabl_frantzen.skp_1 4.55ms -> 3.58ms 0.79x
              desk_pinterest.skp_1 8.85ms -> 6.88ms 0.78x
                   desk_ebay.skp_1 10.5ms -> 8.15ms 0.77x
           tabl_transformice.skp_1 4.93ms ->  3.5ms 0.71x

Results for arm_v7_neon:
               desk_samoasvg.skp_1 13.9ms -> 14.6ms 1.05x
                 desk_mapsvg.skp_1 8.31ms -> 8.75ms 1.05x
             tabl_deviantart.skp_1 1.41ms -> 1.45ms 1.02x
                desk_weather.skp_1  3.8ms -> 3.88ms 1.02x
                 desk_sfgate.skp_1 3.06ms ->  3.1ms 1.01x
          desk_css3gradients.skp_1 2.78ms -> 2.79ms 1x
                   desk_espn.skp_1 6.52ms -> 6.43ms 0.99x
                    desk_gws.skp_1 4.16ms -> 4.09ms 0.98x
                    tabl_cnn.skp_1 4.66ms -> 4.58ms 0.98x
                   tabl_hsfi.skp_1 3.49ms -> 3.42ms 0.98x
           tabl_cuteoverload.skp_1 2.41ms -> 2.35ms 0.98x
           desk_yahooanswers.skp_1 5.28ms -> 5.14ms 0.97x
                 desk_carsvg.skp_1 90.8ms -> 87.9ms 0.97x
                  tabl_gspro.skp_1 2.81ms -> 2.71ms 0.96x
                desk_wowwiki.skp_1 5.85ms -> 5.63ms 0.96x
                 tabl_pravda.skp_1  7.8ms ->  7.5ms 0.96x
                desk_twitter.skp_1 8.14ms ->  7.8ms 0.96x
          tabl_androidpolice.skp_1 10.4ms -> 9.96ms 0.96x
             tabl_googleblog.skp_1 4.06ms -> 3.83ms 0.95x
             desk_mobilenews.skp_1 15.2ms ->   14ms 0.93x
                desk_booking.skp_1 9.89ms -> 9.08ms 0.92x
             desk_forecastio.skp_1 6.16ms -> 5.65ms 0.92x
                desk_blogger.skp_1 6.17ms -> 5.66ms 0.92x
                   tabl_digg.skp_1 3.73ms -> 3.41ms 0.91x
                 tabl_nofolo.skp_1 3.82ms -> 3.47ms 0.91x
           tabl_worldjournal.skp_1 4.24ms -> 3.84ms 0.9x
                desk_youtube.skp_1 10.5ms -> 9.39ms 0.9x
             desk_googleplus.skp_1 7.01ms -> 6.19ms 0.88x
                    tabl_mlb.skp_1 5.91ms -> 5.22ms 0.88x
         tabl_googlecalendar.skp_1 10.7ms -> 9.44ms 0.88x
            desk_gmailthread.skp_1 19.2ms -> 16.8ms 0.88x
                   desk_ebay.skp_1 5.68ms -> 4.93ms 0.87x
              desk_pinterest.skp_1 5.99ms -> 5.08ms 0.85x
             desk_googlehome.skp_1 3.31ms -> 2.71ms 0.82x
           tabl_transformice.skp_1 3.03ms -> 2.44ms 0.81x
                 desk_amazon.skp_1 6.05ms -> 4.84ms 0.8x
               desk_facebook.skp_1 12.6ms -> 9.62ms 0.76x

Review URL: https://codereview.chromium.org/1120023005
src/gpu/GrPath.cpp
src/gpu/GrPath.h
src/gpu/GrStencilAndCoverPathRenderer.cpp