vulkan: Fix descriptor set rebinding on push constant range change Per Vulkan spec, binding a pipeline with an incompatible push constant range invalidates all previously bound descriptor sets. The DescriptorSetTracker did not handle this: bind groups were incorrectly inherited, and the resource table was not rebound, causing stale descriptor sets and wrong hasResource() results. Fix: Dirty all bind groups when immediateConstantSize changes, and rebind the resource table whenever all descriptor sets are invalidated. Add end2end tests covering bind group and resource table rebinding across pipeline switches with different push constant ranges. Also simplify comments in ImmediateDataTests.cpp. Bug: 470014334 Change-Id: I4eb36bce14be1639a88ebccc81828d88b7d8599b Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/293955 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Shaobo Yan <shaoboyan@microsoft.com>
Dawn is an open-source and cross-platform implementation of the 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.h version that Dawn implements.webgpu.h.Helpful links:
Developer documentation:
User documentation: (TODO, figure out what overlaps with the webgpu.h docs)
BSD 3-Clause License, please see LICENSE.
This is not an officially supported Google product.