Name Date Size #Lines LOC

..--

.vscode/H25-Apr-2025-187185

build/H25-Apr-2025-14097

build_overrides/H25-Apr-2025-7665

docs/H25-Apr-2025-1,6071,136

include/H25-Apr-2025-320,820262,979

infra/config/H25-Apr-2025-140124

src/H25-Apr-2025-103,55279,763

tests/H25-Apr-2025-5,482,4885,476,970

third_party/H25-Apr-2025-12,199,83010,418,065

tools/cmake_generate_graphviz/H25-Apr-2025-133100

.clang-formatH A D25-Apr-20253.2 KiB119117

.dir-locals.elH A D25-Apr-20254.5 KiB166162

.gitignoreH A D25-Apr-2025449 4843

AUTHORS.txtH A D25-Apr-2025378 98

Android.bpH A D25-Apr-20253.5 KiB142124

BUILD.gnH A D25-Apr-20252.5 KiB9279

CMakeLists.txtH A D25-Apr-202539.1 KiB980854

CMakeSettings.jsonH A D25-Apr-20251.6 KiB5555

CONTRIBUTING.txtH A D25-Apr-20251.5 KiB2824

CONTRIBUTORS.txtH A D25-Apr-20251.4 KiB4441

DIR_METADATAH A D25-Apr-202554 43

LICENSE.txtH A D25-Apr-202511.3 KiB203169

METADATAH A D25-Apr-202539 43

OWNERSH A D25-Apr-2025830 2017

README.googleH A D25-Apr-2025420 119

README.mdH A D25-Apr-20257.7 KiB12778

README.versionH A D25-Apr-2025121 43

TEST_MAPPINGH A D25-Apr-202578 77

codereview.settingsH A D25-Apr-2025138 54

README.google

1URL: https://swiftshader.googlesource.com/SwiftShader/+/cloud-android-current-release
2License: Apache License                            Version 2.0, January 2004
3License File: LICENSE.txt
4
5Description:
6SwiftShader is a high-performance CPU-based implementation of the OpenGL ES and
7Direct3D 9 graphics APIs12. Its goal is to provide hardware independence for
8advanced 3D graphics.
9
10Local Modifications:
11No Modifications

README.md

1# SwiftShader
2
3[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
4
5Introduction
6------------
7
8SwiftShader[^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.
9
10> NOTE: The [ANGLE](http://angleproject.org/) project can be used to achieve a layered implementation[^4] of OpenGL ES 3.1 (aka. "SwANGLE").
11
12Building
13--------
14
15SwiftShader libraries can be built for Windows, Linux, and macOS.\
16Android and Chrome (OS) build environments are also supported.
17
18* **CMake**
19\
20  [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:
21  ```
22  cd build
23  cmake ..
24  cmake --build . --parallel
25
26  ./vk-unittests
27  ```
28  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.
29
30
31* **Visual Studio**
32\
33  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.
34
35
36Usage
37-----
38
39The SwiftShader libraries act as drop-in replacements for graphics drivers.
40
41On 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.
42
43In 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).
44
45Contributing
46------------
47
48See [CONTRIBUTING.txt](CONTRIBUTING.txt) for important contributing requirements.
49
50The canonical repository for SwiftShader is hosted at:
51https://swiftshader.googlesource.com/SwiftShader.
52
53All changes must be reviewed and approved in the [Gerrit](https://www.gerritcodereview.com/) review tool at:
54https://swiftshader-review.googlesource.com. You must sign in to this site with a Google Account before changes can be uploaded.
55
56Next, authenticate your account here:
57https://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)).
58
59All 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:
60https://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:
61
62    git clone https://swiftshader.googlesource.com/SwiftShader && (cd SwiftShader && git submodule update --init --recursive third_party/git-hooks && ./third_party/git-hooks/install_hooks.sh)
63
64On Windows, this command line requires using the [Git Bash Shell](https://www.atlassian.com/git/tutorials/git-bash).
65
66Changes are uploaded to Gerrit by executing:
67
68    git push origin HEAD:refs/for/master
69
70When ready, [add](https://gerrit-review.googlesource.com/Documentation/intro-user.html#adding-reviewers) a project [owner](OWNERS) as a reviewer on your change.
71
72Some 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).
73
74Testing
75-------
76
77SwiftShader's Vulkan implementation can be tested using the [dEQP](https://github.com/KhronosGroup/VK-GL-CTS) test suite.
78
79See [docs/dEQP.md](docs/dEQP.md) for details.
80
81Third-Party Dependencies
82------------------------
83
84The [third_party](third_party/) directory contains projects which originated outside of SwiftShader:
85
86[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.
87
88[llvm-subzero](third_party/llvm-subzero/) contains a minimized set of LLVM dependencies of the Subzero project.
89
90[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.
91
92[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.
93
94Documentation
95-------------
96
97See [docs/Index.md](docs/Index.md).
98
99Contact
100-------
101
102Public mailing list: [[email protected]](https://groups.google.com/forum/#!forum/swiftshader)
103
104General bug tracker:  https://g.co/swiftshaderbugs \
105Chrome specific bugs: https://bugs.chromium.org/p/swiftshader
106
107License
108-------
109
110The SwiftShader project is licensed under the Apache License Version 2.0. You can find a copy of it in [LICENSE.txt](LICENSE.txt).
111
112Files in the third_party folder are subject to their respective license.
113
114Authors and Contributors
115------------------------
116
117The legal authors for copyright purposes are listed in [AUTHORS.txt](AUTHORS.txt).
118
119[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.
120
121Notes and Disclaimers
122---------------------
123
124[^1]: This is not an official Google product.
125[^2]: Vulkan 1.3 conformance: https://www.khronos.org/conformance/adopters/conformant-products#submission_717
126[^3]: Trademarks are the property of their respective owners.
127[^4]: OpenGL ES 3.1 conformance: https://www.khronos.org/conformance/adopters/conformant-products/opengles#submission_906  

README.version

1URL: https://swiftshader.googlesource.com/SwiftShader
2BugComponent: 111604
3OWNERS: ghartman, nicolascapens, shannonwoods
4