Roll third_party/swiftshader/ d25ce8725..f6f11215c (155 commits)

$ git log d25ce8725..f6f11215c --date=short --no-merges --format='%ad %ae %s'
2020-07-01 capn Implement shaderStorageImageExtendedFormats support
2020-07-05 capn Implement scatter/gather for 1- and 2-byte texels
2020-07-01 capn Fix float-to-half conversion
2020-07-03 capn Eliminate large image specialization
2020-06-24 capn Refactor texel buffer reads
2020-06-24 capn Implement SNORM uniform texel buffer support
2020-06-24 capn Implement B10G11R11_UFLOAT_PACK32 uniform texel buffer support
2020-07-02 sugoi ASTC Decoder: Trim unused struct members
2020-07-02 capn Fix /DEBUG:FASTLINK usage
2020-06-30 pcc Start reserving x18 by default on Android targets.
2020-06-25 srisser Fix debug assert from happening in release build
2020-06-10 capn Optimize clearing of depth and stencil images
2020-06-25 thakis mac: Add ARM64 support to swiftshader.
2020-06-22 amaiorano Kokoro: add builds with REACTOR_EMIT_DEBUG_INFO and REACTOR_EMIT_PRINT_LOCATION
2020-06-22 amaiorano Fix build when ENABLE_RR_DEBUG_INFO enabled
2020-06-22 amaiorano Make Windows Kokoro script less verbose
2020-06-22 cwallez Revert "Optimize clearing of depth and stencil images"
2020-06-11 capn Assert attachment format supports blending when blending is enabled
2020-06-10 capn Optimize copying image data for presentation
2020-06-10 capn Optimize clearing of depth and stencil images
2020-06-01 capn Assert reserved binding entries aren't accessed
2020-05-12 capn Optimize out-of-bounds checks with unsigned compare
2020-05-07 capn Replace instead of add pointer offsets when out of bounds
2020-06-15 capn Add a benchmark with multisampling enabled
2020-06-15 capn Refactor multisample benchmark support
2020-06-11 capn Implement multisample support for the triangle benchmark
2020-06-17 capn Don't assert thread_local initialization
2020-06-11 capn Ignore rasterization state pointers when rasterization is disabled
2020-06-11 capn Zero-initialize the context state and data
2020-06-15 sugoi Cleanup: using the proper Image subregion structure
2020-06-16 bclayton Squashed 'third_party/marl/' changes from 5c6c1532220..d29553a3730
2020-06-16 bclayton Squashed 'third_party/marl/' changes from c5127112545..5c6c1532220
2020-06-09 bclayton SpirvShaderDebugger: Show vector elements as xyzw
2020-06-09 bclayton SpirvShaderDebugger: Add a virtual destructor
2020-06-15 bclayton Squashed 'third_party/marl/' changes from 38c0c7a0f..c51271125
2020-06-15 bclayton Repoint marl branch from master to main
2020-06-15 bclayton SubzeroReactor: Use new marl::Scheduler::Config API.
2020-06-10 amaiorano Make rr::Print output to debugger and be stubbed
2020-06-10 sugoi Regres: Roll deqp forward to latest 1.2.1
2020-06-04 capn Validate the SPIR-V code in debug builds
2020-06-05 capn Add a triangle rendering benchmark
2020-06-10 capn Add glslang dependency to VulkanBenchmarks
2020-06-10 capn Add glslang as a submodule
2020-06-05 capn Move CMake build targets for PowerVR samples before unit tests
2020-06-01 capn Add microbenchmarks for vkCmdClear*Image
2020-06-04 capn Add back vulkan.hpp
2020-06-01 caio.oliveira Convert Vulkan headers from CRLF to LF endings
2020-06-02 ari.suonpaa Add Z mirroring support for image blit.
2020-05-26 vantablack Added reference counting for PipelineLayout objects
2020-06-02 bclayton libVulkan: Use new marl::Scheduler::Config API.
2020-05-01 amaiorano Regres: use Subzero backend by default
2020-04-30 bclayton Squashed 'third_party/marl/' changes from 748d3c161..3c643dd4c
2020-04-30 bclayton Vulkan/Debug: Don't step for column updates
2020-04-30 bclayton Vulkan/Debug: Fix build with clang-10.
2020-04-12 bclayton Device: Use std::unique_ptr instead of raw pointers
2020-04-09 amaiorano CMake: add graphviz generation scripts
2020-04-29 jrprice Fix null dereference in OFFSET macro
2020-04-29 capn Fix JIT on separate thread
2020-04-28 capn Avoid implicitly destructing thread-locals
2020-04-27 amaiorano Eliminate use of Vulkan header BEGIN_RANGE/END_RANGE/RANGE_SIZE enums
2020-04-27 amaiorano Run clang-format on renamed headers
2020-04-27 amaiorano Rename Vulkan-source .h to .hpp
2020-04-27 bclayton ReactorUnitTests: Speed up multithreaded tests
2020-04-22 capn Eliminate the ABORT() macro
2020-04-24 capn Record vkCmdBindDescriptorSets() as a single command
2020-04-23 capn Store binding information in the pipeline layout
2020-04-22 capn Don't expose individual descriptor set layouts to SPIR-V compilation
2020-04-23 capn Fix ordering of descriptor set bindings
2020-04-24 bclayton SpirvShader: Document activeLaneMask() and storesAndAtomicsMask()
2020-04-24 capn Omit ASSERT() expression evaluation in Release builds
2020-04-23 bclayton SpirvShaderDebugger: Ensure frames are fully popped
2020-04-23 bclayton SpirvShaderDebugger: Implement globals, stub array types
2020-04-22 bclayton SpirvShader: Add WriteCFGGraphVizDotFile debug function
2020-04-21 pcc Don't unlock Android buffers immediately after locking them.
2020-04-20 digit LLVM: Do not map read-only data sections as executable.
2020-04-17 digit Vulkan: Add vk_icdInitializeConnectToServiceCallback()
2020-04-23 amaiorano Kokoro: fix SWIFTSHADER_LESS_DEBUG_INFO not being set
2020-04-22 digit Update tests/ to accept Fuchsia bugs as fxb/#
2020-04-22 capn Fix specializing graphics routines for the pipeline layout
2019-05-15 bclayton SpirvShader: Add a flag for printing SPIRV execution
2020-04-17 bclayton Regres: Write logs to /dev/null
2020-04-20 amaiorano CMake: use target_compile_options/definitions for llvm
2020-04-20 amaiorano CMake: use target_link_options
2020-04-20 amaiorano CMake: require version 3.13
2020-04-20 amaiorano Kokoro: update CMake to latest version
2020-04-17 bclayton Regres: Limit the default number of threads to 100
2020-04-15 capn Pass only descriptor data to shader execution
2020-04-16 capn Reduce descriptor binding info exposure
2020-04-22 bclayton Kokoro: Fix ubuntu bots.
2020-04-17 digit Vulkan: Fix Fuchsia external semaphore fix tryWait().
2020-04-21 amaiorano CMake: fix astc code not being enabled correctly
2020-04-20 capn Don't use deprecated llvm::Type::getVectorNumElements()
2020-04-17 capn Fix JIT on separate thread
2020-04-03 bclayton Use Thread Safety Analysis annotations throughout SwiftShader.
2020-04-17 digit CMakeLists: Fix Fuchsia build.
2019-07-01 bclayton LLVMReactor: Drop codegenMutex, now thread safe.
2020-04-17 bclayton LLVMJIT: Remove the TargetMachine cache.
2020-04-17 bclayton LLVM 7: Set LLVM_ENABLE_THREADS to 1
2020-04-17 bclayton SpirvShader: Fix ASSERT firing in debugger
2020-04-17 bclayton Squashed 'third_party/marl/' changes from 539094011..748d3c161

Created with:
  roll-dep third_party/swiftshader
Bug: None

Change-Id: I9c71f3e1810f0515ba5958cf18c9d31f0b3b40cd
Reviewed-by: Corentin Wallez <>
Commit-Queue: Corentin Wallez <>
1 file changed
tree: dcccbc9fc94b36f069e75e6f9b57af0e3d8de9e0
  1. .clang-format
  2. .gitattributes
  3. .gitignore
  4. .gn
  7. CMakeLists.txt
  9. DEPS
  11. OWNERS
  13. README.chromium
  15. build_overrides/
  16. codereview.settings
  17. dawn.json
  18. dawn_wire.json
  19. docs/
  20. examples/
  21. generator/
  22. infra/
  23. scripts/
  24. src/
  25. third_party/
  26. tools/

Dawn, a WebGPU implementation

Dawn is an open-source and cross-platform implementation of the work-in-progress WebGPU standard. More precisely it implements webgpu.h that is a one-to-one mapping with the WebGPU IDL. Dawn is meant to be integrated as part of a larger system and is the underlying implementation of WebGPU in Chromium.

Dawn provides several WebGPU building blocks:

  • WebGPU C/C++ headers that applications and other building blocks use.
    • The webgpu.h version that Dawn implements.
    • A C++ wrapper for the webgpu.h.
  • A “native” implementation of WebGPU using platforms' GPU APIs:
    • D3D12 on Windows 10
    • Metal on macOS and iOS
    • Vulkan on Windows, Linux, ChromeOS, Android and Fuchsia
    • OpenGL as best effort where available
  • A client-server implementation of WebGPU for applications that are in a sandbox without access to native drivers

Helpful links:

Documentation table of content

Developer documentation:

User documentation: (TODO, figure out what overlaps with webgpu.h docs)




Apache 2.0 Public License, please see LICENSE.


This is not an officially supported Google product.