[webkit-changes] [WebKit/WebKit] f91524: [WebGPU] GPURenderBundleEncoder.drawIndirect and G...
mwyrzykowski
noreply at github.com
Mon Nov 6 22:36:10 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: f915246e31c3594167be28c244e9790100234ecc
https://github.com/WebKit/WebKit/commit/f915246e31c3594167be28c244e9790100234ecc
Author: Mike Wyrzykowski <mwyrzykowski at apple.com>
Date: 2023-11-06 (Mon, 06 Nov 2023)
Changed paths:
M LayoutTests/http/tests/webgpu/webgpu/api/operation/command_buffer/programmable/state_tracking-expected.txt
M LayoutTests/http/tests/webgpu/webgpu/api/operation/memory_sync/buffer/multiple_buffers-expected.txt
M LayoutTests/http/tests/webgpu/webgpu/api/operation/memory_sync/buffer/single_buffer-expected.txt
M LayoutTests/http/tests/webgpu/webgpu/api/operation/memory_sync/texture/same_subresource-expected.txt
M LayoutTests/platform/mac-wk2/TestExpectations
M Source/WebGPU/WebGPU/RenderBundle.h
M Source/WebGPU/WebGPU/RenderBundle.mm
M Source/WebGPU/WebGPU/RenderBundleEncoder.h
M Source/WebGPU/WebGPU/RenderBundleEncoder.mm
M Source/WebGPU/WebGPU/RenderPassEncoder.mm
Log Message:
-----------
[WebGPU] GPURenderBundleEncoder.drawIndirect and GPURenderBundleEncoder.drawIndexedIndirect have synchronization issues
https://bugs.webkit.org/show_bug.cgi?id=264213
<radar://117948947>
Reviewed by Dan Glastonbury.
RenderBundleEncoder supports drawIndirect and drawIndexedIndirect but
MTLIndirectRenderCommand does not. Initially this was implemented by directly
reading the contents property of the indirect buffer, however that has synchronization
issues if the buffer is encoded in a copyBufferToBuffer command or similar.
Eventually we would like to build the ICBs via a compute kernel, as noted in
https://bugs.webkit.org/show_bug.cgi?id=264219.
However, until https://bugs.webkit.org/show_bug.cgi?id=264219 is implemented we will
support RenderBundles via command replay to avoid the synchronization issues described.
This also allows all the memory_sync tests to pass, so enable them.
* LayoutTests/http/tests/webgpu/webgpu/api/operation/memory_sync/buffer/multiple_buffers-expected.txt:
* LayoutTests/http/tests/webgpu/webgpu/api/operation/memory_sync/buffer/single_buffer-expected.txt:
* LayoutTests/http/tests/webgpu/webgpu/api/operation/memory_sync/texture/same_subresource-expected.txt:
* LayoutTests/platform/mac-wk2/TestExpectations:
* Source/WebGPU/WebGPU/RenderBundleEncoder.mm:
(WebGPU::RenderBundleEncoder::addResource):
(WebGPU::RenderBundleEncoder::drawIndexedIndirect):
(WebGPU::RenderBundleEncoder::drawIndirect):
* LayoutTests/http/tests/webgpu/webgpu/api/operation/command_buffer/programmable/state_tracking-expected.txt:
Canonical link: https://commits.webkit.org/270311@main
More information about the webkit-changes
mailing list