[webkit-changes] [WebKit/WebKit] 799058: [WGSL] Buffer dynamic offsets are not implemented

Tadeu Zagallo noreply at github.com
Tue Oct 17 11:30:30 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7990584a04b5ad76b25788656433ac5693c4db7c
      https://github.com/WebKit/WebKit/commit/7990584a04b5ad76b25788656433ac5693c4db7c
  Author: Tadeu Zagallo <tzagallo at apple.com>
  Date:   2023-10-17 (Tue, 17 Oct 2023)

  Changed paths:
    M Source/WebGPU/WGSL/API.h
    M Source/WebGPU/WGSL/GlobalVariableRewriter.cpp
    M Source/WebGPU/WGSL/Metal/MetalFunctionWriter.cpp
    M Source/WebGPU/WebGPU/ComputePassEncoder.mm
    M Source/WebGPU/WebGPU/RenderPassEncoder.mm

  Log Message:
  -----------
  [WGSL] Buffer dynamic offsets are not implemented
https://bugs.webkit.org/show_bug.cgi?id=262135
rdar://116073820

Reviewed by Mike Wyrzykowski.

Add support for dynamic offsets. The implementation is rather simple, since we
materialize all the globals at the begining of each entry point, we just apply
the offset during as part of the materialization and the rest of the program
remains unchanged.

* Source/WebGPU/WGSL/API.h:
(WGSL::vertexBufferIndexForBindGroup):
* Source/WebGPU/WGSL/GlobalVariableRewriter.cpp:
(WGSL::RewriteGlobalVariables::getPacking):
(WGSL::RewriteGlobalVariables::visitEntryPoint):
(WGSL::RewriteGlobalVariables::collectDynamicOffsetGlobals):
(WGSL::RewriteGlobalVariables::insertParameters):
(WGSL::RewriteGlobalVariables::insertMaterializations):
(WGSL::RewriteGlobalVariables::readVariable):
(WGSL::RewriteGlobalVariables::dynamicOffsetVariableName):
* Source/WebGPU/WGSL/Metal/MetalFunctionWriter.cpp:
(WGSL::Metal::serializeAddressSpace):
(WGSL::Metal::FunctionDefinitionWriter::visit):
(WGSL::Metal::emitDynamicOffset):
* Source/WebGPU/WebGPU/ComputePassEncoder.mm:
(WebGPU::ComputePassEncoder::executePreDispatchCommands):
* Source/WebGPU/WebGPU/RenderPassEncoder.mm:
(WebGPU::RenderPassEncoder::executePreDrawCommands):

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




More information about the webkit-changes mailing list