Nicolas Capens | a5eaa8d | 2017-07-26 13:55:52 -0400 | [diff] [blame] | 1 | # SwiftShader
|
Nicolas Capens | c9d61ae | 2017-06-28 00:58:48 -0400 | [diff] [blame] | 2 |
|
Nicolas Capens | a5eaa8d | 2017-07-26 13:55:52 -0400 | [diff] [blame] | 3 | [](https://opensource.org/licenses/Apache-2.0) [](https://travis-ci.org/google/swiftshader) [](https://ci.appveyor.com/project/c0d1f1ed/swiftshader)
|
Nicolas Capens | 1703e0f | 2016-05-12 17:27:05 -0400 | [diff] [blame] | 4 |
|
| 5 | SwiftShader is a high-performance CPU-based implementation of the OpenGL ES and Direct3D 9 graphics APIs<sup>1</sup><sup>2</sup>. Its goal is to provide hardware independence for advanced 3D graphics.
|
| 6 |
|
| 7 | Usage
|
Nicolas Capens | 9eaa19c | 2017-06-28 11:13:55 -0400 | [diff] [blame] | 8 | -----
|
Nicolas Capens | 1703e0f | 2016-05-12 17:27:05 -0400 | [diff] [blame] | 9 |
|
| 10 | The SwiftShader libraries act as drop-in replacements for graphics drivers.
|
| 11 |
|
| 12 | On 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.
|
| 13 |
|
Nicolas Capens | f241f93 | 2016-08-11 12:48:23 -0400 | [diff] [blame] | 14 | Prebuilt binaries can be found at: https://goo.gl/5MOcdb
|
| 15 |
|
Nicolas Capens | 1703e0f | 2016-05-12 17:27:05 -0400 | [diff] [blame] | 16 | Contributing
|
Nicolas Capens | 9eaa19c | 2017-06-28 11:13:55 -0400 | [diff] [blame] | 17 | ------------
|
Nicolas Capens | 1703e0f | 2016-05-12 17:27:05 -0400 | [diff] [blame] | 18 |
|
Nicolas Capens | cf83d16 | 2016-07-02 23:41:30 -0400 | [diff] [blame] | 19 | See [CONTRIBUTING.txt](CONTRIBUTING.txt) for important contributing requirements.
|
Nicolas Capens | 1703e0f | 2016-05-12 17:27:05 -0400 | [diff] [blame] | 20 |
|
Nicolas Capens | cf83d16 | 2016-07-02 23:41:30 -0400 | [diff] [blame] | 21 | The canonical repository for SwiftShader is hosted at:
|
Nicolas Capens | 1703e0f | 2016-05-12 17:27:05 -0400 | [diff] [blame] | 22 | https://swiftshader.googlesource.com/SwiftShader
|
| 23 |
|
Nicolas Capens | cf83d16 | 2016-07-02 23:41:30 -0400 | [diff] [blame] | 24 | All changes must be reviewed and approved in the [Gerrit](https://www.gerritcodereview.com/) review tool at:
|
Nicolas Capens | 1703e0f | 2016-05-12 17:27:05 -0400 | [diff] [blame] | 25 | https://swiftshader-review.googlesource.com
|
| 26 |
|
Nicolas Capens | cf83d16 | 2016-07-02 23:41:30 -0400 | [diff] [blame] | 27 | Authenticate your account here:
|
| 28 | https://swiftshader-review.googlesource.com/new-password
|
| 29 |
|
| 30 | All changes require a [Change-ID](https://gerrit-review.googlesource.com/Documentation/user-changeid.html) tag in the commit message. A commit hook may be used to add this tag automatically, and can be found at:
|
Nicolas Capens | 1703e0f | 2016-05-12 17:27:05 -0400 | [diff] [blame] | 31 | https://gerrit-review.googlesource.com/tools/hooks/commit-msg. To clone the repository and install the commit hook in one go:
|
| 32 |
|
| 33 | git clone https://swiftshader.googlesource.com/SwiftShader && (cd SwiftShader && curl -Lo `git rev-parse --git-dir`/hooks/commit-msg https://gerrit-review.googlesource.com/tools/hooks/commit-msg ; chmod +x `git rev-parse --git-dir`/hooks/commit-msg)
|
| 34 |
|
Nicolas Capens | cf83d16 | 2016-07-02 23:41:30 -0400 | [diff] [blame] | 35 | Changes are uploaded to Gerrit by performing:
|
Nicolas Capens | 1703e0f | 2016-05-12 17:27:05 -0400 | [diff] [blame] | 36 |
|
| 37 | git push origin HEAD:refs/for/master
|
| 38 |
|
Nicolas Capens | 3532c69 | 2017-05-18 11:22:26 -0400 | [diff] [blame] | 39 | Third-Party Dependencies
|
| 40 | ------------------------
|
| 41 |
|
| 42 | The [third_party](third_party/) directory contains projects which originated outside of SwiftShader:
|
| 43 |
|
| 44 | [LLVM](third_party/LLVM/) contains an outdated and diverged copy of the [LLVM](http://llvm.org/) compiler framework. Until further notice, maintenance fixes can be made directly in the SwiftShader repository.
|
| 45 |
|
| 46 | [subzero](third_party/subzero/) contains a fork of the [Subzero](https://chromium.googlesource.com/native_client/pnacl-subzero/) project. It is part of Google Chrome's (Portable) [Native Client](https://developer.chrome.com/native-client) project. Its authoritative source is at [https://chromium.googlesource.com/native_client/pnacl-subzero/](https://chromium.googlesource.com/native_client/pnacl-subzero/). 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, and until further notice it should **not** diverge from the upstream project. Contributions must be tested using the [README](third_party/subzero/docs/README.rst) instructions, reviewed at [https://chromium-review.googlesource.com](https://chromium-review.googlesource.com/q/project:native_client%252Fpnacl-subzero), and then pulled into the SwiftShader repository.
|
| 47 |
|
| 48 | [llvm-subzero](third_party/llvm-subzero/) contains a minimized set of LLVM dependencies of the Subzero project.
|
| 49 |
|
| 50 | [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.
|
| 51 |
|
| 52 | [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.
|
| 53 |
|
Nicolas Capens | 6388302 | 2016-05-30 11:03:26 -0400 | [diff] [blame] | 54 | Documentation
|
| 55 | -------------
|
| 56 |
|
Nicolas Capens | 1bc6138 | 2016-05-30 15:29:09 -0400 | [diff] [blame] | 57 | See [docs/Index.md](docs/Index.md).
|
Nicolas Capens | 6388302 | 2016-05-30 11:03:26 -0400 | [diff] [blame] | 58 |
|
Nicolas Capens | 1703e0f | 2016-05-12 17:27:05 -0400 | [diff] [blame] | 59 | Contact
|
Nicolas Capens | 9eaa19c | 2017-06-28 11:13:55 -0400 | [diff] [blame] | 60 | -------
|
Nicolas Capens | 1703e0f | 2016-05-12 17:27:05 -0400 | [diff] [blame] | 61 |
|
Nicolas Capens | d851f23 | 2016-08-01 15:36:23 -0400 | [diff] [blame] | 62 | Public mailing list: [swiftshader@googlegroups.com](https://groups.google.com/forum/#!forum/swiftshader)
|
Nicolas Capens | 1703e0f | 2016-05-12 17:27:05 -0400 | [diff] [blame] | 63 |
|
Nicolas Capens | cf83d16 | 2016-07-02 23:41:30 -0400 | [diff] [blame] | 64 | Bug tracker: https://bugs.chromium.org/p/swiftshader
|
Nicolas Capens | 22b17b0 | 2016-06-17 13:39:18 -0400 | [diff] [blame] | 65 |
|
Nicolas Capens | 1703e0f | 2016-05-12 17:27:05 -0400 | [diff] [blame] | 66 | License
|
Nicolas Capens | 9eaa19c | 2017-06-28 11:13:55 -0400 | [diff] [blame] | 67 | -------
|
Nicolas Capens | 1703e0f | 2016-05-12 17:27:05 -0400 | [diff] [blame] | 68 |
|
Nicolas Capens | cf83d16 | 2016-07-02 23:41:30 -0400 | [diff] [blame] | 69 | The SwiftShader project is licensed under the Apache License Version 2.0. You can find a copy of it in [LICENSE.txt](LICENSE.txt).
|
Nicolas Capens | 1703e0f | 2016-05-12 17:27:05 -0400 | [diff] [blame] | 70 |
|
| 71 | Files in the third_party folder are subject to their respective license.
|
| 72 |
|
| 73 | Authors and Contributors
|
Nicolas Capens | 9eaa19c | 2017-06-28 11:13:55 -0400 | [diff] [blame] | 74 | ------------------------
|
Nicolas Capens | 1703e0f | 2016-05-12 17:27:05 -0400 | [diff] [blame] | 75 |
|
Nicolas Capens | cf83d16 | 2016-07-02 23:41:30 -0400 | [diff] [blame] | 76 | The legal authors for copyright purposes are listed in [AUTHORS.txt](AUTHORS.txt).
|
Nicolas Capens | 1703e0f | 2016-05-12 17:27:05 -0400 | [diff] [blame] | 77 |
|
Nicolas Capens | cf83d16 | 2016-07-02 23:41:30 -0400 | [diff] [blame] | 78 | [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.
|
Nicolas Capens | 1703e0f | 2016-05-12 17:27:05 -0400 | [diff] [blame] | 79 |
|
| 80 | Disclaimer
|
Nicolas Capens | 9eaa19c | 2017-06-28 11:13:55 -0400 | [diff] [blame] | 81 | ----------
|
Nicolas Capens | 1703e0f | 2016-05-12 17:27:05 -0400 | [diff] [blame] | 82 |
|
| 83 | 1. Trademarks are the property of their respective owners.
|
| 84 | 2. We do not claim official conformance with any graphics APIs at this moment.
|
Nicolas Capens | 88f5ec6 | 2017-06-13 10:10:22 -0400 | [diff] [blame] | 85 | 3. This is not an official Google product.
|