Skip to content

Honor the surface's alphaMode in the D3D swapchain - #2

Closed
d3x0r wants to merge 880 commits into
mainfrom
d3d-alphamode-composition
Closed

d3x0r wants to merge 880 commits into
mainfrom
d3d-alphamode-composition

Conversation

@d3x0r

@d3x0r d3x0r commented Aug 14, 2026

Copy link
Copy Markdown
Owner

SwapChainD3D hardcoded DXGI_ALPHA_MODE_IGNORE even though PhysicalDeviceD3D advertises Premultiplied as a supported alpha mode, so a surface configured for per-pixel transparency was validated and then composited as opaque.

DXGI rejects a non-opaque alpha mode on CreateSwapChainForHwnd, so a premultiplied HWND surface is instead created with CreateSwapChainForComposition and bound to the window through a DirectComposition visual whose device, target and visual hang off the swapchain and are moved across when a swapchain is recycled - leaving them behind would destroy the target while Present kept succeeding, and the window would go blank. DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH is masked out for composition swapchains, which DXGI refuses outright, and MakeWindowAssociation is skipped since a composition swapchain is not associated with a window. Recycling an existing swapchain now also requires the alpha mode to be unchanged: AlphaMode is fixed at creation, so without that check a runtime configure() with a different alpha mode silently adopted the old swapchain and dropped the request. dcomp.lib is added to both the CMake and GN builds.

For the transparency to be visible the application's window must have been created with WS_EX_NOREDIRECTIONBITMAP; otherwise the window's redirection surface sits behind the DirectComposition visual and stays opaque.

Split out of google#69 at review request so the Windows side can be looked at separately; the Vulkan half of that change is unaffected by this one.

Verified on Windows 11 + NVIDIA with a Node addon embedding Dawn, driving three.js WebGPURenderer over a WS_EX_NOREDIRECTIONBITMAP window on D3D12. This cannot be demonstrated through ManualSurfaceTest: GLFW implements GLFW_TRANSPARENT_FRAMEBUFFER with DwmEnableBlurBehindWindow, so the window keeps a redirection surface, and WS_EX_NOREDIRECTIONBITMAP has no effect when applied after CreateWindowEx.

dawn-autoroll@skia-public.iam.gserviceaccount.com and others added 30 commits July 22, 2026 01:44
https://chromium.googlesource.com/angle/angle.git/+log/a7edcdf64384..3d3c181bdcf2

2026-07-22 syoussefi@chromium.org Translator: Check gl_FragData passed to function
2026-07-22 syoussefi@chromium.org Suppress failing tests
2026-07-22 syoussefi@chromium.org Translator: Disallow gl_Clip/CullDistance whole-array use w/o...
2026-07-21 abdolrashidi@google.com Traces: Upgrade words_crush
2026-07-21 abdolrashidi@google.com Traces: Upgrade bubble_shooter
2026-07-21 abdolrashidi@google.com Traces: Upgrade township
2026-07-21 syoussefi@chromium.org Translator: Disallow gl_Clip/CullDistance declaration after use
2026-07-21 syoussefi@chromium.org Vulkan: Initialize vkGetPhysicalDeviceProperties2KHR for VMA
2026-07-21 zmo@chromium.org Vulkan: Move mImage layout finalization into releaseImageViews
2026-07-21 lexa.knyazev@gmail.com Remove unofficial ETC2/EAC extensions
2026-07-21 wangra@google.com Vulkan: Reset DynamicBuffer state on allocation failure
2026-07-21 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 9e326a06852c to 3422fdc931b4 (701 revisions)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/angle-dawn-autoroll
Please CC angle-team+autoroll@google.com,chouinard@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry
To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: chouinard@google.com
Change-Id: I444d83e0c2f15b2bd69fdb22a6b3001eee6e9789
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/326436
Commit-Queue: dawn-autoroll@skia-public.iam.gserviceaccount.com <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: dawn-autoroll@skia-public.iam.gserviceaccount.com <dawn-autoroll@skia-public.iam.gserviceaccount.com>
…isions)

https://chromium.googlesource.com/external/github.com/microsoft/DirectXShaderCompiler.git/+log/63264ca42672..bb422093cd68

2026-07-22 jackell@microsoft.com [HLSL] Add rectangular LinAlg MatVec coverage (#8643)
2026-07-21 jackell@microsoft.com [HLSL] Add non-square LinAlg CopyConvert coverage (#8620)
2026-07-21 ascoleman@microsoft.com [SM6.10] LinAlg Validation: MatrixAccumulate (#8627)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/directx-shader-compiler-dawn
Please CC chouinard@google.com,webgpu-developers@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in DirectX Shader Compiler: https://github.com/microsoft/DirectXShaderCompiler/issues/new/choose
To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: chouinard@google.com
Change-Id: I0c60b8e8394af4030d7210b2a9ebe8f797e1b132
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/326435
Commit-Queue: dawn-autoroll@skia-public.iam.gserviceaccount.com <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: dawn-autoroll@skia-public.iam.gserviceaccount.com <dawn-autoroll@skia-public.iam.gserviceaccount.com>
https://chromium.googlesource.com/chromium/src/+log/865c075b4829..2c76a16ba37d

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/chromium-dawn
Please CC chouinard@google.com,chrome-gpu-infra@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Chromium: https://issues.chromium.org/issues/new?component=1571065&template=0
To file a bug in Dawn: https://issues.chromium.org/issues/new?component=1571065&template=0

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

DEPS, submodule, and //infra/config changes generated by running:
  scripts/roll_chromium_deps.py --revision 2c76a16ba37dc9d337c127eb8a39e228d6ed4f91 --verbose --autoroll --ignore-unclean-workdir

Repo entries:
  build: https://chromium.googlesource.com/chromium/src/build/+log/459d4a48a6..fccbf2b8d9
  buildtools: https://chromium.googlesource.com/chromium/src/buildtools/+log/2a7d4af3d9..0d8a204ff2
  testing: https://chromium.googlesource.com/chromium/src/testing/+log/8fef2fb478..a8978ccdc9
  third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/31c0cdf6b6..02671cd501
  third_party/chromium-tools-build/src: https://chromium.googlesource.com/chromium/tools/build/+log/79efda7071..df66645cb4
  third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/980d6af16e..36a464bfe6
  third_party/libunwind/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git/+log/8bd5df6498..bc2c2b1715
  third_party/llvm-libc/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git/+log/c0852c770d..997ff00a9b
  third_party/partition_alloc: https://chromium.googlesource.com/chromium/src/base/allocator/partition_allocator.git/+log/02115967c8..8454eacd11
  third_party/zlib: https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/8b3aa8a1cd..42c2f19a14
  tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang/+log/d2f0112bdd..007be1bbdf

No CIPD entries changed in this roll

No GCS entries changed in this roll

Explicitly synced GN variables:
  android_ndk_version: 2@30.0.15729638 -> 2@30.0.15729638

Bug: None
Tbr: chouinard@google.com
Change-Id: Id8207e5851281c8c9fb68506d77c669119b0fb63
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/326296
Commit-Queue: dawn-autoroll@skia-public.iam.gserviceaccount.com <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: dawn-autoroll@skia-public.iam.gserviceaccount.com <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Before C++26, std::initializer_list doesn't have a .data() member, which
makes it incompatible with the Span constructor from a range.

Adds unittests and compile tests and cleans up the tests for C-style
arrays slightly.

Bug: 439062058
Change-Id: Iaef4c20846915ae94020d841fd33597b720624c4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/326116
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Loko Kung <lokokung@google.com>
Missed this when adding the new dependency for the Mesa build

Change-Id: Id9037f74a46b821e41e66fbbf395d628009ffe6e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/326355
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
This should fix a failure in the release action due to a conflict with a
new version of git.

Change-Id: Id541f0ddd0e58d9aeec47cd4c491333d4e241222
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/326297
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Auto-Submit: Natalie Chouinard <chouinard@google.com>
Vulkan::Loader's CMake expects/assumes that the Vulkan::Headers will
be installed before it is configured on a path that can be found via
find_package. Thus it unconditionally uses VulkanHeaders_VERSION in a
conditional, which causes an error when enabling
TINT_BUILD_FUZZER_VULKAN_SUPPORT since our build does all of the
configuration in one phase and then the building in another.

Setting a faux value to work around the CMake issue, since if the
Vulkan::Headers dependency is not where we expect it a bunch of other
build errors will occur anyway.

Fixes: 537390926
Change-Id: Iea6f7e189aff021dfb1f18bfce20e0f6b2f77f98
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/326335
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Regenerated:
 - expectations.txt
 - compat-expectations.txt
 - ts_sources.txt
 - test_list.txt
 - resource_files.txt
 - webtest .html files


https://chromium.googlesource.com/external/github.com/gpuweb/cts/+log/a5da75765403..499044af47ec
 - 499044 Fix buffer_view validation tests (#4686)

Created with './tools/run cts roll'

Cq-Include-Trybots: luci.chromium.try:android-dawn-arm-rel,android-dawn-arm64-rel,dawn-try-linux-x64-intel-uhd770-rel,dawn-try-mac-amd-exp,dawn-try-mac-arm64-m2-exp,dawn-try-mac-intel-exp,dawn-try-win-x64-intel-uhd770-rel,dawn-try-win10-x86-rel,linux-dawn-rel,mac-arm64-dawn-rel,mac-dawn-rel,win-dawn-rel
Include-Ci-Only-Tests: true
Change-Id: Ia4a48adffaf7a47786921ce0a3b266ad0743417b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/326415
Commit-Queue: Alan Baker <alanbaker@google.com>
Bot-Commit: Dawn Automated Expectations <dawn-automated-expectations@chops-service-accounts.iam.gserviceaccount.com>
Reviewed-by: Alan Baker <alanbaker@google.com>
* CTS fixes from gpuweb/cts#4686 landed

Change-Id: I0b9c1659b9835d8340d67635cce7dfa89d226172
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/326515
Reviewed-by: Natalie Chouinard <chouinard@google.com>
Commit-Queue: Natalie Chouinard <chouinard@google.com>
Auto-Submit: Alan Baker <alanbaker@google.com>
Based on CTS failures, the Metal API appears to, in practice, limit
processes to a max of 32 MTLCounterSampleBuffer allocations. To prevent
Out-Of-Memory errors when creating more than 32 timestamp QuerySets,
this CL introduces CounterSampleBufferAllocator which virtualizes query
sets by pooling large, shared 4096-slot buffers and sub-allocating
contiguous slices.

When QuerySets are created with a user-defined label, continue to map it
to its own dedicated MTLCounterSampleBuffer to preserve the name.

Bug: 537312889
Change-Id: I66bd3862e3abec8bb16ccf3ddf6fceb22c97377f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/326195
Reviewed-by: Loko Kung <lokokung@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Natalie Chouinard <chouinard@google.com>
- Now that we've introduced GetInstance on the Adapter,
  we've since updated native to reflect the fact that we
  don't need to clear out callbacks when the last external
  Instance reference is dropped since it can be retrieved
  from the Device/Adapter. This change modernizes the
  wire to reflect this as well, removing the old system
  where we needed the Client to keep track of the
  EventManagers, instead keeping the EventManagers on
  the Instance directly.
- This change updates all the wire commands to use the
  ObjectHandle of the Instance to handle Future commands.
- As a result of this change, we can also implement the
  Adapter.GetInstance().

Bug: 537014995
Change-Id: I5fe4724cdbc80b06205ad15070ca09d3cc291469
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/325995
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Loko Kung <lokokung@google.com>
This patch removes `ConvertibleStatus` from `api_cpp.h` and all
the calls that treat the return value from Enum `Status` to boolean.

Bug: 42241199
Change-Id: If8d4f924a05733345db95211513b976b410a4f40
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/325755
Commit-Queue: Loko Kung <lokokung@google.com>
Reviewed-by: Loko Kung <lokokung@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Turns off a bunch of integrations, tests, and support for things like
windowing systems and video codecs that are not needed by the Tint +
Mesa fuzzer experiment.

Moves the mesa config options out to a text file so there is
a single source of truth for the GN and CMake builds.

Adds --reconfigure to the meson setup call to force re-running
configuration every build to make sure that any changes to the meson
config are caught. This is being done because this entire task
involves crossing the build system boundary and thus it is difficult
to make sure that configuration is being triggered when expected, and
I have definitely seen it not running when I expect it to run and not
pick up changes.

Bug: 475840957
Change-Id: I419de73651ad937aafc77b09404dedb54a4e03ff
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/326535
Reviewed-by: David Neto <dneto@google.com>
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: David Neto <dneto@google.com>
- Removes the non-spanified version as well.
- This change needs to wait for the chromium change to land first:
  https://chromium-review.git.corp.google.com/c/chromium/src/+/8104603

Bug: 528305452
Change-Id: Ib86803bfb82fa76864738aa45d21f478e882c50a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/326375
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Loko Kung <lokokung@google.com>
FreeBlock nodes are now placement-new'd directly into the HeapArray
they describe, and linked via LinkedList<FreeBlock>, avoiding the
separate std::deque allocation on every Return()/Tick()/TrimMemory().

Bug: 533386841
Change-Id: If4090fc5ff14919212c8ca44fa3a07537f5ae3d5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/325815
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@google.com>
A vec3<u32> internal immediate requires 16-byte alignment, so it needs
padding when it follows a user immediate block whose size is not a
multiple of 16. Store num_workgroups as a struct of three u32 members
instead: it only needs 4-byte alignment, adds no padding, and (unlike an
array) is allowed by spec in the immediate address space.

Bug: 366291600
Change-Id: I66e42f556a6274b4a56c41ccee7e832c59b4a041
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/324276
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Shaobo Yan <shaoboyan@microsoft.com>
https://chromium.googlesource.com/angle/angle.git/+log/3d3c181bdcf2..8521722b7ebc

2026-07-23 syoussefi@chromium.org Translator: Fix gl_FragData clamp without EXT_draw_buffers
2026-07-23 mark@lunarg.com Trace/Replay: Account for traces with no binary data
2026-07-23 syoussefi@chromium.org HLSL: Fix name collision between parameters and locals
2026-07-23 thomsmit@google.com GL: workaround: Flush queries before deleting or unbinding FBOs on ARM
2026-07-22 syoussefi@chromium.org IR: Fix build
2026-07-22 g.tammana@samsung.com OpenCL: Use time stamp period limits for timer resolution
2026-07-22 bsheedy@chromium.org Add Win/ARM64 builders
2026-07-22 geofflang@chromium.org GL: Mask the stencil clear value before applying.
2026-07-22 geofflang@chromium.org GL: BindBufferBase set size and offset to 0.
2026-07-22 geofflang@chromium.org GL: Refactor many extension checks into functions.
2026-07-22 g.tammana@samsung.com OpenCL: Fix spell errors on CL implementation constants
2026-07-22 cclao@google.com Vulkan: Fix potential VUID-VkImageCreateInfo-pNext-02396 in AHB image
2026-07-22 lehoangquyen@chromium.org GL: Move TextureGL::initializeContentsImpl to private section
2026-07-22 cclao@google.com Vulkan: Fix UAF in DescriptorPoolHelper via unsafe WeakPtr upgrade
2026-07-22 syoussefi@chromium.org Suppress failing test on windows/Intel
2026-07-22 wangra@google.com Android: Refine some test expectations to PIXEL 10 GLES
2026-07-22 g.tammana@samsung.com OpenCL: Add Alpha only format support
2026-07-22 geofflang@chromium.org GL: Split tracking of primitive restart state.
2026-07-22 lexa.knyazev@gmail.com Simplify BuildInternalFormatInfoMap
2026-07-22 geofflang@chromium.org GL: Fix unsynced BlendStateExt bitsets for adv and ext blend.
2026-07-22 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from e6f8ad39a426 to 5a2ecc2032de (88 revisions)
2026-07-22 wangra@google.com D3D11: Fix StructuredBuffer field type validation
2026-07-22 angle-autoroll@skia-public.iam.gserviceaccount.com Roll VK-GL-CTS from 5fa43613e238 to c57d29f97dbd (7 revisions)
2026-07-22 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 3422fdc931b4 to 7f138c6e3221 (836 revisions)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/angle-dawn-autoroll
Please CC angle-team+autoroll@google.com,chouinard@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry
To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: chouinard@google.com
Change-Id: I7324a26ff88891f31a3b960fe9fb6084aff57e3d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/326695
Bot-Commit: dawn-autoroll@skia-public.iam.gserviceaccount.com <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: dawn-autoroll@skia-public.iam.gserviceaccount.com <dawn-autoroll@skia-public.iam.gserviceaccount.com>
…ision)

https://chromium.googlesource.com/external/github.com/microsoft/DirectXShaderCompiler.git/+log/bb422093cd68..2fab3f175518

2026-07-22 ascoleman@microsoft.com [SM6.10] LinAlg: Update vector accumulate to match spec (#8644)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/directx-shader-compiler-dawn
Please CC chouinard@google.com,webgpu-developers@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in DirectX Shader Compiler: https://github.com/microsoft/DirectXShaderCompiler/issues/new/choose
To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: chouinard@google.com
Change-Id: Ia23a77d5944228e55f7f967afe21108a9e3958d4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/326655
Commit-Queue: dawn-autoroll@skia-public.iam.gserviceaccount.com <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: dawn-autoroll@skia-public.iam.gserviceaccount.com <dawn-autoroll@skia-public.iam.gserviceaccount.com>
https://chromium.googlesource.com/chromium/src/+log/2c76a16ba37d..2b6571f5ae43

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/chromium-dawn
Please CC chouinard@google.com,chrome-gpu-infra@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Chromium: https://issues.chromium.org/issues/new?component=1571065&template=0
To file a bug in Dawn: https://issues.chromium.org/issues/new?component=1571065&template=0

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

DEPS, submodule, and //infra/config changes generated by running:
  scripts/roll_chromium_deps.py --revision 2b6571f5ae4344194c8ffbc5c79622dc4e770cab --verbose --autoroll --ignore-unclean-workdir

Repo entries:
  build: https://chromium.googlesource.com/chromium/src/build/+log/fccbf2b8d9..482059be51
  testing: https://chromium.googlesource.com/chromium/src/testing/+log/a8978ccdc9..ceb4b44bc9
  third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/02671cd501..ff6e8ce3e9
  third_party/chromium-tools-build/src: https://chromium.googlesource.com/chromium/tools/build/+log/df66645cb4..d2a213a099
  third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/36a464bfe6..b276ddf3c7
  third_party/libunwind/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git/+log/bc2c2b1715..a622539c31
  third_party/llvm-libc/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git/+log/997ff00a9b..fc207ca0fe
  third_party/partition_alloc: https://chromium.googlesource.com/chromium/src/base/allocator/partition_allocator.git/+log/8454eacd11..247cfd34b2
  tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang/+log/007be1bbdf..ff7e1238b9
  tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/bc534bf62c..c9d8feb70c

CIPD entries:
  buildtools/linux64
  buildtools/mac
  buildtools/win

No GCS entries changed in this roll

Explicitly synced GN variables:
  android_ndk_version: 2@30.0.15729638 -> 2@30.0.15729638

Bug: None
Tbr: chouinard@google.com
Change-Id: I46631b03cbf6fa4f3f0651556a89f470bb2d3272
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/326676
Commit-Queue: dawn-autoroll@skia-public.iam.gserviceaccount.com <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: dawn-autoroll@skia-public.iam.gserviceaccount.com <dawn-autoroll@skia-public.iam.gserviceaccount.com>
https://chromium.googlesource.com/vulkan-deps.git/+log/f7e4835de105..afc9d8707b53

Also rolling transitive DEPS:
  https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/50530d0483a76350de0b41c15b708ec14d64cc3f..2eb8a58103d0d4d75393afef16aa9bc24d1513b0
  https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/0d6fd73ca73830ccab5fa1f00ed5ed40124e2c55..a665e21f3061f34064b39937cf00fe8d8769f4ef
  https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers/+log/e3b1eec08173d6b825cd3ac88c885a63b621504a..d314eae73fdc90847bb8304a86ee7c6a8ee023b6
  https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader/+log/f443e1450bc84699dc62c51156abe4357e20ed37..59a70594de4559fd3aed73fe8ac2d6c48ca002d4
  https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/aaeec0b93f76a0a134141c7e0a88588b93b7abce..84e4e10cbe6772908f5d5b84ce1771794cefb738

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-dawn-autoroll
Please CC chouinard@google.com,webgpu-developers@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: chouinard@google.com
Change-Id: Ifae4d1478013740259fd24691f90d1a66d79a153
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/326675
Bot-Commit: dawn-autoroll@skia-public.iam.gserviceaccount.com <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: dawn-autoroll@skia-public.iam.gserviceaccount.com <dawn-autoroll@skia-public.iam.gserviceaccount.com>
If a prior Map call failed, mMappedData will be nullptr. Replace
DAWN_ASSERT(mMappedData) with a DAWN_INTERNAL_ERROR_IF check.

Bug: chromium:537751400
Change-Id: I94f01f0525e3fdac9b062c8a2ad018e201f43c18
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/326735
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@google.com>
* Add IR validation that bufferArrayView does not have a fixed footprint
* WGSL validator already exists

Fix: 537682974
Change-Id: I4117b906c2ed86a723ad8e1138b8cae76b744eae
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/326555
Auto-Submit: Alan Baker <alanbaker@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Commit-Queue: Alan Baker <alanbaker@google.com>
Based on CTS expectations, it appears that the PrimitiveIndex feature is
not well-supported by Intel GPUs when DXC is disabled, so disable the
feature on D3D11 for now and D3D12 when DXC is disabled.

Also remove CTS expectations that should now pass since the feature is
disabled on the failing backend.

Include-Ci-Only-Tests: true
Cq-Include-Trybots: luci.dawn.try:dawn-try-win-x64-intel-uhd630-asan,dawn-try-win-x64-intel-uhd630-rel,dawn-try-win-x64-intel-uhd770-rel,dawn-try-win-x86-intel-uhd630-rel;luci.chromium.try:dawn-try-win-x64-intel-exp,dawn-try-win-x64-intel-uhd770-rel
Change-Id: I531283a8d0f2ecfb9b23b8b8e36e259cda40c5ed
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/326295
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Natalie Chouinard <chouinard@google.com>
wgpu::LoadOp::Undefined and wgpu::StoreOp::Undefined, when the
DawnAllowUndefinedLoadStoreOp feature is enabled, are now promoted to
whichever concrete op the backend considers best performing:
- LoadOp::Load & StoreOp::Store if the backend prefers it (e.g.
  desktop GPUs, where Load & Store are no-ops).
- LoadOp::Clear & StoreOp::Discard otherwise (e.g. tile-based
  renderers, where Discard avoids storing to system memory).

Bug: 405326705
Change-Id: I0af169f323ffd9f6c8967b1bf4bec9229f44ffe1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/232374
Commit-Queue: Quyen Le <lehoangquyen@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Quyen Le <lehoangquyen@google.com>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
To remove the "Binding" part.

Done by editing dawn.json and running:

  git grep -l -i "insert\.\?binding" | xargs sed -i "" "s/\(nsert\)Binding/\1/"
  git grep -l -i "remove\.\?binding" | xargs sed -i "" "s/\(emove\)Binding/\1/"
  git cl format

Bug: 435317394
Change-Id: I908f0d69a4ca6f04baa6bb96bb3017beea222c52
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/326775
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
This reverts commit f76b196.

Reason for revert: Causing issues with Dawn->Chromium because of optimization guide / g3.

Original change's description:
> Remove `ConvertibleStatus` from `api_cpp.h`
>
> This patch removes `ConvertibleStatus` from `api_cpp.h` and all
> the calls that treat the return value from Enum `Status` to boolean.
>
> Bug: 42241199
> Change-Id: If8d4f924a05733345db95211513b976b410a4f40
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/325755
> Commit-Queue: Loko Kung <lokokung@google.com>
> Reviewed-by: Loko Kung <lokokung@google.com>
> Reviewed-by: Corentin Wallez <cwallez@chromium.org>

TBR=cwallez@chromium.org,jiawei.shao@intel.com,dawn-scoped@luci-project-accounts.iam.gserviceaccount.com,lokokung@google.com

No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 42241199
Change-Id: I59d0d1ebec9229f897c465adf6cea6dca6b40c31
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/326895
Commit-Queue: Loko Kung <lokokung@google.com>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Removes the workaround for VulkanHeader/Loader interaction that has
now been fixed upstream.

Also disables Meson trying to download missing dependencies, which was
missed in a previous patch.

Bug: 537390926, 475840957
Change-Id: Idffaab26c2c35da0264e8ccb24929b5580a8f75b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/326855
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Fixed: 536438832
Change-Id: I2b5fd793ded553f70c3296888748e5fa2b188446
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/325855
Commit-Queue: Brandon Jones <bajones@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
In both Metal and Vulkan with the clear_buffer_before_resolve_queries
toggle resolves of 0 queries where causing issues because they do copies
or fills of 0 bytes.

Fixed: 536641544
Change-Id: I4610d1828b69d4a742b867c95d4ec065ddc731b2
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/325875
Reviewed-by: Brandon Jones <bajones@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Change-Id: I69d0f7d276ee128d87715d4acc90e4e81f6f1d29
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/326915
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
dawn-autoroll@skia-public.iam.gserviceaccount.com and others added 28 commits August 11, 2026 01:48
https://swiftshader.googlesource.com/SwiftShader.git/+log/26e6a4b84daf..6b8d31709ad1

2026-08-10 aidengrossman@google.com Do not use deprecated LLVM Typed pointer functions

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/swiftshader-dawn-autoroll
Please CC alanbaker@google.com,webgpu-developers@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry
To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: alanbaker@google.com
Change-Id: Ib1c366949c0e587c862ee63b7b407e9c8b7a8b6e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/331335
Bot-Commit: dawn-autoroll@skia-public.iam.gserviceaccount.com <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: dawn-autoroll@skia-public.iam.gserviceaccount.com <dawn-autoroll@skia-public.iam.gserviceaccount.com>
https://chromium.googlesource.com/chromium/src/+log/67de82b959c3..fb50f3b4e9bc

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/chromium-dawn
Please CC alanbaker@google.com,chrome-gpu-infra@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Chromium: https://issues.chromium.org/issues/new?component=1571065&template=0
To file a bug in Dawn: https://issues.chromium.org/issues/new?component=1571065&template=0

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

DEPS, submodule, and //infra/config changes generated by running:
  scripts/roll_chromium_deps.py --revision fb50f3b4e9bc69c942e7f521166750c8b26db002 --verbose --autoroll --ignore-unclean-workdir

Repo entries:
  build: https://chromium.googlesource.com/chromium/src/build/+log/704349deb0..4ba10f20fa
  testing: https://chromium.googlesource.com/chromium/src/testing/+log/4453d667cb..3639073f9c
  third_party/chromium-tools-build/src: https://chromium.googlesource.com/chromium/tools/build/+log/21efdff021..2c8a0a0478
  third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/cad42f6eae..d6b339fcfd
  third_party/llvm-libc/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git/+log/6fd5620cc4..f695341cf7
  third_party/partition_alloc: https://chromium.googlesource.com/chromium/src/base/allocator/partition_allocator.git/+log/f51f0758db..7d6a158416
  third_party/protobuf: https://chromium.googlesource.com/chromium/src/third_party/protobuf/+log/f4b110307a..da5a4c831e
  third_party/zlib: https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/c5cc9edf89..8002e91cea
  tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang/+log/e4816757c4..bb6b4bee03
  tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/77451c2e92..f853d2d3ca

CIPD entries:
  buildtools/linux64
  buildtools/mac
  buildtools/win

No GCS entries changed in this roll

Explicitly synced GN variables:
  android_ndk_version: 2@30.0.15729638 -> 2@30.0.15729638

Bug: None
Tbr: alanbaker@google.com
Change-Id: I17d9d39b87799bc77c06961cb1c0515de2f82cae
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/331355
Commit-Queue: dawn-autoroll@skia-public.iam.gserviceaccount.com <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: dawn-autoroll@skia-public.iam.gserviceaccount.com <dawn-autoroll@skia-public.iam.gserviceaccount.com>
…isions)

https://chromium.googlesource.com/external/github.com/microsoft/DirectXShaderCompiler.git/+log/beb6c47d9d6c..758572136823

2026-08-11 joaosaffranllvm@gmail.com Condition Artifact Upload to running lavapipe (#8724)
2026-08-11 jackell@microsoft.com [HLSL] Convert the LinAlg descriptor I/O runner to the typed CPU oracle (#8752)
2026-08-11 joaosaffranllvm@gmail.com Modify gen_version.py to handle vpack versioning (#8760)
2026-08-10 ascoleman@microsoft.com [SM6.10] LinAlg Validation: MatrixAccumulateToDescriptor (#8743)
2026-08-10 jackell@microsoft.com [HLSL] Add a CPU oracle check for bytes outside a stored matrix (#8745)
2026-08-10 brendanduncan@gmail.com Fix 8601 check for RayQuery user type (#8610)
2026-08-10 tex3d@users.noreply.github.com NFC: ExtractIRForPassTest.py: add tool path option and -hlsl-passes-pause (#8447)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/directx-shader-compiler-dawn
Please CC alanbaker@google.com,webgpu-developers@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in DirectX Shader Compiler: https://github.com/microsoft/DirectXShaderCompiler/issues/new/choose
To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: alanbaker@google.com
Change-Id: I2cd32677cdf9fe1645ab58003085fdea54e83a78
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/331315
Bot-Commit: dawn-autoroll@skia-public.iam.gserviceaccount.com <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: dawn-autoroll@skia-public.iam.gserviceaccount.com <dawn-autoroll@skia-public.iam.gserviceaccount.com>
https://chromium.googlesource.com/vulkan-deps.git/+log/4a3af97d047f..e4ac15180d9c

Also rolling transitive DEPS:
  https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/388f5af1a6d4a4df4ab9bf69a1817255952e6ef1..ab07f9412ae631af816909b6b8440896da5d6f11
  https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader/+log/ff6f71acd66aa2f11c53bb227d07842db4e46da3..fc8465f0a5b605e070e5ca9fe3064249926deb2d
  https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries/+log/48b2a63b17eb79d612bd276d6e1adeb1f73c03e9..120d418dd8fa884c82c783578ca381d2c81c92c9
  https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/b835cdcb74297baa81f049770962884f4d08d7be..57bbc5e95ab7ff04ec453c648ed2baec14dea5f5

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-dawn-autoroll
Please CC alanbaker@google.com,webgpu-developers@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: alanbaker@google.com
Change-Id: I7c79f1304a016403f12a489145a30909d55c64b3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/331395
Commit-Queue: dawn-autoroll@skia-public.iam.gserviceaccount.com <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: dawn-autoroll@skia-public.iam.gserviceaccount.com <dawn-autoroll@skia-public.iam.gserviceaccount.com>
 - Update dawn.json to no longer allow passing nullptr to unset the
   ResourceTable in RenderPassEncoder::SetResourceTable.
 - Update the validation in RenderPassEncoder.
 - Remove a lot of validation tests that were setting nullptr or
   multiple ResourceTables on a RenderPassEncoder.
 - Add validation tests for the new validation in RenderPassEncoder.
 - Change end2end tests to only test multiple ResourceTables in
   ComputePassEncoder. Simplify the code accordingly.

Bug: 530981417
Change-Id: Id3c41bf55260405feecaf4210dc6ba5b6034e7ba
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/330736
Reviewed-by: Loko Kung <lokokung@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Change the order of destruction of members of CommandBuffer to avoid a
dangling pointer.

Bug: 530981417
Change-Id: Id777a99ad79f46c99c768a8c8378ec1bdcaa9481
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/330737
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Loko Kung <lokokung@google.com>
Regenerated:
 - expectations.txt
 - compat-expectations.txt
 - ts_sources.txt
 - test_list.txt
 - resource_files.txt
 - webtest .html files


https://chromium.googlesource.com/external/github.com/gpuweb/cts/+log/2155da5dca15..319741d6ee30
 - 319741 Make README.md links work on github.io (#4692)

Created with './tools/run cts roll'

Cq-Include-Trybots: luci.chromium.try:android-dawn-arm-rel,android-dawn-arm64-rel,dawn-try-linux-x64-intel-uhd770-rel,dawn-try-mac-amd-exp,dawn-try-mac-arm64-m2-exp,dawn-try-mac-intel-exp,dawn-try-win-x64-intel-uhd770-rel,dawn-try-win10-x86-rel,linux-dawn-rel,mac-arm64-dawn-rel,mac-dawn-rel,win-dawn-rel
Include-Ci-Only-Tests: true
Change-Id: Ic48f0f0c1e261b56fa08fbbb10e243e5c5c3298b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/331275
Commit-Queue: Alan Baker <alanbaker@google.com>
Bot-Commit: Dawn Automated Expectations <dawn-automated-expectations@chops-service-accounts.iam.gserviceaccount.com>
Reviewed-by: Alan Baker <alanbaker@google.com>
Bug: 532946455
Change-Id: I7faf2a0d31063bf5ca1653447efc75c0de94afb2
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/324775
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Loko Kung <lokokung@google.com>
Fixes: 541084340
Change-Id: Ibd5d56ce55cffd6714492f394e690af221888b1f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/331195
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: James Price <jrprice@google.com>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
Change-Id: Ib9cf03672b04f7e1db4422fa35f61c6d67c8282f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/331235
Commit-Queue: Loko Kung <lokokung@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
This avoid the boolean argument soup by differentiating
Make*PipelineNoTable from Make*PipelineWithTable.

Bug: 530981417
Change-Id: If3643b75e586652e169bf963711f23037092cfbd
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/331115
Reviewed-by: Loko Kung <lokokung@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Add a polyfill to work around a driver bug on Mac Intel GPUs where
dynamically indexed element stores on boolean vectors do not behave as
expected (they appear to either crash or timeout).

This issue was caught by swizzle assignment CTS tests, however because
swizzle assignments are largely just syntactic sugar, it can be
recreated without the swizzle assignment language feature, as shown in
the Dawn e2e reproducer test that fails on the Mac Intel bots without
this polyfill.

Bug: 540789158
Cq-Include-Trybots: luci.dawn.try:dawn-cq-mac-x64-rel
Change-Id: Idcd1f8c27cddb629f9f347a8dc942513a2066a1b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/330776
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: Natalie Chouinard <chouinard@google.com>
- Removes the remaining support for blocklisting spanification
  in the wire after updating the remaining paths that required
  fixed-extent Spans now that they are available.
- There are still some vestiges of the spanification notably
  in WireCmd.cpp where because the Cmds are using C structs
  we cannot spanify them entirely yet because serializing
  and deserialization of the raw C structs still require
  directly reading/writing to the pointers.
- This will be addressed in a follow up where I am going to
  try to generated a Dawn level version of the
  wgpu_structs_autogen.h file that doesn't convert the C
  types to implementation specific types, but does spanify
  the structs and relevant members. Implementations can then
  provide an additional namespace specific override of the
  structs that further refine the types to the implementations,
  specifying ToAPI and FromAPI helpers in a respective
  dawn_platform.h generated file.

Bug: 526537254
Change-Id: If461c05fd8dd9c1433f796b8a25d1248f4686291
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/330035
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Loko Kung <lokokung@google.com>
- Moves these helpers to their own templates in preparation to
  unify the struct generator templates.

Change-Id: Idd76e0570d72e601abdf10c8d3dc60993e1d1878
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/330495
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Loko Kung <lokokung@google.com>
- Updates the wire templates to directly use the common ones.

Change-Id: I238a34eb6f8e3b4c4b6ca3c5111903ae100d69aa
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/330496
Commit-Queue: Loko Kung <lokokung@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
- This change makes the native structs use the common struct
  templates for code generation.
- Some minor capabilities are added like equality operators to
  the templates in order to satisfy the current native code.
  Also adds back support for spanification blocklist because
  there are still some cases in native that need it.
- Updates the wire to unify naming of FreeMember functions but
  continue providing an alias for easier template code use.
- Updates the remaining areas in native that can now use the
  spanified fixed-extent spans.

Change-Id: Ib9d9f70fe0e0f0c0b20bfbce78aefd856c31cc88
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/330497
Commit-Queue: Loko Kung <lokokung@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
This is the result of running the automatic spanification
on linux and updating code to use and pass spans where size is known.
The original patch was fully automated using script:
//tools/clang/spanify/rewrite-multiple-platforms.sh -platforms=linux
Then refined with jetski-cli and at last manually refined

Original patch: patch_0.txt

Bug: 439964610
Change-Id: Id972ac0ab5767c4e0ea79703a8fc346d4d86007f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/313676
Reviewed-by: Loko Kung <lokokung@google.com>
Commit-Queue: Daniel Angulo <angdaniel@google.com>
Suppresses a number of WebGPU CTS failures that are occurring on the
Win11/NVIDIA GTX 1660 experimental config.

Bug: 413300864, 542749864, 542752829, 542757110
Include-Ci-Only-Tests: chromium.dawn:Dawn Win10 x64 Experimental Release (NVIDIA)|webgpu_cts_fxc_tests
Change-Id: I7ee0dbc018beb7803cb2a9a7f220549d4b2add93
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/328495
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Brian Sheedy <bsheedy@google.com>
Commit-Queue: Jon Banh <jhbanh@google.com>
Couple more fixes for the libzstd dependency.

Specifically, use a custom .pc file for libzstd to point meson at where
the files are checked out to vs where they were built on the original
bot.

Additionally move the pkg_config_path in the native config from
[properties] to the [built-in options] section, since that is what
modern meson uses.

Bug: 475840957
Change-Id: Iabf2047ba1ac349f57e65bc260036f021fb5cbce
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/331535
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Also:

- Add tests that print adapter/device features and adapter info
  (including subgroup matrix configs)

- Fix printing of test parameter names for readability:

  -SpotTests.DeviceFeatures/0
  +SpotTests.DeviceFeatures/MinCompat

Bug: 403607795
Change-Id: Ic4997914c630a647827408c2312d2b5db89ef8fc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/331255
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Shao, Jiawei <jiawei.shao@intel.com>
* Allow any numeric scalar or vector type for the array element type for
  subgroupMatrixLoad and subgroupMatrixStore
* Update validation and transforms
  * generally needs to change to a more flexible scaling

Bug: 541591251
Change-Id: I02c144cbd60c9a9c3cb830acf57096bd6346cdd2
No-Presubmit: true
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/330777
Commit-Queue: Alan Baker <alanbaker@google.com>
Reviewed-by: James Price <jrprice@google.com>
SLSA-Policy-Verified: SLSA Policy Verification Service <devtools-gerritcodereview-exitgate@google.com>
Add a public WorkerTaskPool factory that creates Dawn's default implementation with a caller-provided maximum thread count. This lets embedders customize the pool size without depending on Dawn's internal AsyncWorkerThreadPool type.

Bug: 543243022

Change-Id: Ibe089afca674f7fc66527ccba8abbb49e8240812
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/330555
Commit-Queue: Shaobo Yan <shaoboyan@microsoft.com>
Reviewed-by: Shaobo Yan <shaoboyan@microsoft.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
https://chromium.googlesource.com/chromium/src/+log/fb50f3b4e9bc..20bffaab22c8

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/chromium-dawn
Please CC alanbaker@google.com,chrome-gpu-infra@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Chromium: https://issues.chromium.org/issues/new?component=1571065&template=0
To file a bug in Dawn: https://issues.chromium.org/issues/new?component=1571065&template=0

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

DEPS, submodule, and //infra/config changes generated by running:
  scripts/roll_chromium_deps.py --revision 20bffaab22c8db43221c66f85e517b4e5a8cea92 --verbose --autoroll --ignore-unclean-workdir

Repo entries:
  build: https://chromium.googlesource.com/chromium/src/build/+log/4ba10f20fa..5e79723def
  buildtools: https://chromium.googlesource.com/chromium/src/buildtools/+log/9e7655f4ee..bcbce0cf53
  chromium-luci (Starlark): https://chromium.googlesource.com/infra/chromium/+log/d381c78e62..8d5c215367
  testing: https://chromium.googlesource.com/chromium/src/testing/+log/3639073f9c..876dec8675
  third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/df548c50b2..dd67f5ca84
  third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/e1aeded56a..1d18f6e110
  third_party/chromium-tools-build/src: https://chromium.googlesource.com/chromium/tools/build/+log/2c8a0a0478..30c9a9a461
  third_party/libc++/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/b16984ce99..97b436da4c
  third_party/llvm-libc/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git/+log/f695341cf7..2d508139e7
  third_party/partition_alloc: https://chromium.googlesource.com/chromium/src/base/allocator/partition_allocator.git/+log/7d6a158416..03cc513177
  tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/f853d2d3ca..1adab79e4e

CIPD entries:
  buildtools/linux64
  buildtools/mac
  buildtools/win

No GCS entries changed in this roll

Explicitly synced GN variables:
  android_ndk_version: 2@30.0.15729638 -> 2@30.0.15729638

Bug: None
Tbr: alanbaker@google.com
Change-Id: Ia140914a3c378dcd645de91c0ed724b4bbb8d804
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/331675
Bot-Commit: dawn-autoroll@skia-public.iam.gserviceaccount.com <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: dawn-autoroll@skia-public.iam.gserviceaccount.com <dawn-autoroll@skia-public.iam.gserviceaccount.com>
…isions)

https://chromium.googlesource.com/external/github.com/microsoft/DirectXShaderCompiler.git/+log/758572136823..bc0a474927ed

2026-08-12 jackell@microsoft.com [HLSL] Add LinAlg descriptor load bounds-checking coverage (#8764)
2026-08-11 jackell@microsoft.com [HLSL] Pass a valid alignment from the LinAlg outer product test shader (#8761)
2026-08-11 alexsepkowski@gmail.com Scope vector test sizes for x86 WARP (#8763)
2026-08-11 jackell@microsoft.com [HLSL] Add LinAlg descriptor I/O offset, stride and layout coverage (#8762)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/directx-shader-compiler-dawn
Please CC alanbaker@google.com,webgpu-developers@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in DirectX Shader Compiler: https://github.com/microsoft/DirectXShaderCompiler/issues/new/choose
To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: alanbaker@google.com
Change-Id: Ia8771935ad343a2b01fdac6537873c350296c81d
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/331635
Commit-Queue: dawn-autoroll@skia-public.iam.gserviceaccount.com <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: dawn-autoroll@skia-public.iam.gserviceaccount.com <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Pass dynamic storage buffer lengths and offsets to shaders through the
immediate block instead of dedicated uniform buffers, so they no longer
consume uniform register space and match how other D3D12 pipeline
immediates are handled.

The lengths and offsets are stored as array<u32> in the immediate block,
so their compacted members only require 4-byte alignment and no longer
need reserved padding slots to reach a 16-byte boundary.

Bug: 366291600
Change-Id: Ic1589152a419b736749a840ce5e56ae8d184bad1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/321575
Commit-Queue: Shaobo Yan <shaoboyan@microsoft.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
This CL adds support for perfetto API in dawn and uses directly.
- Update DEPS and build config
- Update src/dawn/platform/tracing/TraceEvent.h to use perfetto trace macros directly, and add stubs for !DAWN_USE_PERFETTO
- Update perf_tests to export perfetto trace directly (instead
of manually write a json file) and use trace_processor to record
results.
- Rewrite callsites to fix perfetto macros (remove platform, and use string categories)

Bug: 542534250
Change-Id: If8e88d912e8249d79de7081505a24163cf293a48
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/329295
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Etienne Pierre-doray <etiennep@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Regenerated:
 - expectations.txt
 - compat-expectations.txt
 - ts_sources.txt
 - test_list.txt
 - resource_files.txt
 - webtest .html files


https://chromium.googlesource.com/external/github.com/gpuweb/cts/+log/319741d6ee30..535149e23e53
 - 535149 Add frag_depth qualifier execution test (#4689)

Created with './tools/run cts roll'

Cq-Include-Trybots: luci.chromium.try:android-dawn-arm-rel,android-dawn-arm64-rel,dawn-try-linux-x64-intel-uhd770-rel,dawn-try-mac-amd-exp,dawn-try-mac-arm64-m2-exp,dawn-try-mac-intel-exp,dawn-try-win-x64-intel-uhd770-rel,dawn-try-win10-x86-rel,linux-dawn-rel,mac-arm64-dawn-rel,mac-dawn-rel,win-dawn-rel
Include-Ci-Only-Tests: true
Change-Id: I45366fcf2770713ae4a1782c2e63ccfe4a07e849
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/331615
Commit-Queue: Alan Baker <alanbaker@google.com>
Bot-Commit: Dawn Automated Expectations <dawn-automated-expectations@chops-service-accounts.iam.gserviceaccount.com>
Reviewed-by: Alan Baker <alanbaker@google.com>
SwapChainD3D hardcoded DXGI_ALPHA_MODE_IGNORE even though PhysicalDeviceD3D
advertises Premultiplied as supported, so a surface configured for per-pixel
transparency was validated and then composited as opaque.

DXGI rejects a non-opaque alpha mode on CreateSwapChainForHwnd, so a
premultiplied HWND surface is created with CreateSwapChainForComposition and
bound to the window through a DirectComposition visual, whose lifetime follows
the swapchain across recycling. Recycling an existing swapchain now also
requires the alpha mode to be unchanged, since AlphaMode is fixed at creation
and a composition swapchain is not interchangeable with an HWND one.

Split out of the Vulkan alphaMode change so the Windows side can be reviewed
separately.
@d3x0r

d3x0r commented Aug 14, 2026

Copy link
Copy Markdown
Owner Author

Thanks for the earlier comments on the combined change - carrying them over as known follow-ups for this PR rather than pre-empting them: the code-history comment, break → if {} else {}, whether UsesComposition's HWND check is redundant with PhysicalDevice::GetSurfaceCapabilities (and whether the capability computation should move here so the logic is local), and caching the DComp device on DeviceD3D through per-backend virtual overrides so the right IUnknown is passed. I have not checked dcomp.lib availability for UWP yet.

Two notes on what's actually on the branch: it's based on current upstream/main (PR google#69 is still on the older base, and they touch disjoint files, so no interaction), and ManualSurfaceTest.cpp is deliberately absent — the note explaining the GLFW limitation belongs on top of the T key from google#69, so it should follow once that lands rather than duplicate approved work here.

@d3x0r d3x0r closed this Sep 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.