Bug 223923 - Crash in webgl/2.0.y/conformance/glsl/misc/uninitialized-local-global-variables.html ANGLE+METAL
Summary: Crash in webgl/2.0.y/conformance/glsl/misc/uninitialized-local-global-variab...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: ANGLE (show other bugs)
Version: WebKit Local Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Kyle Piddington
URL:
Keywords: InRadar
Depends on:
Blocks: anglemetal
  Show dependency treegraph
 
Reported: 2021-03-30 04:42 PDT by Kimmo Kinnunen
Modified: 2021-06-29 03:40 PDT (History)
7 users (show)

See Also:


Attachments
Patch (8.35 KB, patch)
2021-03-31 15:57 PDT, Kyle Piddington
no flags Details | Formatted Diff | Diff
Patch (11.32 KB, patch)
2021-04-09 18:01 PDT, Kyle Piddington
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Kimmo Kinnunen 2021-03-30 04:42:40 PDT
Process:               com.apple.WebKit.WebContent.Development [85074]
Path:                  /Users/USER/*/com.apple.WebKit.WebContent.Development
Identifier:            com.apple.WebKit.WebContent.Development
Version:               612+ (612.1.9+)
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
User ID:               501

Date/Time:             2021-03-30 14:15:23.854 +0300
OS Version:            macOS 11.3 (20E201)
Report Version:        12
Bridge OS Version:     5.3 (18P4544)
Anonymous UUID:        ADEB2724-109F-6379-8A4B-657A6A37BBA8

Sleep/Wake UUID:       D48EB9D4-6C73-426F-AF12-26DC79BB8DC1

Time Awake Since Boot: 110000 seconds
Time Since Wake:       5200 seconds

System Integrity Protection: enabled

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_INSTRUCTION (SIGILL)
Exception Codes:       0x0000000000000001, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Signal:    Illegal instruction: 4
Termination Reason:    Namespace SIGNAL, Code 0x4
Terminating Process:   exc handler [85074]

Application Specific Information:
CRASHING TEST: webgl/2.0.y/conformance/glsl/misc/uninitialized-local-global-variables.html

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libANGLE-shared.dylib         	0x000000028db411de gl::LogMessage::~LogMessage() + 238 (debug.cpp:199)
1   libANGLE-shared.dylib         	0x000000028db40ab5 gl::LogMessage::~LogMessage() + 21 (debug.cpp:175)
2   libANGLE-shared.dylib         	0x000000028df024a2 sh::Name::emit(sh::TInfoSinkBase&) const + 1122 (Name.cpp:94)
3   libANGLE-shared.dylib         	0x000000028dbccfcd EmitName(sh::DebugSink&, sh::Name const&) + 61 (EmitMetal.cpp:989)
4   libANGLE-shared.dylib         	0x000000028dbcca66 (anonymous namespace)::GenMetalTraverser::emitNameOf(sh::TSymbol const&) + 150 (EmitMetal.cpp:1002)
5   libANGLE-shared.dylib         	0x000000028dbce420 (anonymous namespace)::GenMetalTraverser::emitBareTypeName(sh::TType const&, (anonymous namespace)::GenMetalTraverser::EmitTypeConfig const&) + 224 (EmitMetal.cpp:1041)
6   libANGLE-shared.dylib         	0x000000028dbd3121 (anonymous namespace)::GenMetalTraverser::emitStructDeclaration(sh::TType const&) + 673 (EmitMetal.cpp:1334)
7   libANGLE-shared.dylib         	0x000000028dbd27b4 (anonymous namespace)::GenMetalTraverser::emitVariableDeclaration((anonymous namespace)::VarDecl const&, (anonymous namespace)::GenMetalTraverser::EmitVariableDeclarationConfig const&) + 420 (EmitMetal.cpp:1437)
8   libANGLE-shared.dylib         	0x000000028dbc9965 (anonymous namespace)::GenMetalTraverser::visitDeclaration(sh::Visit, sh::TIntermDeclaration*) + 453 (EmitMetal.cpp:2364)
9   libANGLE-shared.dylib         	0x000000028de21a6a sh::TIntermDeclaration::visit(sh::Visit, sh::TIntermTraverser*) + 42 (IntermTraverse.cpp:166)
10  libANGLE-shared.dylib         	0x000000028de2140a void sh::TIntermTraverser::traverse<sh::TIntermNode>(sh::TIntermNode*) + 106 (IntermTraverse.cpp:32)
11  libANGLE-shared.dylib         	0x000000028de215ad sh::TIntermNode::traverse(sh::TIntermTraverser*) + 29 (IntermTraverse.cpp:60)
12  libANGLE-shared.dylib         	0x000000028dbc9317 (anonymous namespace)::GenMetalTraverser::visitBlock(sh::Visit, sh::TIntermBlock*) + 775 (EmitMetal.cpp:2318)
13  libANGLE-shared.dylib         	0x000000028de21ae7 sh::TIntermBlock::visit(sh::Visit, sh::TIntermTraverser*) + 39 (IntermTraverse.cpp:176)
14  libANGLE-shared.dylib         	0x000000028de23a4a sh::TIntermTraverser::traverseBlock(sh::TIntermBlock*) + 138 (IntermTraverse.cpp:457)
15  libANGLE-shared.dylib         	0x000000028de21764 sh::TIntermBlock::traverse(sh::TIntermTraverser*) + 36 (IntermTraverse.cpp:98)
16  libANGLE-shared.dylib         	0x000000028dbc85e0 (anonymous namespace)::GenMetalTraverser::visitFunctionDefinition(sh::Visit, sh::TIntermFunctionDefinition*) + 208 (EmitMetal.cpp:2001)
17  libANGLE-shared.dylib         	0x000000028de218e7 sh::TIntermFunctionDefinition::visit(sh::Visit, sh::TIntermTraverser*) + 39 (IntermTraverse.cpp:136)
18  libANGLE-shared.dylib         	0x000000028de238f9 sh::TIntermTraverser::traverseFunctionDefinition(sh::TIntermFunctionDefinition*) + 105 (IntermTraverse.cpp:424)
19  libANGLE-shared.dylib         	0x000000028de21734 sh::TIntermFunctionDefinition::traverse(sh::TIntermTraverser*) + 36 (IntermTraverse.cpp:93)
20  libANGLE-shared.dylib         	0x000000028dbc9317 (anonymous namespace)::GenMetalTraverser::visitBlock(sh::Visit, sh::TIntermBlock*) + 775 (EmitMetal.cpp:2318)
21  libANGLE-shared.dylib         	0x000000028de21ae7 sh::TIntermBlock::visit(sh::Visit, sh::TIntermTraverser*) + 39 (IntermTraverse.cpp:176)
22  libANGLE-shared.dylib         	0x000000028de23a4a sh::TIntermTraverser::traverseBlock(sh::TIntermBlock*) + 138 (IntermTraverse.cpp:457)
23  libANGLE-shared.dylib         	0x000000028de21764 sh::TIntermBlock::traverse(sh::TIntermTraverser*) + 36 (IntermTraverse.cpp:98)
24  libANGLE-shared.dylib         	0x000000028dbc58b2 sh::EmitMetal(sh::TCompiler&, sh::TIntermBlock&, sh::IdGen&, sh::PipelineStructs const&, sh::Invariants const&, sh::SymbolEnv&, sh::ProgramPreludeConfig const&) + 1026 (EmitMetal.cpp:2636)
25  libANGLE-shared.dylib         	0x000000028e22ffc8 sh::TranslatorMetalDirect::translateImpl(sh::TIntermBlock&, unsigned long long) + 6472 (TranslatorMetalDirect.cpp:1502)
26  libANGLE-shared.dylib         	0x000000028e232c0c sh::TranslatorMetalDirect::translate(sh::TIntermBlock*, unsigned long long, sh::PerformanceDiagnostics*) + 316 (TranslatorMetalDirect.cpp:1552)
27  libANGLE-shared.dylib         	0x000000028da70efe sh::TCompiler::compile(char const* const*, unsigned long, unsigned long long) + 286 (Compiler.cpp:981)
28  libANGLE-shared.dylib         	0x000000028e1492a4 sh::Compile(void*, char const* const*, unsigned long, unsigned long long) + 340 (ShaderLang.cpp:336)
29  libANGLE-shared.dylib         	0x000000028e14716a rx::TranslateTask::operator()() + 266 (ShaderImpl.cpp:52)
30  libANGLE-shared.dylib         	0x000000028e2f4f3f angle::SingleThreadedWorkerPool::postWorkerTask(std::__1::shared_ptr<angle::Closure>) + 47 (WorkerThread.cpp:68)
31  libANGLE-shared.dylib         	0x000000028e2f62a4 angle::WorkerThreadPool::PostWorkerTask(std::__1::shared_ptr<angle::WorkerThreadPool>, std::__1::shared_ptr<angle::Closure>) + 84 (WorkerThread.cpp:348)
32  libANGLE-shared.dylib         	0x000000028e14c5c7 rx::ShaderMtl::compileImplMtl(gl::Context const*, gl::ShCompilerInstance*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, unsigned long long) + 263 (ShaderMtl.mm:97)
33  libANGLE-shared.dylib         	0x000000028e14ca70 rx::ShaderMtl::compile(gl::Context const*, gl::ShCompilerInstance*, unsigned long long) + 464 (ShaderMtl.mm:140)
34  libANGLE-shared.dylib         	0x000000028e12ea3f gl::Shader::compile(gl::Context const*) + 1663 (Shader.cpp:367)
35  libANGLE-shared.dylib         	0x000000028daaec19 gl::Context::compileShader(gl::ShaderProgramID) + 73 (Context.cpp:6183)
36  libANGLE-shared.dylib         	0x000000028dc03a96 gl::CompileShader(unsigned int) + 134 (entry_points_gles_2_0_autogen.cpp:541)
37  com.apple.WebCore             	0x0000000268d64794 WebCore::GraphicsContextGLOpenGL::compileShader(unsigned int) + 148 (GraphicsContextGLANGLE.cpp:917)
38  com.apple.WebCore             	0x000000026c0682de WebCore::WebGLRenderingContextBase::compileShader(WebCore::WebGLShader&) + 126 (WebGLRenderingContextBase.cpp:1752)
39  com.apple.WebCore             	0x000000026a2034d2 WebCore::jsWebGL2RenderingContextPrototypeFunction_compileShaderBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSWebGL2RenderingContext*)::'lambda'()::operator()() const + 34 (JSWebGL2RenderingContext.cpp:9387)
40  com.apple.WebCore             	0x000000026a20333d JSC::JSValue WebCore::toJS<WebCore::IDLUndefined, WebCore::jsWebGL2RenderingContextPrototypeFunction_compileShaderBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSWebGL2RenderingContext*)::'lambda'()>(JSC::JSGlobalObject&, JSC::ThrowScope&, WebCore::jsWebGL2RenderingContextPrototypeFunction_compileShaderBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSWebGL2RenderingContext*)::'lambda'()&&) + 29 (JSDOMConvertBase.h:165)
41  com.apple.WebCore             	0x000000026a20325c WebCore::jsWebGL2RenderingContextPrototypeFunction_compileShaderBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSWebGL2RenderingContext*) + 812 (JSWebGL2RenderingContext.cpp:9387)
42  com.apple.WebCore             	0x000000026a202efc long long WebCore::IDLOperation<WebCore::JSWebGL2RenderingContext>::call<&(WebCore::jsWebGL2RenderingContextPrototypeFunction_compileShaderBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSWebGL2RenderingContext*)), (WebCore::CastedThisErrorBehavior)0>(JSC::JSGlobalObject&, JSC::CallFrame&, char const*) + 700 (JSDOMOperation.h:55)
43  com.apple.WebCore             	0x000000026a16a4a4 WebCore::jsWebGL2RenderingContextPrototypeFunction_compileShader(JSC::JSGlobalObject*, JSC::CallFrame*) + 36 (JSWebGL2RenderingContext.cpp:9392)
44  ???                           	0x00002169612011d8 0 + 36736484774360
45  com.apple.JavaScriptCore      	0x000000028677799d llint_entry + 138395 (LowLevelInterpreter.asm:1093)
46  com.apple.JavaScriptCore      	0x000000028677799d llint_entry + 138395 (LowLevelInterpreter.asm:1093)
47  com.apple.JavaScriptCore      	0x000000028677799d llint_entry + 138395 (LowLevelInterpreter.asm:1093)
48  com.apple.JavaScriptCore      	0x0000000286777a45 llint_entry + 138563 (LowLevelInterpreter.asm:1093)
49  com.apple.JavaScriptCore      	0x0000000286755a10 vmEntryToJavaScript + 289 (LowLevelInterpreter64.asm:316)
50  com.apple.JavaScriptCore      	0x0000000287618e3b JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 235 (JITCodeInlines.h:42)
51  com.apple.JavaScriptCore      	0x0000000287618398 JSC::Interpreter::executeProgram(JSC::SourceCode const&, JSC::JSGlobalObject*, JSC::JSObject*) + 6600 (Interpreter.cpp:839)
52  com.apple.JavaScriptCore      	0x00000002879f6b17 JSC::evaluate(JSC::JSGlobalObject*, JSC::SourceCode const&, JSC::JSValue, WTF::NakedPtr<JSC::Exception>&) + 567 (Completion.cpp:137)
53  com.apple.JavaScriptCore      	0x00000002879f6c6a JSC::profiledEvaluate(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::SourceCode const&, JSC::JSValue, WTF::NakedPtr<JSC::Exception>&) + 74 (Completion.cpp:152)
54  com.apple.WebCore             	0x000000026b3e5ebc WebCore::JSExecState::profiledEvaluate(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::SourceCode const&, JSC::JSValue, WTF::NakedPtr<JSC::Exception>&) + 76 (JSExecState.h:79)
55  com.apple.WebCore             	0x000000026b3e5a9e WebCore::ScriptController::evaluateInWorld(WebCore::ScriptSourceCode const&, WebCore::DOMWrapperWorld&) + 398 (ScriptController.cpp:148)
56  com.apple.WebCore             	0x000000026b3e58c9 WebCore::ScriptController::evaluateInWorldIgnoringException(WebCore::ScriptSourceCode const&, WebCore::DOMWrapperWorld&) + 41 (ScriptController.cpp:121)
57  com.apple.WebCore             	0x000000026b3e61c5 WebCore::ScriptController::evaluateIgnoringException(WebCore::ScriptSourceCode const&) + 53 (ScriptController.cpp:167)
58  com.apple.WebCore             	0x000000026bb42b76 WebCore::ScriptElement::executeClassicScript(WebCore::ScriptSourceCode const&) + 1478 (ScriptElement.cpp:405)
59  com.apple.WebCore             	0x000000026bb40b8b WebCore::ScriptElement::prepareScript(WTF::TextPosition const&, WebCore::ScriptElement::LegacyTypeSupport) + 2699 (ScriptElement.cpp:271)
60  com.apple.WebCore             	0x000000026c0d5c76 WebCore::HTMLScriptRunner::runScript(WebCore::ScriptElement&, WTF::TextPosition const&) + 390 (HTMLScriptRunner.cpp:250)
61  com.apple.WebCore             	0x000000026c0d5a77 WebCore::HTMLScriptRunner::execute(WTF::Ref<WebCore::ScriptElement, WTF::RawPtrTraits<WebCore::ScriptElement> >&&, WTF::TextPosition const&) + 71 (HTMLScriptRunner.cpp:140)
62  com.apple.WebCore             	0x000000026c0b4181 WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder() + 897 (HTMLDocumentParser.cpp:244)
63  com.apple.WebCore             	0x000000026c0b4605 WebCore::HTMLDocumentParser::pumpTokenizerLoop(WebCore::HTMLDocumentParser::SynchronousMode, bool, WebCore::PumpSession&) + 133 (HTMLDocumentParser.cpp:263)
64  com.apple.WebCore             	0x000000026c0b397f WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode) + 495 (HTMLDocumentParser.cpp:322)
65  com.apple.WebCore             	0x000000026c0b3116 WebCore::HTMLDocumentParser::pumpTokenizerIfPossible(WebCore::HTMLDocumentParser::SynchronousMode) + 198 (HTMLDocumentParser.cpp:196)
66  com.apple.WebCore             	0x000000026c0b53b4 WebCore::HTMLDocumentParser::append(WTF::RefPtr<WTF::StringImpl, WTF::RawPtrTraits<WTF::StringImpl>, WTF::DefaultRefDerefTraits<WTF::StringImpl> >&&) + 548 (HTMLDocumentParser.cpp:437)
67  com.apple.WebCore             	0x000000026b9449e6 WebCore::DecodedDataDocumentParser::appendBytes(WebCore::DocumentWriter&, char const*, unsigned long) + 150 (DecodedDataDocumentParser.cpp:50)
68  com.apple.WebCore             	0x000000026c50114d WebCore::DocumentWriter::addData(char const*, unsigned long) + 365 (DocumentWriter.cpp:263)
69  com.apple.WebCore             	0x000000026c4b37ae WebCore::DocumentLoader::commitData(char const*, unsigned long) + 2414 (DocumentLoader.cpp:1235)
70  com.apple.WebKit              	0x0000000259e780c2 WebKit::WebFrameLoaderClient::committedLoad(WebCore::DocumentLoader*, char const*, int) + 82 (WebFrameLoaderClient.cpp:1147)
71  com.apple.WebCore             	0x000000026c4b9ca1 WebCore::DocumentLoader::commitLoad(char const*, int) + 209 (DocumentLoader.cpp:1117)
72  com.apple.WebCore             	0x000000026c4b9bc8 WebCore::DocumentLoader::dataReceived(char const*, int) + 568 (DocumentLoader.cpp:1268)
73  com.apple.WebCore             	0x000000026c4ba578 WebCore::DocumentLoader::dataReceived(WebCore::CachedResource&, char const*, int) + 152 (DocumentLoader.cpp:1241)
74  com.apple.WebCore             	0x000000026c63459e WebCore::CachedRawResource::notifyClientsDataWasReceived(char const*, unsigned int) + 142 (CachedRawResource.cpp:139)
75  com.apple.WebCore             	0x000000026c6343a5 WebCore::CachedRawResource::updateBuffer(WebCore::SharedBuffer&) + 357 (CachedRawResource.cpp:76)
76  com.apple.WebCore             	0x000000026c5be6ff WebCore::SubresourceLoader::didReceiveDataOrBuffer(char const*, int, WTF::RefPtr<WebCore::SharedBuffer, WTF::RawPtrTraits<WebCore::SharedBuffer>, WTF::DefaultRefDerefTraits<WebCore::SharedBuffer> >&&, long long, WebCore::DataPayloadType) + 671 (SubresourceLoader.cpp:537)
77  com.apple.WebCore             	0x000000026c5be451 WebCore::SubresourceLoader::didReceiveData(char const*, unsigned int, long long, WebCore::DataPayloadType) + 97 (SubresourceLoader.cpp:505)
78  com.apple.WebKit              	0x0000000259d7d2ba WebKit::WebResourceLoader::didReceiveData(IPC::ArrayReference<unsigned char, 18446744073709551615ul> const&, long long) + 1018 (WebResourceLoader.cpp:210)
79  com.apple.WebKit              	0x000000025a378d09 void IPC::callMemberFunctionImpl<WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(IPC::ArrayReference<unsigned char, 18446744073709551615ul> const&, long long), std::__1::tuple<IPC::ArrayReference<unsigned char, 18446744073709551615ul>, long long>, 0ul, 1ul>(WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(IPC::ArrayReference<unsigned char, 18446744073709551615ul> const&, long long), std::__1::tuple<IPC::ArrayReference<unsigned char, 18446744073709551615ul>, long long>&&, std::__1::integer_sequence<unsigned long, 0ul, 1ul>) + 185 (HandleMessage.h:43)
80  com.apple.WebKit              	0x000000025a378c40 void IPC::callMemberFunction<WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(IPC::ArrayReference<unsigned char, 18446744073709551615ul> const&, long long), std::__1::tuple<IPC::ArrayReference<unsigned char, 18446744073709551615ul>, long long>, std::__1::integer_sequence<unsigned long, 0ul, 1ul> >(std::__1::tuple<IPC::ArrayReference<unsigned char, 18446744073709551615ul>, long long>&&, WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(IPC::ArrayReference<unsigned char, 18446744073709551615ul> const&, long long)) + 112 (HandleMessage.h:49)
81  com.apple.WebKit              	0x000000025a376a66 void IPC::handleMessage<Messages::WebResourceLoader::DidReceiveData, WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(IPC::ArrayReference<unsigned char, 18446744073709551615ul> const&, long long)>(IPC::Decoder&, WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(IPC::ArrayReference<unsigned char, 18446744073709551615ul> const&, long long)) + 150 (HandleMessage.h:121)
82  com.apple.WebKit              	0x000000025a376442 WebKit::WebResourceLoader::didReceiveWebResourceLoaderMessage(IPC::Connection&, IPC::Decoder&) + 402 (WebResourceLoaderMessageReceiver.cpp:54)
83  com.apple.WebKit              	0x0000000259d3e930 WebKit::NetworkProcessConnection::didReceiveMessage(IPC::Connection&, IPC::Decoder&) + 144 (NetworkProcessConnection.cpp:94)
84  com.apple.WebKit              	0x0000000258084024 IPC::Connection::dispatchMessage(IPC::Decoder&) + 516 (Connection.cpp:1020)
85  com.apple.WebKit              	0x00000002580847ec IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >) + 636 (Connection.cpp:1065)
86  com.apple.WebKit              	0x0000000258084e10 IPC::Connection::dispatchOneIncomingMessage() + 208 (Connection.cpp:1134)
87  com.apple.WebKit              	0x00000002580a3368 IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_9::operator()() + 88 (Connection.cpp:989)
88  com.apple.WebKit              	0x00000002580a325e WTF::Detail::CallableWrapper<IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_9, void>::call() + 30 (Function.h:52)
89  com.apple.JavaScriptCore      	0x00000002861aec62 WTF::Function<void ()>::operator()() const + 130 (Function.h:83)
90  com.apple.JavaScriptCore      	0x0000000286226de5 WTF::RunLoop::performWork() + 341 (RunLoop.cpp:133)
91  com.apple.JavaScriptCore      	0x000000028622a761 WTF::RunLoop::performWork(void*) + 33 (RunLoopCF.cpp:46)
92  com.apple.CoreFoundation      	0x00007fff2045be2c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
93  com.apple.CoreFoundation      	0x00007fff2045bd94 __CFRunLoopDoSource0 + 180
94  com.apple.CoreFoundation      	0x00007fff2045bb14 __CFRunLoopDoSources0 + 242
95  com.apple.CoreFoundation      	0x00007fff2045a53c __CFRunLoopRun + 893
96  com.apple.CoreFoundation      	0x00007fff20459afc CFRunLoopRunSpecific + 563
97  com.apple.Foundation          	0x00007fff211e3bb7 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 212
98  com.apple.Foundation          	0x00007fff21271a81 -[NSRunLoop(NSRunLoop) run] + 76
99  libxpc.dylib                  	0x00007fff200b138d _xpc_objc_main + 825
100 libxpc.dylib                  	0x00007fff200b0cd3 xpc_main + 116
101 com.apple.WebKit              	0x0000000258d628e1 WebKit::XPCServiceMain(int, char const**) + 1025 (XPCServiceMain.mm:209)
102 com.apple.WebKit              	0x000000025a404c6b WKXPCServiceMain + 27 (WKMain.mm:33)
103 com.apple.WebKit.WebContent   	0x000000010e91eea2 main + 34 (AuxiliaryProcessMain.cpp:30)
104 libdyld.dylib                 	0x00007fff2037df3d start + 1
Comment 1 Kyle Piddington 2021-03-31 15:57:37 PDT
Created attachment 424838 [details]
Patch
Comment 2 EWS Watchlist 2021-03-31 15:58:21 PDT
Note that there are important steps to take when updating ANGLE. See https://trac.webkit.org/wiki/UpdatingANGLE
Comment 3 Kenneth Russell 2021-04-01 12:35:01 PDT
Comment on attachment 424838 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=424838&action=review

> Source/ThirdParty/ANGLE/ChangeLog:4
> +	Correctly handle nameless structs in metal backend

This ChangeLog line's in the wrong place. It should be in a new paragraph after the bug ID. Please fix indentation too.

> Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect/SeparateCompoundStructDeclarations.cpp:37
> +        if (type.isStructSpecifier() && symbolType != SymbolType::Empty)

Would it be possible to add a unit test under src/tests/compiler_tests for this change, looking (for example) for the "unnamed" prefix?

> Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect/SeparateCompoundStructDeclarations.cpp:43
> +            if(structure->symbolType() == SymbolType::Empty && !structure->isVariable())

This seems weird to me. structure is a TStructure - why would its symbolType be empty, and further, why would it ever have Variable SymbolClass?

Possible to describe in a comment the layout of the data structures for named vs. unnamed / inline structures?

> Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect/SeparateCompoundStructDeclarations.cpp:45
> +                const TStructure * structDefn = new TStructure(mSymbolTable,  mIdGen.createNewName("unnamed").rawName(), &(structure->fields()) , SymbolType::AngleInternal);

Is it guaranteed that this generated name doesn't collide with anything? Does it use a prefix that's reserved, like "_webgl" per https://www.khronos.org/registry/webgl/specs/latest/1.0/#4.3 ?
Comment 4 Radar WebKit Bug Importer 2021-04-06 04:43:16 PDT
<rdar://problem/76262154>
Comment 5 Kyle Piddington 2021-04-09 18:01:46 PDT
Created attachment 425671 [details]
Patch
Comment 6 Kenneth Russell 2021-04-10 21:59:47 PDT
Comment on attachment 425671 [details]
Patch

Looks good! r+
Comment 7 EWS 2021-04-12 12:01:15 PDT
Committed r275832 (236402@main): <https://commits.webkit.org/236402@main>

All reviewed patches have been landed. Closing bug and clearing flags on attachment 425671 [details].