Metal ANGLE is crashing in this test (LayoutTests/inspector/canvas/updateShader-webgl.html), due to a bad NSDictionary. Switch to using allocated dictionaries, rather than stack constants.
Created attachment 424141 [details] Patch
Note that there are important steps to take when updating ANGLE. See https://trac.webkit.org/wiki/UpdatingANGLE
Comment on attachment 424141 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=424141&action=review > Source/ThirdParty/ANGLE/ChangeLog:4 > +Switch to using allocated dictionaries, rather than stack constants. What is the exact mechanism for this failure? Literals are not stack constants, and should generally work everywhere. I wonder if this is covering for an over-release somewhere with a leak. > Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ProgramMtl.mm:251 > - mDefaultSubstitutionDictionary = @{@"TRANSFORM_FEEDBACK_ENABLED": @"0"}; > + mDefaultSubstitutionDictionary = [[NSDictionary alloc] initWithDictionary:@{@"TRANSFORM_FEEDBACK_ENABLED": @"0"}]; There is a code path above that also initializes mDefaultSubstitutionDictionary with a literal. Worth updating that for consistency?
I'd like to defer review to ap@ who clearly understands this code better than me, but happy to study and officially review if needed.
Also: possible to add the crashing stack trace as a comment here for posterity?
An ASan report would likely be best for understanding what leads to the crash.
Created attachment 424200 [details] Patch
Created attachment 424202 [details] Patch
Committed r274990: <https://commits.webkit.org/r274990> All reviewed patches have been landed. Closing bug and clearing flags on attachment 424202 [details].
<rdar://problem/75815100>