[Webkit-unassigned] [Bug 199087] New: [WHLSL] Attempting to compile an entry point that uses a struct argument to reference resource bindings crashes MSL generator

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Jun 20 16:07:07 PDT 2019


https://bugs.webkit.org/show_bug.cgi?id=199087

            Bug ID: 199087
           Summary: [WHLSL] Attempting to compile an entry point that uses
                    a struct argument to reference resource bindings
                    crashes MSL generator
           Product: WebKit
           Version: Other
          Hardware: Unspecified
                OS: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: WebGPU
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: justin_fan at apple.com

This WHLSL code:

struct Args {
    device int[] result : register(u0);
}

[numthreads(1, 1, 1)]
compute void _compute_main(Args args)
{
    args.result[0] = 42;
}

causes the below crash in the MSL generator.


#0      0x00000004d9e7f555 in std::__1::unique_ptr<WebCore::WHLSL::Metal::BaseTypeNameNode, std::__1::default_delete<WebCore::WHLSL::Metal::BaseTypeNameNode> >::operator bool() const at /Volumes/Xcode11M326j_m18A391011_m19A489_i17A510_t17J503_w17R509_b17P484_FastSim_Boost_42GB/Xcode.app/Contents/Developer/Toolchains/OSX10.15.xctoolchain/usr/include/c++/v1/memory:2637
#1      0x00000004d9e672cd in WTF::UniqueRef<WebCore::WHLSL::Metal::BaseTypeNameNode>::operator WebCore::WHLSL::Metal::BaseTypeNameNode&() at /Volumes/Data/Projects/WebKit/OpenSource/WebKitBuild/Debug/usr/local/include/wtf/UniqueRef.h:60
#2      0x00000004d9e64640 in WebCore::WHLSL::Metal::find(WebCore::WHLSL::AST::UnnamedType&, WTF::Vector<WTF::UniqueRef<WebCore::WHLSL::Metal::BaseTypeNameNode>, 0ul, WTF::CrashOnOverflow, 16ul>&) at /Volumes/Data/Projects/WebKit/OpenSource/Source/WebCore/Modules/webgpu/WHLSL/Metal/WHLSLTypeNamer.cpp:208
#3      0x00000004d9e67012 in WebCore::WHLSL::Metal::TypeNamer::mangledNameForType(WebCore::WHLSL::AST::UnnamedType&) at /Volumes/Data/Projects/WebKit/OpenSource/Source/WebCore/Modules/webgpu/WHLSL/Metal/WHLSLTypeNamer.cpp:457
#4      0x00000004d9e1c567 in WebCore::WHLSL::Metal::FunctionDeclarationWriter::visit(WebCore::WHLSL::AST::FunctionDeclaration&) at /Volumes/Data/Projects/WebKit/OpenSource/Source/WebCore/Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp:74
#5      0x00000004d9e29ca7 in WebCore::WHLSL::Metal::sharedMetalFunctions(WebCore::WHLSL::Program&, WebCore::WHLSL::Metal::TypeNamer&) at /Volumes/Data/Projects/WebKit/OpenSource/Source/WebCore/Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp:778
#6      0x00000004d9e29f80 in WebCore::WHLSL::Metal::metalFunctions(WebCore::WHLSL::Program&, WebCore::WHLSL::Metal::TypeNamer&, WebCore::WHLSL::MatchedComputeSemantics&&, WTF::Vector<WebCore::WHLSL::BindGroup, 0ul, WTF::CrashOnOverflow, 16ul>&) at /Volumes/Data/Projects/WebKit/OpenSource/Source/WebCore/Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp:816
#7      0x00000004d9e2a613 in WebCore::WHLSL::Metal::generateMetalCode(WebCore::WHLSL::Program&, WebCore::WHLSL::MatchedComputeSemantics&&, WTF::Vector<WebCore::WHLSL::BindGroup, 0ul, WTF::CrashOnOverflow, 16ul>&) at /Volumes/Data/Projects/WebKit/OpenSource/Source/WebCore/Modules/webgpu/WHLSL/Metal/WHLSLMetalCodeGenerator.cpp:81
#8      0x00000004d9d919b9 in WebCore::WHLSL::prepare(WTF::String&, WebCore::WHLSL::ComputePipelineDescriptor&) at /Volumes/Data/Projects/WebKit/OpenSource/Source/WebCore/Modules/webgpu/WHLSL/WHLSLPrepare.cpp:186
#9      0x00000004d87ede1e in WebCore::trySetFunctions(char const*, WebCore::GPUPipelineStageDescriptor const&, WebCore::GPUDevice const&, MTLComputePipelineDescriptor*, WTF::Optional<WebCore::WHLSL::ComputePipelineDescriptor>&) at /Volumes/Data/Projects/WebKit/OpenSource/Source/WebCore/platform/graphics/gpu/cocoa/GPUComputePipelineMetal.mm:85
#10     0x00000004d87ed2ba in WebCore::convertComputePipelineDescriptor(char const*, WebCore::GPUComputePipelineDescriptor const&, WebCore::GPUDevice const&) at /Volumes/Data/Projects/WebKit/OpenSource/Source/WebCore/platform/graphics/gpu/cocoa/GPUComputePipelineMetal.mm:149
#11     0x00000004d87e6af3 in WebCore::tryCreateMTLComputePipelineState(char const*, WebCore::GPUDevice const&, WebCore::GPUComputePipelineDescriptor const&) at /Volumes/Data/Projects/WebKit/OpenSource/Source/WebCore/platform/graphics/gpu/cocoa/GPUComputePipelineMetal.mm:166
#12     0x00000004d87e68ff in WebCore::GPUComputePipeline::tryCreate(WebCore::GPUDevice const&, WebCore::GPUComputePipelineDescriptor const&) at /Volumes/Data/Projects/WebKit/OpenSource/Source/WebCore/platform/graphics/gpu/cocoa/GPUComputePipelineMetal.mm:192

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20190620/a7c81137/attachment-0001.html>


More information about the webkit-unassigned mailing list