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