{"id":45324245,"url":"https://github.com/libpag/skia-benchmark","last_synced_at":"2026-02-21T08:29:51.006Z","repository":{"id":323456527,"uuid":"1080201835","full_name":"libpag/skia-benchmark","owner":"libpag","description":null,"archived":false,"fork":false,"pushed_at":"2026-02-13T08:20:42.000Z","size":9885,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-13T15:55:52.373Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/libpag.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-21T02:44:38.000Z","updated_at":"2026-02-13T08:20:47.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/libpag/skia-benchmark","commit_stats":null,"previous_names":["libpag/skia-benchmark"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/libpag/skia-benchmark","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libpag%2Fskia-benchmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libpag%2Fskia-benchmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libpag%2Fskia-benchmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libpag%2Fskia-benchmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/libpag","download_url":"https://codeload.github.com/libpag/skia-benchmark/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libpag%2Fskia-benchmark/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29677478,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T06:23:40.028Z","status":"ssl_error","status_checked_at":"2026-02-21T06:23:39.222Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-02-21T08:29:50.436Z","updated_at":"2026-02-21T08:29:51.001Z","avatar_url":"https://github.com/libpag.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Introduction\nA benchmark project for the [Skia](https://skia.org/) graphics library. It is used to test the \nperformance of the Skia graphics library on different platforms.\n\nThere is also a related project, [tgfx-benchmark](https://github.com/libpag/tgfx-benchmark), which\ntests the performance of the [TGFX](https://github.com/Tencent/tgfx) graphics library using the same\nbenchmark cases.\n\nYou can also run the benchmark online at [tgfx.org](https://tgfx.org/benchmark) to compare the \nperformance of TGFX and Skia on the web platform.\n\n## Build Prerequisites\n\nHere are the minimum tools needed to build skia-benchmark on different platforms:\n\n- Xcode 11.0+\n- Visual Studio 2019+\n- NodeJS 14.14.0+\n- Ninja 1.9.0+\n- CMake 3.13.0+\n- Python3 3.8+\n\n\nPlease note the following additional notices:\n\n- Ensure you have installed the **[Desktop development with C++]** and **[Universal Windows Platform development]** components for VS2019.\n- It is **highly recommended** to use the **latest version of CMake**. Many older versions of CMake may have various bugs across different platforms.\n\n## Dependencies\n\nskia-benchmark uses the [**depsync**](https://github.com/domchen/depsync) tool to manage third-party dependencies.\n\n**For macOS platform：**\n\nRun this script from the root of the project:\n\n```\n./sync_deps.sh\n```\n\nThis script will automatically install the necessary tools and sync all third-party repositories.\n\n**For other platforms:**\n\nFirst, ensure you have the latest version of Node.js installed (you may need to restart your computer afterward).\nThen, run the following command to install the depsync tool:\n\n```\nnpm install -g depsync\n```\n\nThen, run `depsync` in the project's root directory.\n\n```\ndepsync\n```\n\nYou might need to enter your Git account and password during synchronization. Make sure you’ve\nenabled the `git-credential-store` so that `CMakeLists.txt` can automatically trigger synchronization\nnext time.\n\n## Getting Started\n\nBefore building the projects, please carefully follow the instructions in the\n[**Build Prerequisites**](https://github.com/libpag/skia-benchmark?tab=readme-ov-file#build-prerequisites)\nand [**Dependencies**](https://github.com/libpag/skia-benchmark?tab=readme-ov-file#dependencies) sections.\nThese will guide you through the necessary steps to set up your development environment.\n\n### macOS\nTo get started, open the root directory in CLion. Then, go to `File-\u003eSettings` and navigate to\n`Build, Execution, Deployment-\u003eCMake`. Add a new profile with the Release build type. Now you are\nready to build and run the Benchmark target.\n\nIf you prefer using XCode IDE, go to the root directory, run the following command or double-click\nit:\n\n```\n./gen_mac\n```\n\nThis will generate a project for the native architecture, such as `arm64` for Apple Silicon Macs or\n`x64` for Intel Macs. If you want to generate a project for a specific architecture, use the `-a`\noption, for example:\n\n```\n./gen_mac -a x64\n```    \n\nfinally, open Xcode and launch the `mac/Skia-Benchmark.xcodeproj`. You are all set!\n\n### Windows\n\n**Note:** If you're using a dedicated graphics card like NVIDIA or AMD, make sure to update your\ngraphics driver to the latest version to ensure the test results are accurate.\n\nTo get started, open the root directory in CLion. Then, go to `File-\u003eSettings` and navigate to\n`Build, Execution, Deployment-\u003eToolChains`. Set the toolchain to `Visual Studio` with `amd64`\n architecture. It's also recommended to use the `Ninja` generator for CMake to\nspeed up the build process. You can set this in `Build, Execution, Deployment-\u003eCMake` by choosing\n`Ninja` in the `Generator` row. Once done, build and run the `Benchmark` target using the Release\nconfiguration.\n\nIf you prefer using Visual Studio IDE, open the `x64 Native Tools Command Prompt for VS 2019` and\nrun the following command in the root directory:\n\n```\ncmake -G \"Visual Studio 16 2019\" -A x64 -DCMAKE_CONFIGURATION_TYPES=\"Debug\" -B ./win/Debug-x64\n```\n\nThis will generate a project for the `x64` architecture with the `Debug` configuration. To generate\na project for the same architecture with the `Release` configuration, run the following command:\n\n```\ncmake -G \"Visual Studio 16 2019\" -A x64 -DCMAKE_CONFIGURATION_TYPES=\"Release\" -B ./win/Release-x64\n```\n\nFinally, open the `Skia-Benchmark.sln` file in the `win/Debug-x64/` or `win/Release-x64/` directory, and set\nthe `Benchmark` project as the startup project. You are all set!\n\n### Web\nTo get started, go to the `web/` directory and run the following command to install the necessary\nnode modules:\n\n```\nnpm install\n```\n\nThen, run the following command to build the project:\n\n```\nnpm run build\n```\n\nFinally, run the following command to start the development server:\n\n```\nnpm run server\n```\nThis will open [http://localhost:8071/index.html](http://localhost:8071/index.html)\nin your default browser. You can also open it manually to view the demo.\n\nThe above commands build and run a multithreaded version.\n\n\u003e**⚠️** In the multithreaded version, if you modify the filename of the compiled output benchmark.js, you need to search for\n\u003e the keyword \"benchmark.js\" within the benchmark.js file and replace all occurrences of \"benchmark.js\" with the new filename.\n\u003e Failure to do this will result in the program failing to run. Here's an example of how to modify it:\n\nBefore modification:\n\n```js\n    // filename: benchmark.js\n    var worker = new Worker(new URL(\"benchmark.js\", import.meta.url), {\n     type: \"module\",\n     name: \"em-pthread\"\n    });\n```\n\nAfter modification:\n\n```js\n    // filename: benchmark-test.js\n    var worker = new Worker(new URL(\"benchmark-test.js\", import.meta.url), {\n     type: \"module\",\n     name: \"em-pthread\"\n    });\n```\n\nTo build a single-threaded version, just add the suffix \":st\" to each command. For example:\n\n```\nnpm run build:st\n\nnpm run serser:st\n``` \nThis will open [http://localhost:8071/index-st.html](http://localhost:8071/index-st.html)\nin your default browser. You can also open it manually to view the demo.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibpag%2Fskia-benchmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flibpag%2Fskia-benchmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibpag%2Fskia-benchmark/lists"}