commit | 4905e5832bf4a26bf449b4a0638c3a7ac0920ad9 | [log] [tgz] |
---|---|---|
author | Alexis Hetu <sugoi@google.com> | Mon Nov 08 08:46:35 2021 -0500 |
committer | Alexis Hetu <sugoi@google.com> | Mon Nov 08 08:46:43 2021 -0500 |
tree | 5cd0f18ecfd27fa1000c8404110a97df3ee977c4 | |
parent | 0d651b75abc52067da4f196403b1576468b964d0 [diff] | |
parent | b8e7bb8b64f686e765a11bed0c16e984c9102b2d [diff] |
Update SPIR-V Headers to 29817199b Changes: 29817199b Merge pull request #250 from kpet/clspv-reflection-subgroups 1380cbbec Merge pull request #248 from pmistryNV/bindless_texture 43d173bd6 Add SpecConstantSubgroupMaxSize to the clspv reflection non-semantic instruction set cec308490 Implement header definitions for SPV_NV_bindless_texture 92f21c9b2 Merge pull request #247 from bashbaug/intel-enum-block 442c6a62d reserve SPIR-V enum block for Intel extensions 19e835041 Merge pull request #245 from pmistryNV/nonconstoffset e225eb0be Define a new Image operand bit mask for non constant offsets 5ea2d62e8 Merge pull request #242 from egdaniel/patch-3 2c4b19569 Register Magic Num for Skia SkSL SPIR-V Generator ae217c178 Merge pull request #240 from gnl21/fast-math f487ad919 Remove 'Kernel' capability from fast-math flags 635049b5e Merge pull request #237 from BedrockDotPng/patch-2 7ec2a1264 Update CMakeLists.txt 0d3c45cdb Merge pull request #209 from kloczek/master 6cae8216a Merge pull request #236 from greg-lunarg/db7 4dcae4859 Add nonsemantic.shader.debuginfo to Bazel 449bc986b Merge pull request #231 from MarijnS95/duplicate-grammar b1a7c66be spirv.core.grammar: Remove duplicate OpArbitraryFloatPowNINTEL declaration e71feddb3 Merge pull request #226 from clayengine/master 1160d54e9 Merge pull request #233 from NikitaRudenkoIntel/opt 4cce109bc Merge pull request #235 from alelenv/rt_motion b1d2909b9 Add support for SPV_NV_ray_tracing_motion_blur. b6b8b6792 Fix minor details in SPV_INTEL_optnone extension e7b49d7fb Implement SPV_INTEL_optnone extension (#230) cf653e4ca Merge pull request #229 from gnl21/gnl-local-size-hint-id 737f9dcde Correct grammar for LocalSizeHintId 1d4e3a7e3 Merge pull request #227 from kpet/fix-integer-dot-product-grammar ddcc06200 Merge pull request #228 from mmerecki/fix_version_of_QuantizationModes_and_OverflowModes 810d13d3e Add missing capabilities and '"version" : "None"' to QuantizationModes and OverflowModes enumerants 6c7e7f9f2 Fix grammar for PackedVectorFormat ddf3230c1 Merge pull request #222 from kpet/github-actions e3bc1b14e Merge pull request #223 from WyvernWang/master 8aec5fcf9 Merge pull request #224 from Fznamznon/upstream-debug-module-ext 71b51d4f4 Merge pull request #225 from bashbaug/SPV_KHR_bit_instructions 5f003bd00 Clay is an internal framework of Tellusim Technologies Inc. 0320c5dd2 Upstream SPV_INTEL_debug_module 8ed0ff2c7 reserve value range 6553701d3 add support for SPV_KHR_bit_instructions 292387ae1 Add CI using Github actions and update README f95c3b376 Merge pull request #219 from cmarcelo/SPV_EXT_shader_atomic_float16_add 64fbc2ff9 Merge pull request #220 from kpet/spv-khr-integer-dot-product e51883ece Support SPV_KHR_integer_dot_product 2351f3a74 Add header changes for SPV_EXT_shader_atomic_float16_add 07f259e68 Merge pull request #218 from KhronosGroup/fix-ordering 7b5a2f411 Fix two ordering problems. f5417a4b6 Merge pull request #216 from mkinsner/mkinsner/allocate_vendor_extension_enum_range bce66d87b Merge pull request #213 from alan-baker/SPV_KHR_subgroup_uniform_control_flow 857642c6b Merge pull request #217 from StuartDBrady/add-C++-for-OpenCL-lang 7bfb1b532 Merge pull request #177 from MrSidims/private/MrSidims/AP 67da8a913 Add CPP_for_OpenCL to grammar 9a4b24433 Allocate additional Intel vendor extension enum blocks f836486eb Merge pull request #215 from dneto0/warnings c1e11359e buildHeaders: Add override decoration bfe6ce52f Merge pull request #214 from dneto0/cmake-3.0-in-build-headers 5f7de8b4c Update to CMake 3.0 9daf63c96 Support SPV_KHR_subgroup_uniform_control_flow 8ea6700d3 Update arbitrary float cast interfaces 0c28b6451 Merge pull request #212 from alan-baker/fix-xml 02ba4e73c Fix xml entry for SpvGenTwo generator 135b508e0 Merge pull request #210 from rAzoR8/spvgentwo ce23100fb Add SpvGenTwo to vendor IDs 2e1bc6dcd Merge pull request #208 from mkinsner/mkinsner/tripcount_loop_control_bit 60a5738c0 Rename spirv-headers.pc to SPIRV-Headers.pc 4f87476e1 removed excesive space in configure_file() line 1a8c9feb9 Fixed substituted string with paths and version d23495700 Add spirv-headers pkgconfig file ba29b3f59 Fix OpTypeBufferSurfaceINTEL token description (#207) 819fb44e4 Reserve loop control bit for upcoming trip count (min,max,avg) control 85b7e00c7 Merge pull request #206 from NikitaRudenkoIntel/sc fa3585c26 Add VectorComputeINTEL as enabling capability for Private StorageClass dafead176 Merge pull request #204 from DataBeaver/master ba086aec6 Add generator ID for MSP shader compiler f88a1f98f Merge pull request #201 from baldurk/spv-khr-non-semantic-info 6804a0431 Merge pull request #202 from mkinsner/mkinsner/mem_operand_allocation_section a3ffef8e2 Upstream AP Intel extensions a3082dab5 Add xml section for memory operand bit allocation tracking, and reserve two bits for an upcoming Intel extension 820d0ae3a Add NonSemantic.Vulkan.DebugInfo.100 JSON/header bcf55210f Merge pull request #178 from orbea/datadir fdab0e727 Merge pull request #200 from dneto0/public-spv-khr-linkonce-odr-spv-khr-expect-assume cf00fad5b Support SPV_KHR_expect_assume 7ac7a0f36 Support SPV_KHR_linkonce_odr 19e951f3d Merge pull request #198 from alan-baker/read-clock-scope eff6090ce Merge pull request #195 from kvark/patch-1 00e861df6 Change operand name in OpReadClockKHR to match extension a3fdfe814 Merge pull request #193 from bashbaug/DebugInfoFlags-None 29406f358 Add Naga as SPIR-V generation tool 75b30a659 Merge pull request #187 from bashbaug/function_control_bit_16 2e335d5fb Merge pull request #190 from dneto0/check-enumerant-ordering 2da20c0c1 Merge pull request #189 from jekstrand/SPV_EXT_shader_atomic_float_min_max 25fd8d031 Add header changes for SPV_EXT_shader_atomic_float_min_max 86e8eed50 Re-run buildSpvHeaders to fix indentation e50154dbd Header generator: Check enumerant ordering 03034f165 add generated headers faa570afb Merge pull request #192 from cmarcelo/SPV_KHR_workgroup_memory_explicit_layout 25ac9d50e add None as a possible value for DebugInfoFlags 38fe9b085 Add SPV_KHR_workgroup_memory_explicit_layout f9e1ffdcc Merge pull request #191 from dneto0/reorder-enums-in-spec 80438cd0d Push FPDenormMode, FPOperationMode to the end 49f96f47c add function control bitfield reservation section reserve bit 16 for an upcoming Intel extension eae955f05 cmake: Install cmake files to CMAKE_INSTALL_DATADIR Commands: ./third_party/update-spirvheaders.sh Bug: b/123642959
SwiftShader is a high-performance CPU-based implementation of the Vulkan graphics API12. Its goal is to provide hardware independence for advanced 3D graphics.
NOTE: SwiftShader's OpenGL ES implementation is no longer supported, and will be removed. Read more about our recommendation to use ANGLE on top of SwiftShader Vulkan here (aka. “SwANGLE”).
SwiftShader libraries can be built for Windows, Linux, and macOS.
Android and Chrome (OS) build environments are also supported.
CMake
Install CMake for Linux, macOS, or Windows and use either the GUI or run the following terminal commands:
cd build cmake .. cmake --build . --parallel ./vk-unittests
Tip: Set the CMAKE_BUILD_PARALLEL_LEVEL environment variable to control the level of parallelism.
Visual Studio
To build the Vulkan ICD library, use Visual Studio 2019 to open the project folder and wait for it to run CMake. Open the CMake Targets View in the Solution Explorer and select the vk_swiftshader project to build it.
The SwiftShader libraries act as drop-in replacements for graphics drivers.
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.
In 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.
See CONTRIBUTING.txt for important contributing requirements.
The canonical repository for SwiftShader is hosted at: https://swiftshader.googlesource.com/SwiftShader.
All changes must be reviewed and approved in the Gerrit review tool at: https://swiftshader-review.googlesource.com.
Authenticate your account here: https://swiftshader-review.googlesource.com/new-password (use the same e-mail address as the one configured as the Git commit author).
All changes require a Change-ID tag in the commit message. A commit hook may be used to add this tag automatically, and can be found at: https://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:
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)
On Windows, this command line requires using the Git Bash Shell.
Changes are uploaded to Gerrit by executing:
git push origin HEAD:refs/for/master
When ready, add a project owner as a reviewer on your change.
Some tests will automatically be run against the change. Notably, presubmit.sh verifies the change has been formatted using clang-format 11.0.1. Most IDEs come with clang-format support, but may require upgrading/downgrading to the clang-format version 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).
SwiftShader's Vulkan implementation can be tested using the dEQP test suite.
See docs/dEQP.md for details.
The third_party directory contains projects which originated outside of SwiftShader:
subzero contains a fork of the Subzero project. It originates from Google Chrome‘s (Portable) Native Client project. The fork was made using git-subtree to include all of Subzero’s history.
llvm-subzero contains a minimized set of LLVM dependencies of the Subzero project.
PowerVR_SDK contains a subset of the PowerVR Graphics Native SDK for running several sample applications.
googletest contains the Google Test 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.
See docs/Index.md.
Public mailing list: swiftshader@googlegroups.com
General bug tracker: https://g.co/swiftshaderbugs
Chrome specific bugs: https://bugs.chromium.org/p/swiftshader
The SwiftShader project is licensed under the Apache License Version 2.0. You can find a copy of it in LICENSE.txt.
Files in the third_party folder are subject to their respective license.
The legal authors for copyright purposes are listed in AUTHORS.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 and have contributed more than a formatting change, feel free to request to be added.