{"id":13731675,"url":"https://github.com/google/swiftshader","last_synced_at":"2026-01-14T13:57:14.199Z","repository":{"id":38705374,"uuid":"62297898","full_name":"google/swiftshader","owner":"google","description":"SwiftShader is a high-performance CPU-based implementation of the Vulkan graphics API. Its goal is to provide hardware independence for advanced 3D graphics.","archived":false,"fork":false,"pushed_at":"2025-12-15T14:18:05.000Z","size":844898,"stargazers_count":2413,"open_issues_count":3,"forks_count":316,"subscribers_count":96,"default_branch":"master","last_synced_at":"2025-12-18T18:22:18.506Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":"https://swiftshader.googlesource.com/SwiftShader","source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/google.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.txt","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":"AUTHORS.txt","dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2016-06-30T09:25:24.000Z","updated_at":"2025-12-18T09:33:24.000Z","dependencies_parsed_at":"2022-07-19T21:59:10.502Z","dependency_job_id":"2070c17b-73fd-4da3-8f57-e2d87061685b","html_url":"https://github.com/google/swiftshader","commit_stats":{"total_commits":6931,"total_committers":194,"mean_commits":35.72680412371134,"dds":0.6779685471071996,"last_synced_commit":"85772f1891dbbab714319980ba1f26c562f0282e"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/google/swiftshader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fswiftshader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fswiftshader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fswiftshader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fswiftshader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/google","download_url":"https://codeload.github.com/google/swiftshader/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fswiftshader/sbom","scorecard":{"id":108751,"data":{"date":"2025-08-11","repo":{"name":"github.com/google/swiftshader","commit":"fed7f25ca9577b7b619fa7f969bf123d98bc263a"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.6,"checks":[{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/google/.github/SECURITY.md:1","Info: Found linked content: github.com/google/.github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/google/.github/SECURITY.md:1","Info: Found text in security policy: github.com/google/.github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Fuzzing","score":10,"reason":"project is fuzzed","details":["Info: CppLibFuzzer integration found: third_party/SPIRV-Tools/test/fuzzers/spvtools_as_fuzzer.cpp:23","Info: CppLibFuzzer integration found: third_party/SPIRV-Tools/test/fuzzers/spvtools_binary_parser_fuzzer.cpp:21","Info: CppLibFuzzer integration found: third_party/SPIRV-Tools/test/fuzzers/spvtools_dis_fuzzer.cpp:23","Info: CppLibFuzzer integration found: third_party/SPIRV-Tools/test/fuzzers/spvtools_fuzz_fuzzer.cpp:23","Info: CppLibFuzzer integration found: third_party/SPIRV-Tools/test/fuzzers/spvtools_opt_legalization_fuzzer.cpp:22","Info: CppLibFuzzer integration found: third_party/SPIRV-Tools/test/fuzzers/spvtools_opt_performance_fuzzer.cpp:22","Info: CppLibFuzzer integration found: third_party/SPIRV-Tools/test/fuzzers/spvtools_opt_size_fuzzer.cpp:22","Info: CppLibFuzzer integration found: third_party/SPIRV-Tools/test/fuzzers/spvtools_val_fuzzer.cpp:21"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":0,"reason":"21 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GO-2023-2402 / GHSA-45x7-px36-x8w8","Warn: Project is vulnerable to: GO-2024-3321 / GHSA-v778-237x-gjrc","Warn: Project is vulnerable to: GO-2025-3487 / GHSA-hcg3-q754-cr77","Warn: Project is vulnerable to: GO-2022-0969 / GHSA-69cg-p879-7622","Warn: Project is vulnerable to: GO-2023-1495 / GHSA-fxg5-wq6x-vr4w","Warn: Project is vulnerable to: GO-2022-1144 / GHSA-xrjj-mj9h-534m","Warn: Project is vulnerable to: GO-2023-1571 / GHSA-vvpx-j8f3-3w6h","Warn: Project is vulnerable to: GO-2023-1988 / GHSA-2wrh-6pvc-2jm9","Warn: Project is vulnerable to: GO-2023-2102 / GHSA-4374-p667-p6c8","Warn: Project is vulnerable to: GO-2023-2153 / GHSA-m425-mq94-257g / GHSA-qppj-fm5r-hxr3","Warn: Project is vulnerable to: GO-2024-2687 / GHSA-4v7x-pqxf-cx7m","Warn: Project is vulnerable to: GO-2024-3333","Warn: Project is vulnerable to: GO-2025-3503 / GHSA-qxp5-gwg8-xv66","Warn: Project is vulnerable to: GO-2025-3595 / GHSA-vvgc-356p-c3xw","Warn: Project is vulnerable to: GO-2025-3488 / GHSA-6v2p-p543-phr9","Warn: Project is vulnerable to: GO-2024-2611 / GHSA-8r3f-844c-mc37","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-mwcw-c2x4-8c55","Warn: Project is vulnerable to: GHSA-76c9-3jph-rj3q","Warn: Project is vulnerable to: GHSA-76p7-773f-r4q5"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: downloadThenRun not pinned by hash: third_party/SPIRV-Tools/kokoro/macos-clang-release-bazel/build.sh:40","Warn: downloadThenRun not pinned by hash: third_party/SPIRV-Tools/kokoro/macos-clang-release-bazel/build.sh:44","Warn: npmCommand not pinned by hash: third_party/SPIRV-Tools/utils/vscode/install_vscode.sh:34","Info:   0 out of   1 npmCommand dependencies pinned","Info:   0 out of   2 downloadThenRun dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}}]},"last_synced_at":"2025-08-15T11:37:53.560Z","repository_id":38705374,"created_at":"2025-08-15T11:37:53.560Z","updated_at":"2025-08-15T11:37:53.560Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28422378,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T13:30:50.153Z","status":"ssl_error","status_checked_at":"2026-01-14T13:29:08.907Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":"2024-08-03T02:01:35.533Z","updated_at":"2026-01-14T13:57:14.132Z","avatar_url":"https://github.com/google.png","language":"C++","readme":"# SwiftShader\r\n\r\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\r\n\r\nIntroduction\r\n------------\r\n\r\nSwiftShader[^1] is a high-performance CPU-based implementation[^2] of the Vulkan[^3] 1.3 graphics API. Its goal is to provide hardware independence for advanced 3D graphics.\r\n\r\n\u003e NOTE: The [ANGLE](http://angleproject.org/) project can be used to achieve a layered implementation[^4] of OpenGL ES 3.1 (aka. \"SwANGLE\").\r\n\r\nBuilding\r\n--------\r\n\r\nSwiftShader libraries can be built for Windows, Linux, and macOS.\\\r\nAndroid and Chrome (OS) build environments are also supported.\r\n\r\n* **CMake**\r\n\\\r\n  [Install CMake](https://cmake.org/download/) for Linux, macOS, or Windows and use either [the GUI](https://cmake.org/runningcmake/) or run the following terminal commands:\r\n  ```\r\n  cd build\r\n  cmake ..\r\n  cmake --build . --parallel\r\n\r\n  ./vk-unittests\r\n  ```\r\n  Tip: Set the [CMAKE_BUILD_PARALLEL_LEVEL](https://cmake.org/cmake/help/latest/envvar/CMAKE_BUILD_PARALLEL_LEVEL.html) environment variable to control the level of parallelism.\r\n\r\n\r\n* **Visual Studio**\r\n\\\r\n  To build the Vulkan ICD library, use [Visual Studio 2019](https://visualstudio.microsoft.com/vs/community/) to open the project folder and wait for it to run CMake. Open the [CMake Targets View](https://docs.microsoft.com/en-us/cpp/build/cmake-projects-in-visual-studio?view=vs-2019#ide-integration) in the Solution Explorer and select the vk_swiftshader project to [build](https://docs.microsoft.com/en-us/cpp/build/cmake-projects-in-visual-studio?view=vs-2019#building-cmake-projects) it.\r\n\r\n\r\nUsage\r\n-----\r\n\r\nThe SwiftShader libraries act as drop-in replacements for graphics drivers.\r\n\r\nOn Windows, most applications can be made to use SwiftShader's DLLs by placing them in the same folder as the executable. On Linux, the `LD_LIBRARY_PATH` environment variable or `-rpath` linker option can be used to direct applications to search for shared libraries in the indicated directory first.\r\n\r\nIn general, Vulkan applications look for a shared library named `vulkan-1.dll` on Windows (`vulkan-1.so` on Linux). This 'loader' library then redirects API calls to the actual Installable Client Driver (ICD). SwiftShader's ICD is named `libvk_swiftshader.dll`, but it can be renamed to `vulkan-1.dll` to be loaded directly by the application. Alternatively, you can set the `VK_ICD_FILENAMES` environment variable to the path to `vk_swiftshader_icd.json` file that is generated under the build directory (e.g. `.\\SwiftShader\\build\\Windows\\vk_swiftshader_icd.json`). To learn more about how Vulkan loading works, read the [official documentation here](https://github.com/KhronosGroup/Vulkan-Loader/blob/master/loader/LoaderAndLayerInterface.md).\r\n\r\nContributing\r\n------------\r\n\r\nSee [CONTRIBUTING.txt](CONTRIBUTING.txt) for important contributing requirements.\r\n\r\nThe canonical repository for SwiftShader is hosted at:\r\nhttps://swiftshader.googlesource.com/SwiftShader.\r\n\r\nAll changes must be reviewed and approved in the [Gerrit](https://www.gerritcodereview.com/) review tool at:\r\nhttps://swiftshader-review.googlesource.com. You must sign in to this site with a Google Account before changes can be uploaded.\r\n\r\nNext, authenticate your account here:\r\nhttps://swiftshader.googlesource.com/new-password (use the same e-mail address as the one configured as the [Git commit author](https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup#_your_identity)).\r\n\r\nAll changes require a [Change-ID](https://gerrit-review.googlesource.com/Documentation/user-changeid.html) tag in the commit message. A [commit hook](https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks) may be used to add this tag automatically, and can be found at:\r\nhttps://gerrit-review.googlesource.com/tools/hooks/commit-msg. You can execute `git clone https://swiftshader.googlesource.com/SwiftShader` and manually place the commit hook in `SwiftShader/.git/hooks/`, or to clone the repository and install the commit hook in one go:\r\n\r\n    git clone https://swiftshader.googlesource.com/SwiftShader \u0026\u0026 (cd SwiftShader \u0026\u0026 git submodule update --init --recursive third_party/git-hooks \u0026\u0026 ./third_party/git-hooks/install_hooks.sh)\r\n\r\nOn Windows, this command line requires using the [Git Bash Shell](https://www.atlassian.com/git/tutorials/git-bash).\r\n\r\nChanges are uploaded to Gerrit by executing:\r\n\r\n    git push origin HEAD:refs/for/master\r\n\r\nWhen ready, [add](https://gerrit-review.googlesource.com/Documentation/intro-user.html#adding-reviewers) a project [owner](OWNERS) as a reviewer on your change.\r\n\r\nSome tests will automatically be run against the change. Notably, [presubmit.sh](tests/presubmit.sh) verifies the change has been formatted using [clang-format 11.0.1](tests/kokoro/gcp_ubuntu/check_style.sh). Most IDEs come with clang-format support, but may require upgrading/downgrading to the [clang-format version 11.0.0](https://github.com/llvm/llvm-project/releases/tag/llvmorg-11.0.0) *release* version (notably Chromium's buildtools has a clang-format binary which can be an in-between revision which produces different formatting results).\r\n\r\nTesting\r\n-------\r\n\r\nSwiftShader's Vulkan implementation can be tested using the [dEQP](https://github.com/KhronosGroup/VK-GL-CTS) test suite.\r\n\r\nSee [docs/dEQP.md](docs/dEQP.md) for details.\r\n\r\nThird-Party Dependencies\r\n------------------------\r\n\r\nThe [third_party](third_party/) directory contains projects which originated outside of SwiftShader:\r\n\r\n[subzero](third_party/subzero/) contains a fork of the [Subzero](https://chromium.googlesource.com/native_client/pnacl-subzero/) project. It originates from Google Chrome's (Portable) [Native Client](https://developer.chrome.com/native-client) project. The fork was made using [git-subtree](https://github.com/git/git/blob/master/contrib/subtree/git-subtree.txt) to include all of Subzero's history.\r\n\r\n[llvm-subzero](third_party/llvm-subzero/) contains a minimized set of LLVM dependencies of the Subzero project.\r\n\r\n[PowerVR_SDK](third_party/PowerVR_SDK/) contains a subset of the [PowerVR Graphics Native SDK](https://github.com/powervr-graphics/Native_SDK) for running several sample applications.\r\n\r\n[googletest](third_party/googletest/) contains the [Google Test](https://github.com/google/googletest) project, as a Git submodule. It is used for running unit tests for Chromium, and Reactor unit tests. Run `git submodule update --init` to obtain/update the code. Any contributions should be made upstream.\r\n\r\nDocumentation\r\n-------------\r\n\r\nSee [docs/Index.md](docs/Index.md).\r\n\r\nContact\r\n-------\r\n\r\nPublic mailing list: [swiftshader@googlegroups.com](https://groups.google.com/forum/#!forum/swiftshader)\r\n\r\nGeneral bug tracker:  https://g.co/swiftshaderbugs \\\r\nChrome specific bugs: https://bugs.chromium.org/p/swiftshader\r\n\r\nLicense\r\n-------\r\n\r\nThe SwiftShader project is licensed under the Apache License Version 2.0. You can find a copy of it in [LICENSE.txt](LICENSE.txt).\r\n\r\nFiles in the third_party folder are subject to their respective license.\r\n\r\nAuthors and Contributors\r\n------------------------\r\n\r\nThe legal authors for copyright purposes are listed in [AUTHORS.txt](AUTHORS.txt).\r\n\r\n[CONTRIBUTORS.txt](CONTRIBUTORS.txt) contains a list of names of individuals who have contributed to SwiftShader. If you're not on the list, but you've signed the [Google CLA](https://cla.developers.google.com/clas) and have contributed more than a formatting change, feel free to request to be added.\r\n\r\nNotes and Disclaimers\r\n---------------------\r\n\r\n[^1]: This is not an official Google product.  \r\n[^2]: Vulkan 1.3 conformance: https://www.khronos.org/conformance/adopters/conformant-products#submission_717  \r\n[^3]: Trademarks are the property of their respective owners.  \r\n[^4]: OpenGL ES 3.1 conformance: https://www.khronos.org/conformance/adopters/conformant-products/opengles#submission_906  ","funding_links":[],"categories":["C++","Graphics"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogle%2Fswiftshader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgoogle%2Fswiftshader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogle%2Fswiftshader/lists"}