Roll SwiftShader from 562df4889b81 to f354daff5a2b (164 revisions)

2021-12-14 Regres: Update test lists @ 1eee6cbc
2021-12-13 Regres updates deqp.json before updating testlists
2021-12-13 Regres: Update test lists @ 592d413e
2021-12-13 Regres: Update test lists @ 592d413e
2021-12-10 Refactor image sample normalization
2021-12-10 Report depth and multi-plane UNORM formats as unsigned normalized
2021-12-10 Regres: Update test lists @ 4c62980d
2021-12-10 Suppress -Wdeprecated-declarations in Subzero's LLVM
2021-12-10 Implement VK_KHR_vulkan_memory_model
2021-12-09 Update vk::Stringify() structure handling
2021-12-09 Fix using XCB with odd width
2021-12-09 Implement VK_EXT_format_feature_flags2
2021-12-09 [pac] Add a specific flag for enabling PAC only
2021-12-09 Simplify scaling of 16-bit sampled texel components
2021-12-09 Remove OpenGL ES targets from the CMake build
2021-12-09 Remove the ANGLE submodule
2021-12-08 Refactor active blend factor determination
2021-12-08 Refactor active blend operation determination
2021-12-08 Fix passthrough blend operations
2021-12-08 Report input attachment usage capability for surface images
2021-12-08 Report storage usage capability for surface images
2021-12-07 Bump maxUniformBufferRange 2^14 to 2^16
2021-12-03 Skip building SPIRV-Tools executables
2021-12-03 Move swiftshader off deprecated llvm::IRBuilder APIs
2021-12-03 Regres: Update test lists @ a465cca8
2021-12-03 Unpack 1010102 formats into upper 16-bit components
2021-12-02 Add bclayton to OWNERS
2021-12-02 Regres: Update test lists @ f9c39655
2021-12-02 Update SPIR-V Tools to c75a1a46f
2021-12-02 Expose support for VK_KHR_swapchain_mutable_format
2021-11-30 Prevent exit-time destructors in src/WSI, Pipeline, and System
2021-11-30 Update SPIR-V Tools to d0a827a9f
2021-11-30 Update SPIR-V Headers to 20b02de99
2021-11-30 Don't handle vendor-specific SPIR-V instructions
2021-11-30 Don't consider OpType* instructions to be statements
2021-11-30 Eliminate SpirvShaderInstructions.inl
2021-11-26 Statically allocate function pointer tables for libXCB
2021-11-26 Statically allocate function pointer tables for libX11
2021-11-26 Refactor libXCB and libX11 wrappers
2021-11-26 Fix component normalization for texture gather
2021-11-25 Make Win32SurfaceKHR::present() more robust
2021-11-24 Assert that casting memory sizes to 32-bit doesn't overflow
2021-11-24 Use size_t for methods returning memory sizes
2021-11-24 Add a GN build option for the startup dialog
2021-11-23 Regres: Update test lists @ 9e727fad
2021-11-22 Assert that the descriptor set is not null
2021-11-22 Implement Assert() for Reactor
2021-11-22 Fix green bits for R5G6B5_UNORM_PACK16
2021-11-19 Make line stipple related tests pass
2021-11-19 Run as a Bash script
2021-11-19 Regres: Update test lists @ 210fe010
2021-11-19 Update testslists to match the dEQP revision
2021-11-18 Regres: Update test lists @ 4c687cc2
2021-11-18 Fix border color when sampling normalized texture formats
2021-11-18 Regres fetches HEAD and truncates deqp.json
2021-11-17 Regres: Update test lists @ e068963d
2021-11-17 Add support for VK_FORMAT_B8G8R8A8_UNORM|SRGB as storage image formats
2021-11-16 Regres: Update test lists @ f0e8ec2d
2021-11-15 Implement shaderStorageImageWriteWithoutFormat support
2021-11-15 Perform image write from a static function
2021-11-15 Support writing to storage images with packed formats
2021-11-15 Provide StorageImageDescriptor with an image view identifier
2021-11-15 Make GetTexelAddress() independent from SPIR-V parsing
2021-11-15 Detemplatize hasExtendedFeatures
2021-11-15 Rename use_x11 to ozone_platform_x11
2021-11-15 Allow dereferencing of constant Reactor pointers
2021-11-15 Parse the OpTypeImage information into ImageInstructionSignature
2021-11-15 Parse OpImageTexelPointer into an ImageInstruction
2021-11-13 cmake: Add VK_USE_PLATFORM_METAL_EXT for macOS builds
2021-11-13 Structure conversion cleanup
2021-11-12 Fix Xcb depth
2021-11-12 Produce a Visual Studio error for unreferenced local variables
2021-11-12 Rename ImageInstructionState to ImageInstructionSignature
2021-11-12 Separate the SPIR-V image and sampler as part of ImageInstruction
2021-11-12 Determine SPIR-V zero constants from SPIR-V binary only
2021-11-12 Parse OpImageRead and OpImageWrite into an ImageInstruction
2021-11-12 Regres: Update test lists @ 678d3931
2021-11-12 Make sw::Constants a member of vk::Device
2021-11-12 Pass the vk::Device to every routine as an extra parameter
2021-11-12 Split image sampling into routine lookup and function call
2021-11-11 VK_KHR_copy_commands2 support
2021-11-10 Tightly pack PlaneEquations array
2021-11-10 Fix Android.bp build after SPIRV-Headers update
2021-11-09 Follow-up 2: Fix Android.bp build after SPIRV-Tools update
2021-11-09 Follow-up: Fix Android.bp build after SPIRV-Tools update
2021-11-09 Associate inline sampler caches with instruction position
2021-11-09 Use the Vulkan format for OpImageWrite
2021-11-09 Simplify obtaining the type from a SPIR-V object <id>
2021-11-09 Treat sRGB formats as unsigned normalized
2021-11-09 Improve inverse blendConstant() readability
2021-11-09 Optimize clamping of constant blend factors
2021-11-09 Parse SPIR-V image instructions before code generation
2021-11-09 Check for valid SPIR-V <id>s by comparing against 0
2021-11-09 Fix Android.bp build after SPIRV-Tools update
2021-11-09 Add warning treated as error for missing case statement
2021-11-08 Regres updates SHA and testlists after daily run
2021-11-08 Update SPIR-V shader instructions after SPIRV-Tools update
2021-11-08 Regres: Update test lists @ 4c6da56d
2021-11-08 Update SPIR-V Tools to 339d4475c
2021-11-08 Update SPIR-V Headers to 29817199b
2021-11-08 No format verification in SPIR-V headers and tools update scripts
2021-11-07 VK_EXT_pipeline_creation_feedback support
2021-11-07 Regres: Update test lists @ 70f3a0ff
2021-11-06 Fix min/max blend operations
2021-11-05 VK_EXT_blend_operation_advanced minimal implementation
2021-11-05 Support VK_EXT_pipeline_creation_cache_control
2021-11-05 Poison device memory allocations for GN MSan builds
2021-11-03 Add assert on illegal signed/unsigned blit
2021-11-02 Perform all blend operations in floating-point
2021-11-02 Regres: Update test lists @ 542593f0
2021-11-01 Implement support for VK_FORMAT_R16*_UNORM attachment formats
2021-11-01 Clamp blend factors and color output
2021-11-01 Refactor blending
2021-10-27 Update git-hooks to HEAD revision
2021-10-27 Revert "Make git-hooks track with origin/main"
2021-10-27 Refactor Queue::Submit to use internal structure
2021-10-26 Make git-hooks track with origin/main
2021-10-25 Delay extension support check until instance/device creation
2021-10-21 Update git-hooks to latest version
2021-10-21 [Fuchsia] Fix Vulkan compilation
2021-10-20 Regres: Update test lists @ 6b700ffc
2021-10-19 Add VK_KHR_shader_integer_dot_product structs
2021-10-19 Regres: Update test lists @ 85101b9e
2021-10-19 Avoid SPIR-V binary identifier clashes
2021-10-19 Avoid recompiling identical SPIR-V binaries
2021-10-19 Store the SPIR-V binary of a vk::ShaderModule in an sw::SpirvBinary
2021-10-18 Fix uninitialized memoryOwner on unused DescriptorSet
2021-10-18 Fix BC6h decoder
2021-10-18 Fix blitting of various packed formats
2021-10-18 Update Vulkan headers to version 1.2.196
2021-10-15 Use smart pointer for the LibX11Exports singleton
2021-10-15 Regres: Update test lists @ ce1449fd
2021-10-14 Fix Depth+Stencil image copy
2021-10-14 Fix blitting of compressed images
2021-10-14 Make decompression functions const
2021-10-14 Remove LOG_TRAP
2021-10-13 Disable -Wbitwise-instead-of-logical for llvm-10.0 in swiftshader
2021-10-13 Regres: Update test lists @ ca2ada82
2021-10-13 Fix border update when rendering to cube face
2021-10-12 Revert "Kokoro: Disable gcp_ubuntu builds failing to update CMake"
2021-10-12 Regres: Roll dEQP to master revision e2aeccd
2021-10-12 Restore zero-initialization of device memory allocations for GN builds
2021-10-09 Don't initialize device memory allocations in MSan builds
2021-10-08 Don't initialize host memory allocations in MSan builds
2021-10-08 Disable C4244 when building LLVM for swiftshader
2021-10-07 Move ExternalMemoryHost to its own file
2021-10-07 Refactor DeviceMemory buffer allocation/freeing
2021-10-07 Rename allocation functions
2021-10-06 Separate device memory allocations from host allocations
2021-10-05 Deep copy specialization info
2021-10-05 Regres: Update test lists @ 70178a76
2021-10-04 Refactor swapchain image creation
2021-10-04 Increase the maximum 1D, 2D, and Cube image dimension to 16384
2021-10-04 Kokoro: Disable gcp_ubuntu builds failing to update CMake
2021-10-02 Add realms.cfg to LUCI configs.
2021-10-01 Add padding to VkBuffer size to avoid access violation
2021-10-01 Remove the legacy GLSL ES vertex shader fuzzer
2021-10-01 Fix macOS build requiring Objective-C++17 compilation
2021-10-01 Restore zero-initialization of memory allocations
2021-09-30 Refactor config constants
2021-09-29 Don't initialize memory allocations in MSan builds
2021-09-29 Fix unused-command-line-argument warning
2021-09-28 Regres: Skip the Vulkan Loader
2021-09-28 Regres: Update test lists @ 562df488

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
Please CC on the revert to ensure that a human
is aware of the problem.

To file a bug in SwiftShader:
To file a bug in Dawn:

To report a problem with the AutoRoller itself, please file a bug:

Documentation for the AutoRoller is here:

Bug: dawn:1173,dawn:1233
Change-Id: I1e09cd20b010bcef8d1222ff1b1371e60ca5dc65
Reviewed-by: Shrek Shao <>
Bot-Commit: Dawn Autoroller <>
Reviewed-by: Austin Eng <>
Commit-Queue: Austin Eng <>
3 files changed
tree: 5a939948ea1a925486c87de98e60c96e8d80a8cc
  1. .vscode/
  2. build_overrides/
  3. docs/
  4. examples/
  5. generator/
  6. infra/
  7. scripts/
  8. src/
  9. third_party/
  10. tools/
  11. .clang-format
  12. .gitattributes
  13. .gitignore
  14. .gn
  17. CMakeLists.txt
  18. codereview.settings
  19. dawn.json
  20. dawn_wire.json
  21. DEPS
  24. OWNERS
  26. README.chromium

Dawn's logo: a sun rising behind a stylized mountain inspired by the WebGPU logo. The text Dawn is written below it.

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 the webgpu.h docs)




Apache 2.0 Public License, please see LICENSE.


This is not an officially supported Google product.