Skia is a complete 2D graphic library for drawing Text, Geometries, and Images. See documentation for contribution instructions.
This report presents the forensic synthetic code analysis of google/skia, a C++ project with 10,825 GitHub stars. SynthScan v2.0 examined 1,740,322 lines of code across 7200 source files, recording 4444 pattern matches distributed across 20 syntactic categories. The overall adjusted score of 2.8 places this repository in the Likely human-written band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 4444 distinct pattern matches across 20 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | experimental/rust_bmp/decoder/impl/SkBmpRustCodec.cpp | 1 | /* | COMMENT |
| LOW | experimental/rust_bmp/ffi/FFI.rs | 81 | /// Attempt to read all image pixel data from the stream into internal buffer. | COMMENT |
| LOW | experimental/lowp-basic/lowp_experiments.cpp | 1 | /* | COMMENT |
| LOW | experimental/tskit/bindings/bindings.h | 1 | /* | COMMENT |
| LOW | experimental/tskit/bindings/bindings.h | 21 | // | COMMENT |
| LOW | experimental/tskit/bindings/bindings.h | 41 | // */ | COMMENT |
| LOW | experimental/minimal_ios_mtl_skia_app/main.mm | 1 | // Copyright 2019 Google LLC | COMMENT |
| LOW | experimental/webgpu-bazel/src/bindings.cpp | 1 | /* | COMMENT |
| LOW | experimental/webgpu-bazel/src/bindings.cpp | 21 | COMMENT | |
| LOW | bench/SkGlyphCacheBench.cpp | 1 | /* | COMMENT |
| LOW | bench/GlyphRunRSXformBench.cpp | 1 | /* | COMMENT |
| LOW | bench/BlendmodeBench.cpp | 1 | /* | COMMENT |
| LOW | bench/ColorFilterBench.cpp | 1 | /* | COMMENT |
| LOW | bench/BlurRectBench.cpp | 1 | /* | COMMENT |
| LOW | bench/PDFBench.cpp | 1 | /* | COMMENT |
| LOW | bench/PicturePlaybackBench.cpp | 1 | /* | COMMENT |
| LOW | bench/BulkRectBench.cpp | 1 | /* | COMMENT |
| LOW | bench/DashBench.cpp | 1 | /* | COMMENT |
| LOW | bench/TessellateBench.cpp | 1 | /* | COMMENT |
| LOW | bench/SkSLBench.cpp | 1 | /* | COMMENT |
| LOW | bench/SkSLBench.cpp | 21 | #include "src/sksl/codegen/SkSLGLSLCodeGenerator.h" | COMMENT |
| LOW | bench/SkGlyphCacheBench.h | 1 | // Copyright 2019 Google LLC | COMMENT |
| LOW | bench/GameBench.cpp | 1 | /* | COMMENT |
| LOW | bench/TileImageFilterBench.cpp | 1 | /* | COMMENT |
| LOW | bench/ParagraphBench.cpp | 1 | /* | COMMENT |
| LOW | bench/DisplacementBench.cpp | 1 | /* | COMMENT |
| LOW | bench/GlyphQuadFillBench.cpp | 1 | /* | COMMENT |
| LOW | bench/GpuTools.h | 21 | namespace skgpu { | COMMENT |
| LOW | bench/ClipMaskBench.cpp | 1 | /* | COMMENT |
| LOW | bench/ImageFilterCollapse.cpp | 1 | /* | COMMENT |
| LOW | bench/VertexColorSpaceBench.cpp | 1 | /* | COMMENT |
| LOW | bench/VertexColorSpaceBench.cpp | 21 | #include "src/gpu/ganesh/GrOpFlushState.h" | COMMENT |
| LOW | bench/FontCacheBench.cpp | 1 | /* | COMMENT |
| LOW | bench/nanobench.cpp | 1 | /* | COMMENT |
| LOW | bench/nanobench.cpp | 21 | #include "bench/SkSLBench.h" | COMMENT |
| LOW | bench/nanobench.cpp | 41 | #include "src/core/SkTaskGroup.h" | COMMENT |
| LOW | bench/nanobench.cpp | 61 | COMMENT | |
| LOW | bench/nanobench.cpp | 81 | #include "tools/graphite/ContextFactory.h" | COMMENT |
| LOW | bench/nanobench.cpp | 101 | #include <cinttypes> | COMMENT |
| LOW | bench/nanobench.cpp | 521 | // overhead | COMMENT |
| LOW | bench/nanobench.cpp | 1181 | } | COMMENT |
| LOW | bench/EncodeBench.cpp | 1 | /* | COMMENT |
| LOW | bench/SKPBench.cpp | 1 | /* | COMMENT |
| LOW | bench/TextBlobBench.cpp | 1 | /* | COMMENT |
| LOW | bench/BlurBench.cpp | 1 | /* | COMMENT |
| LOW | bench/ImageFilterDAGBench.cpp | 1 | /* | COMMENT |
| LOW | bench/ClearBench.cpp | 1 | /* | COMMENT |
| LOW | bench/BlurImageFilterBench.cpp | 1 | /* | COMMENT |
| LOW | bench/BlurImageFilterBench.cpp | 21 | #define BLUR_SIGMA_MINI 0.5f | COMMENT |
| LOW | bench/PathTextBench.cpp | 1 | /* | COMMENT |
| LOW | bench/PathBench.cpp | 1 | /* | COMMENT |
| LOW | bench/graphite/BoundsManagerBench.cpp | 1 | /* | COMMENT |
| LOW | bench/graphite/IntersectionTreeBench.cpp | 1 | /* | COMMENT |
| LOW | infra/bots/build_task_drivers.sh | 1 | #!/bin/bash | COMMENT |
| LOW | infra/bots/recipes.py | 1 | #!/bin/sh | COMMENT |
| LOW | infra/bots/gen_tasks_logic/gen_tasks_logic.go | 101 | // using the default Bazel cache path would work, our Bazel task drivers demand an explicit path. | COMMENT |
| LOW | infra/bots/gen_tasks_logic/gen_tasks_logic.go | 2161 | // | COMMENT |
| LOW | infra/bots/gen_tasks_logic/task_builder.go | 301 | // { | COMMENT |
| LOW | infra/bots/analysis/axis.sh | 1 | #!/bin/bash | COMMENT |
| LOW | infra/bots/recipe_modules/flavor/android.py | 81 | 'Pixel10', | COMMENT |
| 3931 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tools/reformat-json.py | 0 | copyright 2015 google inc. use of this source code is governed by a bsd-style license that can be found in the license f | STRING |
| HIGH | tools/fonts/generate_fir_coeff.py | 0 | copyright 2015 google inc. use of this source code is governed by a bsd-style license that can be found in the license f | STRING |
| HIGH | tools/embed_resources.py | 0 | copyright 2015 google inc. use of this source code is governed by a bsd-style license that can be found in the license f | STRING |
| HIGH | tools/skp/page_sets/skia_espn_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_twitter_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_wikipedia_mobile.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_tiger8svg_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_theverge_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_css3gradients_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_pravda_tablet.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_tigersvg_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_googlesearch_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_mapsvg_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_chalkboard_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_weather_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_forecastio_mobile.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_gmail_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_facebook_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_googlecalendar_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_googlenews_mobile.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_googledocs_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_yahooanswers_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_ynevsvg_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_yahoosports_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_cnn_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_booking_mobile.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_carsvg_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_baidu_mobile.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_digg_tablet.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_facebook_mobile.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_amazon_mobile.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_gujuratiwiki_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_worldjournal_tablet.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_slashdot_mobile.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_wowwiki_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_motionmarkarcs_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_wikipedia_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_googlespreadsheet_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_theverge_mobile.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_ebay_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_youtube_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_googlesearch_mobile.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_youtube_mobile.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_capitalvolkswagen_mobile.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_reddit_mobile.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_motionmarksuits_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_mozilla_tablet.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_techcrunch_mobile.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_motionmarkpaths_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_deviantart_mobile.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_cnnarticle_mobile.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_samoasvg_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_motionmarksuitsclip_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_cnn_mobile.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_googleimagesearch_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_nytimes_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | tools/skp/page_sets/skia_linkedin_desktop.py | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | …p/page_sets/other/CRASHING-skia_vnexpress_nexus10.json | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | …kp/page_sets/other/POPUP-skia_mercurynews_nexus10.json | 0 | pages designed to represent the median, not highly optimized web | STRING |
| HIGH | …ge_sets/other/CRASHING-skia_wikipedia_galaxynexus.json | 0 | pages designed to represent the median, not highly optimized web | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | experimental/tools/mskp_parser.py | 10 | CODE | |
| LOW | experimental/tools/mskp_parser.py | 12 | CODE | |
| LOW | infra/bots/zip_utils_test.py | 12 | CODE | |
| LOW | infra/bots/zip_utils_test.py | 17 | CODE | |
| LOW | infra/bots/run_recipe.py | 9 | CODE | |
| LOW | infra/bots/check_deps.py | 12 | CODE | |
| LOW | infra/bots/utils.py | 9 | CODE | |
| LOW | infra/bots/zip_utils.py | 12 | CODE | |
| LOW | infra/bots/git_utils.py | 10 | CODE | |
| LOW | infra/bots/git_utils.py | 12 | CODE | |
| LOW | infra/bots/recipe_modules/checkout/api.py | 10 | CODE | |
| LOW | …dules/doxygen/resources/generate_and_upload_doxygen.py | 14 | CODE | |
| LOW | infra/bots/recipe_modules/flavor/android.py | 6 | CODE | |
| LOW | infra/bots/recipe_modules/flavor/android.py | 7 | CODE | |
| LOW | infra/bots/recipe_modules/flavor/ssh.py | 6 | CODE | |
| LOW | infra/bots/recipe_modules/flavor/chromebook.py | 6 | CODE | |
| LOW | infra/bots/recipe_modules/flavor/resources/scale_cpu.py | 6 | CODE | |
| LOW | …/bots/recipe_modules/flavor/resources/ios_debug_cmd.py | 9 | CODE | |
| LOW | …e_modules/flavor/resources/set_cpu_scaling_governor.py | 6 | CODE | |
| LOW | …e_modules/flavor/resources/set_cpu_scaling_governor.py | 9 | CODE | |
| LOW | …ots/recipe_modules/flavor/resources/set_gpu_scaling.py | 6 | CODE | |
| LOW | …ots/recipe_modules/flavor/resources/set_gpu_scaling.py | 9 | CODE | |
| LOW | …cipe_modules/flavor/resources/setup_device_for_asan.py | 6 | CODE | |
| LOW | …bots/recipe_modules/flavor/resources/set_cpu_online.py | 6 | CODE | |
| LOW | …bots/recipe_modules/flavor/resources/set_cpu_online.py | 9 | CODE | |
| LOW | …ra/bots/recipe_modules/flavor/resources/win_ssh_cmd.py | 7 | CODE | |
| LOW | …ra/bots/recipe_modules/flavor/resources/win_ssh_cmd.py | 8 | CODE | |
| LOW | …ra/bots/recipe_modules/flavor/resources/win_ssh_cmd.py | 9 | CODE | |
| LOW | infra/bots/recipes/perf.py | 11 | CODE | |
| LOW | infra/bots/recipes/housekeeper.py | 9 | CODE | |
| LOW | infra/bots/recipes/compute_buildstats.py | 8 | CODE | |
| LOW | infra/bots/assets/svg/create.py | 15 | CODE | |
| LOW | …a/bots/assets/chromebook_arm_gles/create_and_upload.py | 16 | CODE | |
| LOW | infra/bots/assets/chromebook_arm_gles/create.py | 12 | CODE | |
| LOW | infra/bots/assets/skp/create_and_upload.py | 15 | CODE | |
| LOW | infra/bots/assets/skp/create_and_upload.py | 16 | CODE | |
| LOW | infra/bots/assets/skp/create.py | 12 | CODE | |
| LOW | infra/bots/assets/win_toolchain/create_and_upload.py | 15 | CODE | |
| LOW | infra/bots/assets/win_toolchain/create_and_upload.py | 16 | CODE | |
| LOW | infra/bots/assets/win_toolchain/create.py | 24 | CODE | |
| LOW | infra/bots/assets/win_toolchain/create.py | 27 | CODE | |
| LOW | infra/bots/assets/win_toolchain/create.py | 29 | CODE | |
| LOW | infra/bots/assets/binutils_linux_x64/create.py | 13 | CODE | |
| LOW | infra/bots/assets/gcloud_linux/create.py | 13 | CODE | |
| LOW | infra/bots/assets/gcloud_linux/create.py | 15 | CODE | |
| LOW | infra/bots/assets/arm64_sysroot/create.py | 12 | CODE | |
| LOW | infra/bots/assets/arm64_sysroot/create.py | 14 | CODE | |
| LOW | infra/bots/assets/arm64_sysroot/create.py | 16 | CODE | |
| LOW | infra/bots/assets/scripts/create.py | 11 | CODE | |
| LOW | …fra/bots/assets/android_sdk_linux/create_and_upload.py | 15 | CODE | |
| LOW | …fra/bots/assets/android_sdk_linux/create_and_upload.py | 16 | CODE | |
| LOW | …ots/assets/chromebook_x86_64_gles/create_and_upload.py | 16 | CODE | |
| LOW | infra/bots/assets/chromebook_x86_64_gles/create.py | 12 | CODE | |
| LOW | infra/bots/assets/armhf_sysroot/create.py | 12 | CODE | |
| LOW | …bots/assets/chromebook_arm64_gles/create_and_upload.py | 16 | CODE | |
| LOW | infra/bots/assets/chromebook_arm64_gles/create.py | 12 | CODE | |
| LOW | infra/bots/assets/skimage/create_and_upload.py | 14 | CODE | |
| LOW | infra/bots/buildstats/buildstats_web.py | 9 | CODE | |
| LOW | infra/bots/buildstats/buildstats_wasm.py | 9 | CODE | |
| LOW | infra/bots/buildstats/buildstats_cpp.py | 9 | CODE | |
| 61 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/generate_patches.py | 39 | # so we can just use a stub and it works fine. | COMMENT |
| MEDIUM | tools/gpu/vk/VkTestUtils.cpp | 769 | // We can manually disable any undesired features here. Currently, we only disable robust | COMMENT |
| MEDIUM | tools/sk_app/mac/Window_mac.mm | 239 | // Something more robust would be needed to support alternate keyboards. | COMMENT |
| LOW | tools/calmbench/ab.py | 284 | if (a == 0): # bad bench, just return no regression | CODE |
| MEDIUM | tests/ScaleToSidesTest.cpp | 56 | // (Is there a more robust way to test this, like SkTFitsIn but double->float?) | COMMENT |
| MEDIUM | tests/GrQuadCropTest.cpp | 142 | // numerically robust enough. | COMMENT |
| MEDIUM | tests/M44Test.cpp | 325 | // MapRect should have a more robust solution than a fixed w > epsilon and when it does, | COMMENT |
| MEDIUM | tests/M44Test.cpp | 371 | // Stripped down test case from skbug.com/40043416. Essentially, the corners of this rect would | COMMENT |
| MEDIUM | tests/MatrixTest.cpp | 1083 | // Stripped down test case from skbug.com/40043416. Essentially, the corners of this rect would | COMMENT |
| MEDIUM | tests/graphite/InnerFillTest.cpp | 61 | // traverse the recorded draws and inspect them could let these checks be more robust, e.g. | COMMENT |
| LOW | third_party/dawn/cmake_utils.py | 350 | # We can't just use ar.exe because it is not shipped with MSVC. | COMMENT |
| MEDIUM | gm/drawquadset.cpp | 84 | // Use non-public API to leverage general GrPaint capabilities | COMMENT |
| MEDIUM | gm/compositor_quads.cpp | 56 | // and quadrilaterals with per-edge AA, with complex images, effects, and seamless tiling. | COMMENT |
| MEDIUM | modules/skcms/src/skcms_internals.h | 21 | // skcms can leverage some C++ extensions when they are present. | COMMENT |
| MEDIUM | modules/canvaskit/compile_gm.sh | 186 | # test harness. Thus we omit them. | COMMENT |
| MEDIUM | modules/canvaskit/htmlcanvas/canvas2dcontext.js | 869 | // to the identity. Essentially "commit" the transform. | COMMENT |
| MEDIUM | src/gpu/ganesh/vk/GrVkResourceProvider.cpp | 453 | // TODO: We really need to have a more robust way to protect us from client proc calls that | COMMENT |
| MEDIUM | src/gpu/ganesh/gl/GrGLCaps.cpp | 1045 | // Never prefer flat shading on WebGL. GPU detection isn't as robust (e.g. | COMMENT |
| MEDIUM | src/gpu/ganesh/geometry/GrQuadUtils.cpp | 588 | // perspective; it does not prove numerical robust enough in the wild and should be | COMMENT |
| MEDIUM | src/gpu/ganesh/gradients/GrGradientShader.cpp | 448 | // Definitely cannot represent this gradient configuration | COMMENT |
| MEDIUM | src/gpu/ganesh/gradients/GrGradientShader.cpp | 471 | // Definitely cannot represent this gradient configuration | COMMENT |
| MEDIUM | src/gpu/graphite/DrawWriter.h | 139 | // required, so that it is seamless to the caller. The draws do not use instances or indices. | COMMENT |
| MEDIUM | src/gpu/graphite/DrawWriter.h | 152 | // seamless to the caller. | COMMENT |
| MEDIUM | src/gpu/graphite/ShaderInfo.h | 34 | // Backend implementations which may utilize static / immutable samplers should pass in a real | COMMENT |
| MEDIUM | src/gpu/graphite/ShaderInfo.h | 40 | // for each sampler the nodes utilize (dynamic and immutable). This way, a SamplerDesc's index | COMMENT |
| MEDIUM | src/gpu/graphite/ScratchResourceManager.h | 93 | // TODO: Eventually update BufferSubAllocator and DrawBufferManager to leverage the | COMMENT |
| MEDIUM | src/gpu/graphite/PaintParams.cpp | 511 | // Definitely not eligible for conversion to kSrc, remove optimistically added flag | COMMENT |
| MEDIUM | src/gpu/graphite/ShaderInfo.cpp | 1242 | // Porter-Duff blend modes can utilize BlendFormula. | COMMENT |
| MEDIUM | src/gpu/graphite/ResourceTypes.h | 231 | // In order to fit within SamplerDesc's uint32 desc field, backends can only utilize up to | COMMENT |
| MEDIUM | src/gpu/graphite/render/TessellateWedgesRenderStep.cpp | 166 | // TODO: Essentially the same as PathWedgeTessellator::write_patches but with a different | COMMENT |
| MEDIUM | src/core/SkBlockAllocator.h | 468 | // Inline head block, must be at the end so that it can utilize any additional reserved space | COMMENT |
| MEDIUM | src/core/SkRRect.cpp | 982 | // Definitely no intersection | COMMENT |
| MEDIUM | src/codec/SkPngRustCodec.cpp | 378 | // Doing this check here is more robust than doing it inside | COMMENT |
| MEDIUM | src/codec/SkPngRustCodec.cpp | 383 | // Reporting a hard error is more robust than trying to ignore the `fcTL` | COMMENT |
| MEDIUM | src/codec/SkPngRustCodec.cpp | 627 | // Safe advancement: robust if fDst lacks stride padding on the last row. | COMMENT |
| MEDIUM | src/encode/SkJpegGainmapEncoder.cpp | 343 | // obeyed, and further, makes the file dangerous for use by less robust editors (see | COMMENT |
| MEDIUM | src/effects/SkDashPathEffect.cpp | 226 | // TODO: make this test for horizontal & vertical lines more robust | COMMENT |
| MEDIUM | src/ports/SkFontMgr_android_parser.cpp | 882 | // Product fonts (fonts_customization.xml) leverage <fonts-modification version="21"> | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …dules/doxygen/resources/generate_and_upload_doxygen.py | 42 | def generate_and_upload_doxygen(): | CODE |
| LOW | infra/bots/recipe_modules/flavor/ios.py | 162 | def copy_directory_contents_to_device(self, host, device): | CODE |
| LOW | infra/bots/recipe_modules/flavor/ios.py | 165 | def copy_directory_contents_to_host(self, device, host): | CODE |
| LOW | infra/bots/recipe_modules/flavor/api.py | 65 | def copy_directory_contents_to_device(self, host_dir, device_dir): | CODE |
| LOW | infra/bots/recipe_modules/flavor/api.py | 68 | def copy_directory_contents_to_host(self, device_dir, host_dir): | CODE |
| LOW | infra/bots/recipe_modules/flavor/default.py | 59 | def copy_directory_contents_to_device(self, host_dir, device_dir): | CODE |
| LOW | infra/bots/recipe_modules/flavor/default.py | 69 | def copy_directory_contents_to_host(self, device_dir, host_dir): | CODE |
| LOW | infra/bots/recipe_modules/flavor/android.py | 389 | def copy_directory_contents_to_device(self, host, device): | CODE |
| LOW | infra/bots/recipe_modules/flavor/android.py | 398 | def copy_directory_contents_to_host(self, device, host): | CODE |
| LOW | infra/bots/recipe_modules/flavor/ssh.py | 97 | #def copy_directory_contents_to_device(self, host_path, device_path): | COMMENT |
| LOW | infra/bots/recipe_modules/flavor/ssh.py | 100 | #def copy_directory_contents_to_host(self, device_path, host_path): | COMMENT |
| LOW | infra/bots/recipe_modules/flavor/chromebook.py | 50 | def copy_directory_contents_to_device(self, host_path, device_path): | CODE |
| LOW | infra/bots/recipe_modules/flavor/chromebook.py | 53 | def copy_directory_contents_to_host(self, device_path, host_path): | CODE |
| LOW | infra/bots/recipes/compute_buildstats.py | 29 | def add_binary_size_output_property(result, source, binary_size): | CODE |
| LOW | infra/bots/buildstats/buildstats_flutter.py | 104 | def print_skia_lines_file_symbol(lines): | CODE |
| LOW | infra/bots/buildstats/buildstats_flutter.py | 142 | def print_skia_lines_symbol_file(lines): | CODE |
| LOW | tools/parse_llvm_coverage.py | 57 | def _get_per_file_per_line_coverage(report): | CODE |
| LOW | tools/UrlDataManager.h | 20 | class UrlDataManager { | CODE |
| LOW | tools/build_workaround_header.py | 22 | def merge_files_into_workarounds(files): | STRING |
| LOW | tools/skp/webpages_playback.py | 490 | def does_storage_object_exist(self, name): | CODE |
| LOW | tools/skp/webpages_playback.py | 508 | def does_storage_object_exist(self, name): | CODE |
| LOW | tools/skp/webpages_playback.py | 537 | def does_storage_object_exist(self, name): | CODE |
| LOW | tools/perf-canvaskit-puppeteer/path-transform.html | 155 | function svgToPathAndFillColorPairs(svgElement, CanvasKit) { | CODE |
| LOW | tools/perf-canvaskit-puppeteer/canvas_perf.js | 313 | function htmlImageElementToDataURL(htmlImageElement) { | CODE |
| LOW | tools/perf-canvaskit-puppeteer/skp_data_prep.js | 98 | function tableDataFromComparisonDataObject({ | CODE |
| LOW | tools/skpbench/skpbench.py | 109 | def dump_commandline_if_verbose(commandline): | STRING |
| LOW | tools/debugger/DrawCommand.h | 47 | class UrlDataManager; | CODE |
| LOW | tools/debugger/DebugLayerManager.h | 25 | class UrlDataManager; | CODE |
| LOW | tools/debugger/JsonWriteBuffer.h | 31 | class UrlDataManager; | CODE |
| LOW | tools/debugger/DebugCanvas.cpp | 41 | class UrlDataManager; | CODE |
| LOW | tools/debugger/DebugCanvas.h | 42 | class UrlDataManager; | CODE |
| LOW | demos.skia.org/demos/path_performance/main.js | 62 | function switchRenderMethodCallback(switchMethod) { | CODE |
| LOW | demos.skia.org/demos/path_performance/main.js | 94 | function svgToPathStringAndFillColorPairs(svgElement) { | CODE |
| LOW | tests/GrMeshTest.cpp | 70 | class GrGLSLProgramDataManager; | CODE |
| LOW | tests/PrimitiveProcessorTest.cpp | 46 | class GrGLSLProgramDataManager; | CODE |
| LOW | tests/GrGpuBufferTest.cpp | 59 | class GrGLSLProgramDataManager; | CODE |
| LOW | tests/GrPipelineDynamicStateTest.cpp | 58 | class GrGLSLProgramDataManager; | CODE |
| LOW | third_party/dawn/cmake_utils.py | 60 | def add_next_batch_to_command(base_cmd, workset): | CODE |
| LOW | third_party/dawn/cmake_utils.py | 372 | def get_third_party_locations(): | CODE |
| LOW | bazel/external/dawn/generate_dawn_files_test.py | 34 | def test_append_file_to_group_routing(self): | CODE |
| LOW | bazel/external/dawn/generate_dawn_files_test.py | 83 | def test_parse_set_and_list_commands(self): | CODE |
| LOW | bazel/external/dawn/generate_dawn_files.py | 204 | def _handle_generator_command(self, name, args): | CODE |
| LOW | bazel/external/dawn/generate_dawn_files.py | 329 | def _handle_add_library_command(self, args): | CODE |
| LOW | gm/clockwise.cpp | 57 | class GrGLSLProgramDataManager; | CODE |
| LOW | gm/attributes.cpp | 36 | class GrGLSLProgramDataManager; | CODE |
| LOW | modules/canvaskit/memory.js | 68 | function freeArraysThatAreNotMallocedByUsers(ptr, arr) { | CODE |
| LOW | modules/canvaskit/memory.js | 346 | function copyColorComponentsToWasm(r, g, b, a) { | CODE |
| LOW | modules/canvaskit/color.js | 173 | function uIntColorToCanvasKitColor(c) { | CODE |
| LOW | modules/canvaskit/tests/core_test.js | 111 | function decodeAndDrawSingleFrameImage(imgName, goldName, done) { | CODE |
| LOW | src/gpu/ganesh/GrUniformDataManager.h | 25 | class GrUniformDataManager : public GrGLSLProgramDataManager { | CODE |
| LOW | src/gpu/ganesh/GrColorSpaceXform.cpp | 20 | class GrGLSLProgramDataManager; | CODE |
| LOW | src/gpu/ganesh/GrXferProcessor.h | 25 | class GrGLSLProgramDataManager; | CODE |
| LOW | src/gpu/ganesh/GrPipeline.h | 35 | class GrGLSLProgramDataManager; | CODE |
| LOW | src/gpu/ganesh/GrFragmentProcessor.h | 32 | class GrGLSLProgramDataManager; | CODE |
| LOW | src/gpu/ganesh/vk/GrVkPipelineStateDataManager.h | 23 | class GrVkPipelineStateDataManager : public GrUniformDataManager { | CODE |
| LOW | src/gpu/ganesh/glsl/GrGLSLProgramDataManager.h | 26 | class GrGLSLProgramDataManager { | CODE |
| LOW | src/gpu/ganesh/gl/GrGLProgramDataManager.h | 28 | class GrGLProgramDataManager : public GrGLSLProgramDataManager { | CODE |
| LOW | src/gpu/ganesh/ops/FillRRectOp.cpp | 71 | class GrGLSLProgramDataManager; | CODE |
| LOW | src/gpu/ganesh/ops/AAConvexPathRenderer.cpp | 71 | class GrGLSLProgramDataManager; | CODE |
| LOW | src/gpu/ganesh/ops/QuadPerEdgeAA.cpp | 37 | class GrGLSLProgramDataManager; | CODE |
| 12 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | bench/PDFBench.cpp | 324 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do", | CODE |
| LOW | bench/PDFBench.cpp | 324 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do", | CODE |
| LOW | bench/PDFBench.cpp | 338 | "qui dolorem ipsum, quia dolor sit amet consectetur adipiscing velit,", | CODE |
| LOW | bench/PDFBench.cpp | 338 | "qui dolorem ipsum, quia dolor sit amet consectetur adipiscing velit,", | CODE |
| LOW | bench/PDFBench.cpp | 367 | "qui dolorem ipsum, quia dolor sit amet consectetur adipiscing velit,", | CODE |
| LOW | bench/PDFBench.cpp | 367 | "qui dolorem ipsum, quia dolor sit amet consectetur adipiscing velit,", | CODE |
| LOW⚡ | bench/ParagraphBench.cpp | 55 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod " | CODE |
| LOW⚡ | bench/ParagraphBench.cpp | 55 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod " | CODE |
| LOW⚡ | bench/ParagraphBench.cpp | 62 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod " | CODE |
| LOW⚡ | bench/ParagraphBench.cpp | 62 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod " | CODE |
| LOW | gm/animatedimageblurs.cpp | 218 | "Lorem ipsum dolor sit amet,", | CODE |
| LOW | gm/animatedimageblurs.cpp | 218 | "Lorem ipsum dolor sit amet,", | CODE |
| LOW⚡ | modules/skparagraph/tests/SkParagraphTest.cpp | 1814 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod " | CODE |
| LOW⚡ | modules/skparagraph/tests/SkParagraphTest.cpp | 1814 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod " | CODE |
| LOW⚡ | modules/skparagraph/tests/SkParagraphTest.cpp | 1821 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod " | CODE |
| LOW⚡ | modules/skparagraph/tests/SkParagraphTest.cpp | 1821 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod " | CODE |
| LOW⚡ | modules/skparagraph/tests/SkParagraphTest.cpp | 1898 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod " | CODE |
| LOW⚡ | modules/skparagraph/tests/SkParagraphTest.cpp | 1898 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod " | CODE |
| LOW⚡ | modules/skparagraph/tests/SkParagraphTest.cpp | 1905 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod " | CODE |
| LOW⚡ | modules/skparagraph/tests/SkParagraphTest.cpp | 1905 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod " | CODE |
| LOW⚡ | modules/skparagraph/tests/SkParagraphTest.cpp | 1985 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod " | CODE |
| LOW⚡ | modules/skparagraph/tests/SkParagraphTest.cpp | 1985 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod " | CODE |
| LOW⚡ | modules/skparagraph/tests/SkParagraphTest.cpp | 1992 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod " | CODE |
| LOW⚡ | modules/skparagraph/tests/SkParagraphTest.cpp | 1992 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod " | CODE |
| LOW⚡ | modules/skparagraph/tests/SkParagraphTest.cpp | 2072 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod " | CODE |
| LOW⚡ | modules/skparagraph/tests/SkParagraphTest.cpp | 2072 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod " | CODE |
| LOW⚡ | modules/skparagraph/tests/SkParagraphTest.cpp | 2079 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod " | CODE |
| LOW⚡ | modules/skparagraph/tests/SkParagraphTest.cpp | 2079 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod " | CODE |
| LOW | modules/skparagraph/slides/ParagraphSlide.cpp | 1811 | builder.addText(u"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam ut dolor ornare, fermentum nib | CODE |
| LOW | modules/skparagraph/slides/ParagraphSlide.cpp | 1811 | builder.addText(u"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam ut dolor ornare, fermentum nib | CODE |
| LOW | modules/skparagraph/slides/ParagraphSlide.cpp | 2758 | const char* hello = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do"; | CODE |
| LOW | modules/skparagraph/slides/ParagraphSlide.cpp | 2758 | const char* hello = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do"; | CODE |
| LOW⚡ | modules/skparagraph/slides/ParagraphSlide.cpp | 4354 | draw(TextDirection::kLtr, 20, "Lorem ipsum dolor sit amet"); | CODE |
| LOW⚡ | modules/skparagraph/slides/ParagraphSlide.cpp | 4354 | draw(TextDirection::kLtr, 20, "Lorem ipsum dolor sit amet"); | CODE |
| LOW⚡ | modules/skparagraph/slides/ParagraphSlide.cpp | 4355 | draw(TextDirection::kRtl, 20, "Lorem ipsum dolor sit amet"); | CODE |
| LOW⚡ | modules/skparagraph/slides/ParagraphSlide.cpp | 4355 | draw(TextDirection::kRtl, 20, "Lorem ipsum dolor sit amet"); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | PRESUBMIT.py | 78 | CODE | |
| LOW | PRESUBMIT.py | 258 | CODE | |
| LOW | PRESUBMIT.py | 291 | CODE | |
| LOW | PRESUBMIT.py | 334 | CODE | |
| LOW | PRESUBMIT.py | 491 | CODE | |
| LOW | experimental/tools/pdf-comparison.py | 94 | CODE | |
| LOW | infra/bots/recipes.py | 155 | CODE | |
| LOW | infra/bots/zip_utils.py | 28 | CODE | |
| LOW | infra/bots/zip_utils.py | 61 | CODE | |
| LOW | infra/bots/recipe_modules/flavor/ios.py | 127 | CODE | |
| LOW | …cipe_modules/flavor/resources/symbolize_stack_trace.py | 15 | CODE | |
| LOW | infra/bots/recipe_modules/flavor/examples/full.py | 31 | CODE | |
| LOW | …ipe_modules/builder_name_schema/builder_name_schema.py | 47 | CODE | |
| LOW | …ipe_modules/builder_name_schema/builder_name_schema.py | 50 | CODE | |
| LOW | infra/bots/recipes/perf.py | 30 | CODE | |
| LOW | infra/bots/assets/skp/create.py | 67 | CODE | |
| LOW | infra/bots/assets/android_ndk_darwin/create.py | 32 | CODE | |
| LOW | tools/parse_llvm_coverage.py | 57 | CODE | |
| LOW | tools/parse_llvm_coverage.py | 151 | CODE | |
| LOW | tools/rewrite_includes.py | 68 | CODE | |
| LOW | tools/embed_resources.py | 13 | CODE | |
| LOW | tools/sanitize_source_files.py | 21 | CODE | |
| LOW | tools/merge_static_libs.py | 20 | CODE | |
| LOW | tools/gdb/bitmap.py | 51 | CODE | |
| LOW | tools/skp/webpages_playback.py | 207 | CODE | |
| LOW | tools/skpbench/skiaperf.py | 65 | CODE | |
| LOW | tools/skpbench/sheet.py | 74 | CODE | |
| LOW | tools/skpbench/sheet.py | 95 | CODE | |
| LOW | tools/skpbench/skpbench.py | 298 | CODE | |
| LOW | tools/skpbench/skpbench.py | 347 | CODE | |
| LOW | tools/skpbench/skpbench.py | 226 | CODE | |
| LOW | tools/raster_pipeline/llvm_mca_analysis.py | 22 | CODE | |
| LOW | tools/raster_pipeline/llvm_mca_analysis.py | 103 | CODE | |
| LOW | tools/raster_pipeline/llvm_mca_analysis.py | 253 | CODE | |
| LOW | gn/gn_meta_sln.py | 25 | CODE | |
| LOW | gn/gn_to_cmake.py | 550 | CODE | |
| LOW | gn/find_msvc.py | 16 | CODE | |
| LOW | gn/copy_git_directory.py | 11 | CODE | |
| LOW | gn/compile_ib_files.py | 13 | CODE | |
| LOW | gn/gn_to_bp.py | 479 | CODE | |
| LOW | bazel/external/dawn/generate_dawn_files.py | 422 | CODE | |
| LOW | bazel/external/dawn/generate_dawn_files.py | 98 | CODE | |
| LOW | bazel/external/dawn/generate_dawn_files.py | 171 | CODE | |
| LOW | bazel/external/dawn/generate_dawn_files.py | 204 | CODE | |
| LOW | bazel/external/dawn/generate_dawn_files.py | 355 | CODE | |
| LOW | bazel/external/dawn/generate_dawn_files.py | 371 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ules/gold_upload/resources/get_uninteresting_hashes.py | 28 | except Exception as e: | CODE |
| LOW | infra/bots/assets/skp/create.py | 102 | except Exception: | CODE |
| MEDIUM | tools/generate_patches.py | 30 | print(f"Error: Source file not found: {source_file}", file=sys.stderr) | CODE |
| LOW | tools/skp/webpages_playback.py | 279 | except Exception: | CODE |
| LOW | tools/calmbench/ab.py | 402 | except Exception as e: | CODE |
| MEDIUM | tools/raster_pipeline/llvm_mca_analysis.py | 26 | print(f"Error: Could not find {header_path}") | CODE |
| MEDIUM⚡ | tools/raster_pipeline/llvm_mca_analysis.py | 54 | print(f"Error running nm: {e.stderr}") | CODE |
| LOW⚡ | tools/raster_pipeline/llvm_mca_analysis.py | 56 | except Exception as e: | CODE |
| MEDIUM⚡ | tools/raster_pipeline/llvm_mca_analysis.py | 57 | print(f"Error starting nm: {e}") | CODE |
| MEDIUM⚡ | tools/raster_pipeline/llvm_mca_analysis.py | 141 | print(f"Error disassembling {symbol_info['full_demangled']}: {e.stderr}") | CODE |
| LOW⚡ | tools/raster_pipeline/llvm_mca_analysis.py | 143 | except Exception as e: | CODE |
| MEDIUM⚡ | tools/raster_pipeline/llvm_mca_analysis.py | 144 | print(f"Error running objdump: {e}") | CODE |
| MEDIUM⚡ | tools/raster_pipeline/llvm_mca_analysis.py | 209 | print(f"Error running llvm-mca on {asm_path}: {error_msg}") | CODE |
| LOW⚡ | tools/raster_pipeline/llvm_mca_analysis.py | 211 | except Exception as e: | CODE |
| MEDIUM⚡ | tools/raster_pipeline/llvm_mca_analysis.py | 212 | print(f"Error running llvm-mca: {e}") | CODE |
| MEDIUM | tools/raster_pipeline/llvm_mca_analysis.py | 267 | print(f"Error: Binary {args.bin} does not exist.") | CODE |
| MEDIUM | third_party/dawn/cmake_utils.py | 93 | print("Error: ninja not found in PATH.") | CODE |
| MEDIUM | third_party/dawn/build_tint.py | 45 | print("Error: cmake not found in PATH.") | CODE |
| MEDIUM | third_party/dawn/build_tint.py | 50 | print("Error: ninja not found in PATH.") | CODE |
| MEDIUM | third_party/dawn/build_dawn.py | 61 | print("Error: cmake not found in PATH.") | CODE |
| MEDIUM | third_party/dawn/build_dawn.py | 66 | print("Error: ninja not found in PATH.") | CODE |
| LOW | platform_tools/android/skp_gen/android_skp_capture.py | 104 | except Exception: | CODE |
| LOW | platform_tools/android/skp_gen/android_skp_capture.py | 113 | except Exception: | CODE |
| LOW | bazel/external/dawn/generate_dawn_files.py | 168 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | serve-bazel-test-undeclared-outputs.sh | 35 | # Create a temporary directory where we will extract the ZIP file, and delete it on exit. | COMMENT |
| MEDIUM | infra/bots/analysis/create-alljobs.sh | 7 | # Create a file /tmp/alljobs.csv by parsing jobs.json. | COMMENT |
| MEDIUM | infra/bots/recipe_modules/checkout/api.py | 57 | # Create the checkout path if necessary. | COMMENT |
| MEDIUM | infra/bots/recipes/perf_skottietrace.py | 133 | # Create the output JSON file in perf_data_dir for the Upload task to upload. | COMMENT |
| MEDIUM | infra/bots/recipes/perf_skottiewasm_lottieweb.py | 194 | # Create the output JSON file in perf_data_dir for the Upload task to upload. | COMMENT |
| MEDIUM | infra/bots/assets/clang_ubuntu_noble/create.py | 18 | # Create a local docker image tagged "clang_ubuntu_noble_asset" with a] | COMMENT |
| MEDIUM | infra/bots/assets/clang_linux/create.py | 18 | # Create a local docker image tagged "clang_linux_asset" with a compiled clang for amd64 Linux. | COMMENT |
| MEDIUM | infra/bots/assets/arm64_sysroot/create.py | 22 | # Create a local docker image tagged "arm64_sysroot" with a sysroot for | COMMENT |
| MEDIUM | tools/skp/webpages_playback.py | 230 | # Create the required local storage directories. | COMMENT |
| MEDIUM | tools/skp/webpages_playback.py | 249 | # Create an archive of the specified webpages if '--record=True' is | COMMENT |
| MEDIUM | tools/fiddle/animate.sh | 7 | # Create a 3 second long animation from the Raster output of fiddle at 15 fps. | COMMENT |
| MEDIUM | gn/gn_meta_sln.py | 80 | # Create a new solution. We arbitrarily use the first config as the GUID source | COMMENT |
| MEDIUM | …urces/sksl/es2_conformance/import_conformance_tests.py | 214 | # Create a runnable SkSL test by returning green or red based on the test result. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tools/skslc/Main.cpp | 367 | // Apply settings as requested. Since they can come in any order, repeat until we've | COMMENT |
| HIGH | src/gpu/ganesh/GrFragmentProcessor.cpp | 453 | // Compose the two processors as requested. | COMMENT |
| HIGH | src/codec/SkRawCodec.cpp | 579 | // Quick check if the image contains a valid TIFF header as requested by DNG format. | COMMENT |
| HIGH | src/codec/SkCrabbyAvifCodec.cpp | 432 | // 2) Subset computation (as requested by options.fSubset). | COMMENT |
| HIGH | src/sksl/ir/SkSLSwizzle.h | 82 | // Swizzle::MakeExact creates the swizzle as requested, without simplification. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | infra/bots/assets/clang_ubuntu_noble/create.py | 32 | 'cp -R /tmp/clang_output/* /OUT && chmod -R a+w /OUT'] | CODE |
| HIGH | infra/bots/assets/clang_linux/create.py | 31 | 'cp -R /tmp/clang_output/* /OUT && chmod -R a+w /OUT'] | CODE |
| HIGH | infra/bots/assets/arm64_sysroot/create.py | 36 | 'cp -R /tmp/arm64_sysroot_output/* /OUT && chmod -R a+w /OUT'] | CODE |
| HIGH | tools/bloaty_treemap.py | 70 | ['ROOT', null, 0],""") | CODE |
| HIGH | tools/skpbench/_hardware_android.py | 138 | exists = self._adb.check('test -d /sys/class/kgsl && echo y') | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | modules/skparagraph/tests/SkParagraphTest.cpp | 2470 | // TODO: Add test for wavy decorations. | COMMENT |
| LOW | modules/skparagraph/src/TextLine.cpp | 1177 | result.fUnscaledAscent = - fMaxRunMetrics.ascent(); // TODO: implement | CODE |
| LOW | modules/audioplayer/SkAudioPlayer_oboe.cpp | 96 | // TODO: implement rate function (change sample rate of AudioStream) | COMMENT |
| LOW | modules/audioplayer/SkAudioPlayer_oboe.cpp | 101 | // TODO: implement volume function (multiply each sample by desired amplitude) | COMMENT |
| LOW | src/gpu/ganesh/d3d/GrD3DCaps.cpp | 47 | // TODO: implement these | COMMENT |
| LOW | src/gpu/ganesh/d3d/GrD3DCaps.cpp | 65 | // TODO: implement | COMMENT |
| LOW | src/gpu/graphite/DrawList.cpp | 39 | // TODO: Add validation that the renderer's expected shape type and stroke params match provided | COMMENT |
| LOW | src/gpu/graphite/Resource.cpp | 140 | // TODO: implement this to report real gpu id backing the resource. Will be virtual implemented | COMMENT |
| LOW | src/core/SkVx.h | 629 | // TODO: implement with map()? | COMMENT |
| LOW | src/pdf/SkPDFDevice.cpp | 1121 | // TODO: implement drawVertices | COMMENT |
| LOW | src/pdf/SkPDFDevice.cpp | 1128 | // TODO: implement drawMesh | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | modules/skottie/src/effects/DisplacementMapEffect.cpp | 244 | // │ │ └──────────────── B -> horizontal modulation | COMMENT |
| MEDIUM⚡ | modules/skottie/src/effects/DisplacementMapEffect.cpp | 245 | // │ └──────────────────────────────── G -> vertical displacement | COMMENT |
| MEDIUM⚡ | modules/skottie/src/effects/DisplacementMapEffect.cpp | 246 | // └─────────────────────────────────────────── R -> horizontal displacement | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tools/find_run_binary.py | 15 | Runs a program from the command line and returns stdout. Args: args: Command line to run, as a list of string par | STRING |
| HIGH | tools/find_run_binary.py | 37 | Returns path to an existing program binary. Args: program: Basename of the program to find (e.g., 'render_picture | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/raster_pipeline/run_benchmarks.py | 72 | # Step 1: Compile the 3 Control (Baseline) versions | COMMENT |
| LOW | tools/raster_pipeline/run_benchmarks.py | 88 | # Step 2: Compile the 3 Optimized (With Changes) versions | COMMENT |
| LOW | modules/jsonreader/SkJSONReader.cpp | 754 | // Thus they cannot be consumed indiscriminately -- we need to check if we hit the | COMMENT |
| LOW | src/gpu/ganesh/vk/GrVkCommandBuffer.cpp | 115 | // We need to check if we are adding a pipeline barrier that covers part of the same | COMMENT |
| LOW | src/gpu/graphite/vk/VulkanCommandBuffer.cpp | 2042 | // We need to check if we are adding a pipeline barrier that covers part of the same | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/raster_pipeline/run_benchmarks.py | 72 | # Step 1: Compile the 3 Control (Baseline) versions | COMMENT |
| LOW | tools/raster_pipeline/run_benchmarks.py | 88 | # Step 2: Compile the 3 Optimized (With Changes) versions | COMMENT |
| LOW | src/gpu/ganesh/effects/GrSkSLFP.h | 347 | // NOTE: This function (necessarily) gets an rvalue reference to child, but deliberately | COMMENT |
| LOW | src/gpu/ganesh/effects/GrSkSLFP.h | 361 | // NOTE: This function (necessarily) gets an rvalue reference to child, but deliberately | COMMENT |
| LOW | src/codec/SkPngRustCodec.cpp | 136 | // NOTE: This method is based on `read_color_profile` in | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/skpbench/_hardware_android.py | 152 | # Set GPU to performance mode and lock clock | COMMENT |
| LOW | tools/skpbench/_hardware_pixel2.py | 64 | # Set GPU to performance mode | COMMENT |
| LOW | tools/skpbench/_hardware_pixel.py | 45 | # Set GPU to performance mode, 315 MHZ | COMMENT |
| LOW | third_party/dawn/build_tint.py | 109 | # Set PYTHONPATH to include Dawn's third_party directory. This is needed | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | rust/icc/FFI.rs | 59 | // in `skcms_public.h`. Some guardrails exist, but they are not 100% accurate: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …urces/sksl/es2_conformance/import_conformance_tests.py | 11 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | modules/skcms/src/Transform_inl.h | 643 | // TODO: don't forget to optimize gather_32(). | COMMENT |