vulkan: Split multi-layer buffer copies on Maleoon Huawei Maleoon drivers mis-stride multi-layer buffer<->image copies: in a single VkBufferImageCopy region with layerCount > 1 and a padded bufferImageHeight, only the first array layer / depth slice lands at the correct buffer offset; every later layer is read/written at the wrong offset and comes back corrupted. Add a VulkanSplitBufferTextureCopyForArrayLayers toggle that emits one copy region per layer, each with layerCount = 1 and an explicit per-layer buffer offset, so the driver never strides between layers itself. The toggle is enabled by default only on Maleoon and applies to both CopyBufferToTexture and CopyTextureToBuffer. Fixes the WebGPU CTS image_copy clusters on Mate60 / Maleoon 910: api,operation,command_buffer,image_copy:mip_levels:* api,operation,command_buffer,image_copy:rowsPerImage_and_bytesPerRow:* api,operation,command_buffer,image_copy:rowsPerImage_and_bytesPerRow_depth_stencil:* Bug: 520126486, 520126487 Change-Id: Ic913e3ca25c84169f9ff19d974e86ecf0b61f650 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/317116 Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Kai Ninomiya <kainino@chromium.org> Commit-Queue: Kai Ninomiya <kainino@chromium.org>
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.