Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 2022497de7f199c23db76c643ad1935e183d28cc
      
https://github.com/WebKit/WebKit/commit/2022497de7f199c23db76c643ad1935e183d28cc
  Author: Mike Wyrzykowski <[email protected]>
  Date:   2022-12-21 (Wed, 21 Dec 2022)

  Changed paths:
    M Source/WebGPU/WebGPU.xcodeproj/project.pbxproj
    M Source/WebGPU/WebGPU/BindGroup.h
    M Source/WebGPU/WebGPU/BindGroup.mm
    A Source/WebGPU/WebGPU/BindableResource.h
    M Source/WebGPU/WebGPU/ComputePipeline.mm
    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.mm
    A 
Websites/webkit.org/demos/webgpu/indirect-command-buffer-textured-cube.html
    M Websites/webkit.org/demos/webgpu/scripts/hello-triangle-msaa.js
    A 
Websites/webkit.org/demos/webgpu/scripts/indirect-command-buffer-textured-cube.js
    M Websites/webkit.org/demos/webgpu/scripts/instanced-textured-cube.js

  Log Message:
  -----------
  [WebGPU] Implement RenderBundleEncoder which appears to be 
MTLIndirectCommandBuffer
https://bugs.webkit.org/show_bug.cgi?id=249257
<radar://103318351>

Reviewed by Dean Jackson.

Creation of the MTLIndirectCommandBuffer is deferred as we need to
tell Metal the maximum number of vertex and fragment buffers prior to creating 
the ICB,
along with the number of draw commands.

* Source/WebGPU/WebGPU.xcodeproj/project.pbxproj:
* Source/WebGPU/WebGPU/BindGroup.h:
(WebGPU::BindGroup::create):
(WebGPU::BindGroup::resources const):
* Source/WebGPU/WebGPU/BindGroup.mm:
(WebGPU::Device::createBindGroup):
(WebGPU::BindGroup::BindGroup):
Renamed struct moved to its own header.

* Source/WebGPU/WebGPU/BindableResource.h: Copied from 
Source/WebGPU/WebGPU/RenderBundle.mm.
Moved from BindGroup.h

* Source/WebGPU/WebGPU/RenderBundle.h:
(WebGPU::RenderBundle::create):
(WebGPU::RenderBundle::resources const):
* Source/WebGPU/WebGPU/RenderBundle.mm:
(WebGPU::RenderBundle::RenderBundle):
Cache the ICB and required resources.

* Source/WebGPU/WebGPU/RenderBundleEncoder.h:
(WebGPU::RenderBundleEncoder::create):
* Source/WebGPU/WebGPU/RenderBundleEncoder.mm:
(WebGPU::Device::createRenderBundleEncoder):
(WebGPU::RenderBundleEncoder::RenderBundleEncoder):
(WebGPU::RenderBundleEncoder::currentRenderCommand):
(WebGPU::RenderBundleEncoder::draw):
(WebGPU::RenderBundleEncoder::drawIndexed):
(WebGPU::RenderBundleEncoder::drawIndexedIndirect):
(WebGPU::RenderBundleEncoder::drawIndirect):
(WebGPU::RenderBundleEncoder::finish):
(WebGPU::RenderBundleEncoder::setBindGroup):
(WebGPU::RenderBundleEncoder::setIndexBuffer):
(WebGPU::RenderBundleEncoder::setPipeline):
(WebGPU::RenderBundleEncoder::setVertexBuffer):
Implement pipeline functions.

* Source/WebGPU/WebGPU/RenderPassEncoder.mm:
(WebGPU::RenderPassEncoder::executeBundles):
* Source/WebGPU/WebGPU/RenderPipeline.mm:
(WebGPU::Device::createRenderPipeline):
* Websites/webkit.org/demos/webgpu/indirect-command-buffer-textured-cube.html: 
Added.
* 
Websites/webkit.org/demos/webgpu/scripts/indirect-command-buffer-textured-cube.js:
 Added.
(async helloCube.frameUpdate):
(async helloCube):
Add ICB demo test.

* Websites/webkit.org/demos/webgpu/scripts/hello-triangle-msaa.js:
(async helloTriangle):
* Websites/webkit.org/demos/webgpu/scripts/instanced-textured-cube.js:
Miscellaneous test fixes observed running under the debug metal device.

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


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

Reply via email to