WebGL bot should run tests with GPU Process enabled#24
Closed
ryanhaddad wants to merge 1 commit into
Closed
Conversation
https://bugs.webkit.org/show_bug.cgi?id=232107 Reviewed by NOBODY (OOPS!). * CISupport/build-webkit-org/config.json:
ryanhaddad
force-pushed
the
eng/webgl-gpup-bot
branch
from
October 21, 2021 21:58
a52d5e5 to
abbb58f
Compare
JonWBedard
approved these changes
Oct 21, 2021
Contributor
Author
|
Committed r284657: https://commits.webkit.org/r284657 |
webkit-early-warning-system
pushed a commit
to MenloDorian/Webkit
that referenced
this pull request
Jun 23, 2022
https://bugs.webkit.org/show_bug.cgi?id=241905 Reviewed by Yusuke Suzuki. offlineasm used to emit this LLInt code: ".loc 1 996\n" "ldr x19, [x0] \n" // LowLevelInterpreter.asm:996 ".loc 1 997\n" "ldr x20, [x0, WebKit#8] \n" // LowLevelInterpreter.asm:997 ".loc 1 998\n" "ldr x21, [x0, WebKit#16] \n" // LowLevelInterpreter.asm:998 ".loc 1 999\n" "ldr x22, [x0, WebKit#24] \n" // LowLevelInterpreter.asm:999 ... ".loc 1 1006\n" "ldr d8, [x0, WebKit#80] \n" // LowLevelInterpreter.asm:1006 ".loc 1 1007\n" "ldr d9, [x0, WebKit#88] \n" // LowLevelInterpreter.asm:1007 ".loc 1 1008\n" "ldr d10, [x0, WebKit#96] \n" // LowLevelInterpreter.asm:1008 ".loc 1 1009\n" "ldr d11, [x0, WebKit#104] \n" // LowLevelInterpreter.asm:1009 ... Now, it can emit this instead: ".loc 1 996\n" "ldp x19, x20, [x0, #0] \n" // LowLevelInterpreter.asm:996 ".loc 1 997\n" "ldp x21, x22, [x0, WebKit#16] \n" // LowLevelInterpreter.asm:997 ... ".loc 1 1001\n" "ldp d8, d9, [x0, WebKit#80] \n" // LowLevelInterpreter.asm:1001 ".loc 1 1002\n" "ldp d10, d11, [x0, WebKit#96] \n" // LowLevelInterpreter.asm:1002 ... Also, there was some code that kept recomputing the base address of a sequence of load/store instructions. For example, ".loc 6 902\n" "add x13, sp, x10, lsl WebKit#3 \n" // WebAssembly.asm:902 "ldr x0, [x13, WebKit#48] \n" "add x13, sp, x10, lsl WebKit#3 \n" "ldr x1, [x13, WebKit#56] \n" "add x13, sp, x10, lsl WebKit#3 \n" "ldr x2, [x13, WebKit#64] \n" "add x13, sp, x10, lsl WebKit#3 \n" "ldr x3, [x13, WebKit#72] \n" ... For such places, we observe that the base address is the same for every load/store instruction in the sequence, and precompute it in the LLInt asm code to help out the offline asm. This allows the offlineasm to now emit this more efficient code instead: ".loc 6 896\n" "add x10, sp, x10, lsl WebKit#3 \n" // WebAssembly.asm:896 ".loc 6 898\n" "ldp x0, x1, [x10, WebKit#48] \n" // WebAssembly.asm:898 "ldp x2, x3, [x10, WebKit#64] \n" ... * Source/JavaScriptCore/llint/LowLevelInterpreter.asm: * Source/JavaScriptCore/llint/WebAssembly.asm: * Source/JavaScriptCore/offlineasm/arm64.rb: * Source/JavaScriptCore/offlineasm/instructions.rb: Canonical link: https://commits.webkit.org/251799@main
webkit-early-warning-system
pushed a commit
to justinmichaud/WebKit
that referenced
this pull request
Aug 3, 2022
https://bugs.webkit.org/show_bug.cgi?id=243358 Reviewed by Yusuke Suzuki. Add support for ARM64 disassembler comments in jit code. We use a global map of code address -> comments, which is updated during linking. Comments do nothing when dumpDisassembly=0. Also, we opt-out some MacroAssembler files from unified builds to fix build errors caused by a RegisterID symbol conflict that this patch accidentally exposes. Here is an example of a comment: ``` comment(scratchGPR, " = callFrame->callee->executableOrRareData"); emitGetFromCallFrameHeaderPtr(CallFrameSlot::callee, scratchGPR); loadPtr(Address(scratchGPR, JSFunction::offsetOfExecutableOrRareData()), scratchGPR); auto hasExecutable = branchTestPtr(Zero, scratchGPR, TrustedImm32(JSFunction::rareDataTag)); loadPtr(Address(scratchGPR, FunctionRareData::offsetOfExecutable() - JSFunction::rareDataTag), scratchGPR); hasExecutable.link(this); comment(scratchGPR, " = (", scratchGPR, ": Executable)->codeBlock"); loadPtr(Address(scratchGPR, FunctionExecutable::offsetOfCodeBlockFor(kind)), scratchGPR); ``` becomes ``` <44> 0x12e51c02c: ldur x1, [fp, WebKit#24]; %x1 = callFrame->callee->executableOrRareData <48> 0x12e51c030: ldur x1, [x1, WebKit#24] <52> 0x12e51c034: tbz x1, #0, 0x12e51c03c -> <60> <56> 0x12e51c038: ldur x1, [x1, WebKit#47] <60> 0x12e51c03c: ldur x1, [x1, WebKit#96]; %x1 = (%x1: Executable)->codeBlock ``` * Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj: * Source/JavaScriptCore/Sources.txt: * Source/JavaScriptCore/assembler/AbstractMacroAssembler.h: (JSC::AbstractMacroAssembler::comment): (JSC::AbstractMacroAssembler::lineComment): (JSC::AbstractMacroAssembler::commentImpl): * Source/JavaScriptCore/assembler/Comments.cpp: Copied from Source/JavaScriptCore/disassembler/ARM64Disassembler.cpp. (JSC::CommentRegistry::initialize): (JSC::CommentRegistry::singleton): * Source/JavaScriptCore/assembler/Comments.h: Added. (JSC::CommentRegistry::WTF_RETURNS_LOCK): (JSC::CommentRegistry::registerCodeRange): (JSC::CommentRegistry::unregisterCodeRange): (JSC::CommentRegistry::comment): (JSC::CommentRegistry::orderedKey): (JSC::CommentRegistry::orderedKeyInverse): * Source/JavaScriptCore/assembler/LinkBuffer.cpp: (JSC::LinkBuffer::linkCode): (JSC::LinkBuffer::linkComments): * Source/JavaScriptCore/assembler/LinkBuffer.h: * Source/JavaScriptCore/disassembler/ARM64Disassembler.cpp: (JSC::tryToDisassemble): * Source/JavaScriptCore/jit/AssemblyHelpers.cpp: (JSC::AssemblyHelpers::jitAssertCodeBlockOnCallFrameWithType): (JSC::AssemblyHelpers::jitAssertCodeBlockMatchesCurrentCalleeCodeBlockOnCallFrame): * Source/JavaScriptCore/jit/ExecutableAllocator.cpp: (JSC::ExecutableMemoryHandle::~ExecutableMemoryHandle): * Source/JavaScriptCore/runtime/InitializeThreading.cpp: (JSC::initialize): remove unified sources for macroasm Canonical link: https://commits.webkit.org/253085@main
webkit-commit-queue
pushed a commit
that referenced
this pull request
Mar 15, 2026
rdar://172148530 https://bugs.webkit.org/show_bug.cgi?id=309547 Reviewed by Ryosuke Niwa and BJ Burg. FontCascade.h was the #24 most expensive header in WebCore by total parse time (328 inclusions × 535ms average = 175s). This patch reduces that to 328 × 366ms = 120s, a ~32% improvement, moving it to #36. Changes to FontCascade.h: - Remove includes of FloatSegment.h, FontCascadeFonts.h, Path.h, TextSpacing.h, CheckedRef.h, HashSet.h, CharacterProperties.h, CharacterNames.h, and RuntimeApplicationChecksCocoa.h, replacing them with forward declarations where needed. - Move inline method bodies (primaryFont, fallbackRangesAt, isFixedPitch, canTakeFixedPitchFastContentMeasuring, fontSelector, isPlatformFont, metricsOfPrimaryFont, tabWidth, widthForTextUsingSimplifiedMeasuring, widthOfSpaceString, treatAsSpace, treatAsZeroWidthSpace, treatAsZeroWidthSpaceInComplexScript, normalizeSpaces, isCharacterWhoseGlyphsShouldBeDeletedForTextRendering, isInvisibleReplacementObjectCharacter) to FontCascadeInlines.h. - Extract CodePath and CustomFontNotReadyAction enums to a new lightweight FontCascadeEnums.h so downstream headers can reference these types without pulling in all of FontCascade.h. - Move GlyphGeometryCacheEntry out of FontCascadeFonts to namespace scope so it can be forward-declared in FontCascade.h. Changes to Font.h: - Remove includes of GlyphPage.h, Hasher.h, StringHash.h, OpenTypeMathData.h, and OpenTypeVerticalData.h. - Move inline method bodies (boundsForGlyph, boundsForGlyphs, widthForGlyph, verticalData) to a new FontInlines.h. ~90 .cpp/.mm files are updated to add explicit includes for headers they previously obtained transitively. Tests: Tools/TestWebKitAPI/Tests/WebCore/ComplexTextController.cpp Tools/TestWebKitAPI/Tests/WebCore/MonospaceFontTests.cpp Tools/TestWebKitAPI/Tests/WebCore/cg/BifurcatedGraphicsContextTestsCG.cpp * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/accessibility/AXTextMarker.cpp: * Source/WebCore/accessibility/cocoa/AccessibilityObjectCocoa.mm: * Source/WebCore/css/parser/SizesAttributeParser.cpp: * Source/WebCore/dom/DocumentMarkerController.cpp: * Source/WebCore/dom/ImageOverlay.cpp: * Source/WebCore/editing/Editor.cpp: * Source/WebCore/editing/TextManipulationController.cpp: * Source/WebCore/editing/cocoa/EditingHTMLConverter.mm: * Source/WebCore/editing/cocoa/NodeHTMLConverter.mm: * Source/WebCore/editing/cocoa/WebContentReaderCocoa.mm: * Source/WebCore/html/HTMLAnchorElement.cpp: * Source/WebCore/html/HTMLTextFormControlElement.cpp: * Source/WebCore/html/NumberInputType.cpp: * Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp: * Source/WebCore/html/canvas/CanvasRenderingContext2DBase.h: * Source/WebCore/html/canvas/OffscreenCanvasRenderingContext2D.cpp: * Source/WebCore/inspector/InspectorOverlay.cpp: * Source/WebCore/inspector/agents/InspectorCSSAgent.cpp: * Source/WebCore/layout/formattingContexts/inline/InlineContentBreaker.cpp: * Source/WebCore/layout/formattingContexts/inline/InlineContentConstrainer.cpp: * Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.cpp: * Source/WebCore/layout/formattingContexts/inline/InlineLevelBox.h: * Source/WebCore/layout/formattingContexts/inline/InlineLevelBoxInlines.h: * Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp: * Source/WebCore/layout/formattingContexts/inline/text/TextUtil.cpp: * Source/WebCore/layout/formattingContexts/inline/text/TextUtil.h: * Source/WebCore/layout/integration/LayoutIntegrationBoxGeometryUpdater.cpp: * Source/WebCore/layout/integration/inline/InlineIteratorBoxModernPath.h: * Source/WebCore/layout/integration/inline/InlineIteratorSVGTextBox.cpp: * Source/WebCore/layout/integration/inline/LayoutIntegrationInlineContentBuilder.cpp: * Source/WebCore/layout/layouttree/LayoutTreeBuilder.cpp: * Source/WebCore/loader/cache/CachedImage.cpp: * Source/WebCore/page/DebugPageOverlays.cpp: * Source/WebCore/platform/graphics/ComplexTextController.cpp: * Source/WebCore/platform/graphics/Font.cpp: * Source/WebCore/platform/graphics/Font.h: (WebCore::Font::ctFont const): (WebCore::Font::verticalData const): Deleted. (WebCore::Font::boundsForGlyph const): Deleted. (WebCore::Font::boundsForGlyphs const): Deleted. (WebCore::Font::widthForGlyph const): Deleted. * Source/WebCore/platform/graphics/FontCascade.cpp: (WebCore::FontCascade::widthForSimpleTextSlow const): * Source/WebCore/platform/graphics/FontCascade.h: (WebCore::FontCascade::primaryFont const): Deleted. (WebCore::FontCascade::fallbackRangesAt const): Deleted. (WebCore::FontCascade::isFixedPitch const): Deleted. (WebCore::FontCascade::canTakeFixedPitchFastContentMeasuring const): Deleted. (WebCore::FontCascade::fontSelector const): Deleted. (WebCore::FontCascade::tabWidth const): Deleted. (WebCore::FontCascade::widthForTextUsingSimplifiedMeasuring const): Deleted. * Source/WebCore/platform/graphics/FontCascadeEnums.h: Copied from Source/WebKit/WebProcess/WebCoreSupport/mac/WebPopupMenuMac.mm. * Source/WebCore/platform/graphics/FontCascadeFonts.h: * Source/WebCore/platform/graphics/FontCascadeInlines.h: (WebCore::FontCascade::primaryFont const): (WebCore::FontCascade::fallbackRangesAt const): (WebCore::FontCascade::isFixedPitch const): (WebCore::FontCascade::canTakeFixedPitchFastContentMeasuring const): (WebCore::FontCascade::fontSelector const): (WebCore::FontCascade::tabWidth const): (WebCore::FontCascade::widthForTextUsingSimplifiedMeasuring const): (WebCore::FontCascade::isPlatformFont const): (WebCore::FontCascade::metricsOfPrimaryFont const): (WebCore::FontCascade::isInvisibleReplacementObjectCharacter): (WebCore::FontCascade::treatAsSpace): (WebCore::FontCascade::isCharacterWhoseGlyphsShouldBeDeletedForTextRendering): (WebCore::FontCascade::treatAsZeroWidthSpace): (WebCore::FontCascade::treatAsZeroWidthSpaceInComplexScript): (WebCore::FontCascade::normalizeSpaces): (WebCore::FontCascade::widthOfSpaceString const): * Source/WebCore/platform/graphics/FontInlines.h: Added. (WebCore::Font::verticalData const): (WebCore::Font::boundsForGlyph const): (WebCore::Font::boundsForGlyphs const): (WebCore::Font::widthForGlyph const): * Source/WebCore/platform/graphics/TextMeasurementCache.h: * Source/WebCore/platform/graphics/WidthIterator.cpp: * Source/WebCore/platform/graphics/ca/PlatformCALayer.mm: * Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp: * Source/WebCore/platform/graphics/coretext/ComplexTextControllerCoreText.mm: * Source/WebCore/platform/graphics/coretext/DrawGlyphsRecorder.cpp: * Source/WebCore/platform/graphics/coretext/FontCascadeCoreText.cpp: * Source/WebCore/platform/graphics/opentype/OpenTypeVerticalData.cpp: * Source/WebCore/platform/mock/MockRealtimeVideoSource.cpp: * Source/WebCore/platform/text/TextSpacing.cpp: * Source/WebCore/platform/text/TextSpacing.h: * Source/WebCore/rendering/LegacyInlineFlowBox.cpp: * Source/WebCore/rendering/RenderBlock.cpp: * Source/WebCore/rendering/RenderCombineText.cpp: * Source/WebCore/rendering/RenderEmbeddedObject.cpp: * Source/WebCore/rendering/RenderFileUploadControl.cpp: * Source/WebCore/rendering/RenderImage.cpp: * Source/WebCore/rendering/RenderInline.cpp: * Source/WebCore/rendering/RenderLayerBacking.cpp: * Source/WebCore/rendering/RenderListBox.cpp: * Source/WebCore/rendering/RenderReplaced.cpp: * Source/WebCore/rendering/RenderText.cpp: * Source/WebCore/rendering/TextBoxPainter.cpp: * Source/WebCore/rendering/line/LineInlineHeaders.h: * Source/WebCore/rendering/mathml/MathOperator.cpp: * Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp: * Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp: * Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp: * Source/WebCore/rendering/mathml/RenderMathMLToken.cpp: * Source/WebCore/rendering/style/RenderStyle.cpp: * Source/WebCore/rendering/svg/RenderSVGInlineText.cpp: * Source/WebCore/rendering/svg/RenderSVGText.cpp: * Source/WebCore/rendering/svg/SVGInlineTextBox.cpp: * Source/WebCore/rendering/svg/SVGTextBoxPainter.cpp: * Source/WebCore/rendering/svg/SVGTextLayoutEngineBaseline.cpp: * Source/WebCore/rendering/updating/RenderTreeBuilderFirstLetter.cpp: * Source/WebCore/style/InlineTextBoxStyle.cpp: * Source/WebCore/style/StyleBuilderCustom.h: * Source/WebCore/style/StyleExtractorCustom.h: * Source/WebCore/style/StyleInterpolationFunctions.h: * Source/WebCore/style/StyleResolver.cpp: * Source/WebCore/style/computed/StyleComputedStyleBase.cpp: * Source/WebCore/style/values/primitives/StyleLengthResolution.cpp: * Source/WebKit/WebProcess/WebCoreSupport/mac/WebPopupMenuMac.mm: * Source/WebKitLegacy/mac/DOM/DOM.mm: * Source/WebKitLegacy/mac/WebCoreSupport/PopupMenuMac.mm: * Tools/TestWebKitAPI/Tests/WebCore/ComplexTextController.cpp: * Tools/TestWebKitAPI/Tests/WebCore/MonospaceFontTests.cpp: * Tools/TestWebKitAPI/Tests/WebCore/cg/BifurcatedGraphicsContextTestsCG.cpp: Canonical link: https://commits.webkit.org/309288@main
Wowfunhappy
referenced
this pull request
in Wowfunhappy/WebKit
Jun 15, 2026
…NSMenu menuTypeForEvent: (#23/#24) containsString: is 10.10+ and not polyfilled -> crashed WebContent on any date/time input; use rangeOfString:. +[NSMenu menuTypeForEvent:] is 10.10+ -> threw mid-click on WebKit1 popovers/Prefs>Extensions; guard it. Co-Authored-By: Claude Opus 4.8 <[email protected]>
Wowfunhappy
referenced
this pull request
in Wowfunhappy/WebKit
Jun 18, 2026
The backport installed a global NSEvent monitor (+[WKView installEventMonitorOnce]) that intercepted mouse/scroll/key events and dispatched them to WKView, on the belief that layer-tree mirror subviews intercepted hit-testing. That was a MISDIAGNOSIS: WKView hosts the WebContent layer tree as a plain CALayer sublayer of its backing layer (MinimalPageClient enterAcceleratedCompositingMode/setRemoteLayerTreeRootNode, [[m_view layer] addSublayer:]) with ZERO NSView subviews. CALayers don't participate in NSView -hitTest:, so nothing ever intercepted events. Worse, the monitor consumed events before -[NSWindow sendEvent:] (where AppKit activates the window on click), creating the very click-to-activate problem it then re-patched. Remove the monitor and rely on AppKit's natural responder chain; WKView's own scrollWheel:/keyDown:/mouseDown:/mouseMoved: handlers receive events directly. Keep the -hitTest: override as upstream-equivalent insurance (upstream WebViewImpl::hitTest does the same redirect). Verified live: main-view links/scroll/typing/right-click; hover (#17) fires :hover on a fresh page AND with the address bar focused; Reader scroll (#39) works via natural routing to the topmost ReaderWKView; and every secondary WKView that relied on the monitor -- uBlock popover (#14/#23), Web Inspector (#16), App Store (#72), Top Sites (#13), Preferences>Extensions (#24) -- stays interactive. No crashes. Retires the #62 event-monitor keystone and supersedes #39's monitor routing. (The DDG-logo black box, a separate #56 IOSurface-backing symptom, is root-caused but not fixed here.) Co-Authored-By: Claude Opus 4.8 <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
abbb58f