Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 17f80e19eb23c6d2878e2dacbb67a5f3cf4a42f0
      
https://github.com/WebKit/WebKit/commit/17f80e19eb23c6d2878e2dacbb67a5f3cf4a42f0
  Author: Mike Wyrzykowski <[email protected]>
  Date:   2023-10-26 (Thu, 26 Oct 2023)

  Changed paths:
    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
    M Source/WebGPU/WebGPU/RenderPipeline.h

  Log Message:
  -----------
  [WebGPU] A RenderBundle with several calls to setPipeline may not be built 
correctly
https://bugs.webkit.org/show_bug.cgi?id=263099
<radar://116893300>

Reviewed by Dan Glastonbury.

In WebGPU, the render pipeline state also constains depth stencil state,
cull mode, front facing, etc, but this is not possible to set on the ICB
commands.

So if a render bundle is encoding with varying state which can not be
encoded into the ICB, then we need to create several ICBs.

* Source/WebGPU/WebGPU/RenderBundle.h:
(WebGPU::RenderBundle::create):
(WebGPU::RenderBundle::isValid const):
(WebGPU::RenderBundle:: const):
(WebGPU::RenderBundle::indirectCommandBuffer const): Deleted.
(WebGPU::RenderBundle::resources const): Deleted.
(): Deleted.
* Source/WebGPU/WebGPU/RenderBundle.mm:
(WebGPU::RenderBundle::RenderBundle):
(WebGPU::RenderBundle::setLabel):
(WebGPU::RenderBundle::currentPipelineState const): Deleted.
(WebGPU::RenderBundle::depthStencilState const): Deleted.
(WebGPU::RenderBundle::cullMode const): Deleted.
(WebGPU::RenderBundle::frontFace const): Deleted.
(WebGPU::RenderBundle::depthClipMode const): Deleted.
* Source/WebGPU/WebGPU/RenderBundleEncoder.h:
* Source/WebGPU/WebGPU/RenderBundleEncoder.mm:
(-[RenderBundleICBWithResources 
initWithICB:pipelineState:depthStencilState:cullMode:frontFace:depthClipMode:]):
(-[RenderBundleICBWithResources resources]):
(WebGPU::makeRenderBundleICBWithResources):
(WebGPU::Device::createRenderBundleEncoder):
(WebGPU::RenderBundleEncoder::RenderBundleEncoder):
(WebGPU::RenderBundleEncoder::executePreDrawCommands):
(WebGPU::RenderBundleEncoder::draw):
(WebGPU::RenderBundleEncoder::drawIndexed):
(WebGPU::RenderBundleEncoder::drawIndexedIndirect):
(WebGPU::RenderBundleEncoder::drawIndirect):
(WebGPU::RenderBundleEncoder::endCurrentICB):
(WebGPU::RenderBundleEncoder::finish):
(WebGPU::RenderBundleEncoder::setBindGroup):
(WebGPU::RenderBundleEncoder::setIndexBuffer):
(WebGPU::icbNeedsToBeSplit):
(WebGPU::RenderBundleEncoder::setPipeline):
(WebGPU::RenderBundleEncoder::setVertexBuffer):
* Source/WebGPU/WebGPU/RenderPassEncoder.mm:
(WebGPU::RenderPassEncoder::executeBundles):
* Source/WebGPU/WebGPU/RenderPipeline.h:
(WebGPU::RenderPipeline::depthStencilDescriptor const):

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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to