Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 8f1919db1fce2079da646cf3a1cc11d50449fcde
      
https://github.com/WebKit/WebKit/commit/8f1919db1fce2079da646cf3a1cc11d50449fcde
  Author: Mike Wyrzykowski <mwyrzykow...@apple.com>
  Date:   2025-03-10 (Mon, 10 Mar 2025)

  Changed paths:
    M Source/WebGPU/WebGPU/Buffer.mm
    M Source/WebGPU/WebGPU/Device.h
    M Source/WebGPU/WebGPU/Device.mm
    M Source/WebGPU/WebGPU/RenderPassEncoder.mm

  Log Message:
  -----------
  [WebGPU] Memory barriers in vertex shader validation routines are problematic 
on M1
https://bugs.webkit.org/show_bug.cgi?id=289147
rdar://146219177

Reviewed by Tadeu Zagallo.

We were using memory barriers with a single temporary indirect buffer
shared across multiple draw calls. This seemed to work fine on M2 Macs
but results with some command buffer errors on M1 macs (error code = Internal 
Error).

It appears due to having the barrier on the same indirect buffer many times in 
a single
render pass encoder.

We can resolve this by replacing the setBytes call with a temporary buffer and 
use that buffer
instead of the single shared buffer we had previously been using. This will 
result in very
little or possibly reduced memory usage since now we don't need to create an 
indirect
buffer (in addition to the temporary one) for Index buffers.

* Source/WebGPU/WebGPU/Device.h:
(WebGPU::Device::safeCreateBufferWithData const):
Add helper to create a buffer from byte data. Internally
the data is copied at the call site so we don't need to worry
about its lifetime.

* Source/WebGPU/WebGPU/Device.mm:
(WebGPU::Device::copyIndexIndirectArgsPipeline): Deleted.
Remove unused code.

* Source/WebGPU/WebGPU/RenderPassEncoder.mm:
(WebGPU::RenderPassEncoder::clampIndexBufferToValidValues):
Use a temporary buffer instead of the setBytes: call.

* Source/WebGPU/WebGPU/Buffer.mm:
(WebGPU::Buffer::Buffer):
We no longer need to create this persistent secondary indirect buffer
for index buffers, only ones which are (also) indirect.

Canonical link: https://commits.webkit.org/291897@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to