123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- --
- -- Copyright 2014 Google Inc.
- --
- -- Use of this source code is governed by a BSD-style license that can be
- -- found in the LICENSE file.
- --
- -- Path scraping script.
- -- This script is designed to count the number of times we fall back to software
- -- rendering for a path in a given SKP. However, this script does not count an exact
- -- number of uploads, since there is some overlap with clipping: e.g. two clipped paths
- -- may cause three uploads to the GPU (set clip 1, set clip 2, unset clip 2/reset clip 1),
- -- but these cases are rare.
- draws = 0
- drawPaths = 0
- drawPathsAnti = 0
- drawPathsConvexAnti = 0
- clips = 0
- clipPaths = 0
- clipPathsAnti = 0
- clipPathsConvexAnti = 0
- usedPath = false
- usedSWPath = false
- skpsTotal = 0
- skpsWithPath = 0
- skpsWithSWPath = 0
- function sk_scrape_startcanvas(c, fileName)
- usedPath = false
- usedSWPath = false
- end
- function sk_scrape_endcanvas(c, fileName)
- skpsTotal = skpsTotal + 1
- if usedPath then
- skpsWithPath = skpsWithPath + 1
- if usedSWPath then
- skpsWithSWPath = skpsWithSWPath + 1
- end
- end
- end
- function string.starts(String,Start)
- return string.sub(String,1,string.len(Start))==Start
- end
- function isPathValid(path)
- if not path then
- return false
- end
- if path:isEmpty() then
- return false
- end
- if path:isRect() then
- return false
- end
- return true
- end
- function sk_scrape_accumulate(t)
- if (string.starts(t.verb, "draw")) then
- draws = draws + 1
- end
- if (string.starts(t.verb, "clip")) then
- clips = clips + 1
- end
- if t.verb == "clipPath" then
- local path = t.path
- if isPathValid(path) then
- clipPaths = clipPaths + 1
- usedPath = true
- if t.aa then
- clipPathsAnti = clipPathsAnti + 1
- if path:isConvex() then
- clipPathsConvexAnti = clipPathsConvexAnti + 1
- else
- usedSWPath = true
- end
- end
- end
- end
- if t.verb == "drawPath" then
- local path = t.path
- local paint = t.paint
- if paint and isPathValid(path) then
- drawPaths = drawPaths + 1
- usedPath = true
- if paint:isAntiAlias() then
- drawPathsAnti = drawPathsAnti + 1
- if path:isConvex() then
- drawPathsConvexAnti = drawPathsConvexAnti + 1
- else
- usedSWPath = true
- end
- end
- end
- end
- end
- function sk_scrape_summarize()
- local swDrawPaths = drawPathsAnti - drawPathsConvexAnti
- local swClipPaths = clipPathsAnti - clipPathsConvexAnti
- io.write("clips = clips + ", clips, "\n");
- io.write("draws = draws + ", draws, "\n");
- io.write("clipPaths = clipPaths + ", clipPaths, "\n");
- io.write("drawPaths = drawPaths + ", drawPaths, "\n");
- io.write("swClipPaths = swClipPaths + ", swClipPaths, "\n");
- io.write("swDrawPaths = swDrawPaths + ", swDrawPaths, "\n");
- io.write("skpsTotal = skpsTotal + ", skpsTotal, "\n");
- io.write("skpsWithPath = skpsWithPath + ", skpsWithPath, "\n");
- io.write("skpsWithSWPath = skpsWithSWPath + ", skpsWithSWPath, "\n");
- end
|