[webkit-changes] [WebKit/WebKit] c6450e: [WGSL] Don't modify the AST directly when rewritin...
Tadeu Zagallo
noreply at github.com
Tue Mar 21 03:09:23 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: c6450e38b6cede6d68c39146c196fd1f24438426
https://github.com/WebKit/WebKit/commit/c6450e38b6cede6d68c39146c196fd1f24438426
Author: Tadeu Zagallo <tzagallo at apple.com>
Date: 2023-03-21 (Tue, 21 Mar 2023)
Changed paths:
M Source/WebGPU/WGSL/AST/ASTCompoundStatement.h
M Source/WebGPU/WGSL/AST/ASTFunction.h
M Source/WebGPU/WGSL/AST/ASTParameter.h
M Source/WebGPU/WGSL/EntryPointRewriter.cpp
M Source/WebGPU/WGSL/GlobalVariableRewriter.cpp
M Source/WebGPU/WGSL/Parser.cpp
M Source/WebGPU/WGSL/ParserPrivate.h
M Source/WebGPU/WGSL/WGSLShaderModule.h
Log Message:
-----------
[WGSL] Don't modify the AST directly when rewriting entry points
https://bugs.webkit.org/show_bug.cgi?id=254022
rdar://106807949
Reviewed by Myles C. Maxfield.
This is part of the refactoring to stop modifying the AST directly, in order to be
able to reuse the AST across multiple compilations. Instead of directly modifying
the entry point function in `EntryPointRewriter` we add 3 new helpers to the shader
module to keep track of modifications made to vectors of nodes. The unfortunate
constraint is that nodes must be copyable in order to manipulated, so we change
parameters to be Refs instead of UniqueRefs (since the latter can't by definition
be copied).
* Source/WebGPU/WGSL/AST/ASTCompoundStatement.h:
* Source/WebGPU/WGSL/AST/ASTFunction.h:
* Source/WebGPU/WGSL/AST/ASTParameter.h:
* Source/WebGPU/WGSL/EntryPointRewriter.cpp:
(WGSL::EntryPointRewriter::EntryPointRewriter):
(WGSL::EntryPointRewriter::rewrite):
(WGSL::EntryPointRewriter::collectParameters):
(WGSL::EntryPointRewriter::constructInputStruct):
(WGSL::EntryPointRewriter::appendBuiltins):
* Source/WebGPU/WGSL/GlobalVariableRewriter.cpp:
(WGSL::RewriteGlobalVariables::insertParameters):
* Source/WebGPU/WGSL/Parser.cpp:
(WGSL::Parser<Lexer>::parseFunction):
(WGSL::Parser<Lexer>::parseParameter):
* Source/WebGPU/WGSL/ParserPrivate.h:
* Source/WebGPU/WGSL/WGSLShaderModule.h:
(WGSL::ShaderModule::replace):
(WGSL::ShaderModule::takeLast):
(WGSL::ShaderModule::append):
(WGSL::ShaderModule::insert):
Canonical link: https://commits.webkit.org/261913@main
More information about the webkit-changes
mailing list