[webkit-changes] [WebKit/WebKit] 0d0eb9: [MotionMark] De-virtualize `CanvasRenderingContext...
Tim Nguyen
noreply at github.com
Tue Oct 15 11:47:52 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 0d0eb9fad9c72bea8953b25785768e796c9dadb3
https://github.com/WebKit/WebKit/commit/0d0eb9fad9c72bea8953b25785768e796c9dadb3
Author: Tim Nguyen <ntim at apple.com>
Date: 2024-10-15 (Tue, 15 Oct 2024)
Changed paths:
M Source/WebCore/html/canvas/CanvasRenderingContext.cpp
M Source/WebCore/html/canvas/CanvasRenderingContext.h
M Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp
M Source/WebCore/html/canvas/CanvasRenderingContext2D.h
M Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp
M Source/WebCore/html/canvas/CanvasRenderingContext2DBase.h
M Source/WebCore/html/canvas/GPUBasedCanvasRenderingContext.cpp
M Source/WebCore/html/canvas/GPUBasedCanvasRenderingContext.h
M Source/WebCore/html/canvas/GPUCanvasContext.cpp
M Source/WebCore/html/canvas/GPUCanvasContext.h
M Source/WebCore/html/canvas/GPUCanvasContextCocoa.h
M Source/WebCore/html/canvas/ImageBitmapRenderingContext.cpp
M Source/WebCore/html/canvas/ImageBitmapRenderingContext.h
M Source/WebCore/html/canvas/OffscreenCanvasRenderingContext2D.cpp
M Source/WebCore/html/canvas/OffscreenCanvasRenderingContext2D.h
M Source/WebCore/html/canvas/PaintRenderingContext2D.cpp
M Source/WebCore/html/canvas/PaintRenderingContext2D.h
M Source/WebCore/html/canvas/PlaceholderRenderingContext.cpp
M Source/WebCore/html/canvas/PlaceholderRenderingContext.h
M Source/WebCore/html/canvas/WebGL2RenderingContext.cpp
M Source/WebCore/html/canvas/WebGL2RenderingContext.h
M Source/WebCore/html/canvas/WebGLRenderingContext.cpp
M Source/WebCore/html/canvas/WebGLRenderingContext.h
M Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp
M Source/WebCore/html/canvas/WebGLRenderingContextBase.h
Log Message:
-----------
[MotionMark] De-virtualize `CanvasRenderingContext` type checks
https://bugs.webkit.org/show_bug.cgi?id=281445
rdar://137897409
Reviewed by Simon Fraser.
The following methods show up frequently on MotionMark traces and take up a non-negligeable amount of time:
- CanvasRenderingContext::delegatesDisplay()
- CanvasRenderingContext2DBase::effectiveDrawingContext()
- CanvasRenderingContext2DBase::drawingContext()
In order to de-virtualize them, type checks need to be used, so de-virtualize those first.
* Source/WebCore/html/canvas/CanvasRenderingContext.cpp:
(WebCore::CanvasRenderingContext::CanvasRenderingContext):
* Source/WebCore/html/canvas/CanvasRenderingContext.h:
(WebCore::CanvasRenderingContext::is2dBase const):
(WebCore::CanvasRenderingContext::is2d const):
(WebCore::CanvasRenderingContext::isWebGL1 const):
(WebCore::CanvasRenderingContext::isWebGL2 const):
(WebCore::CanvasRenderingContext::isWebGPU const):
(WebCore::CanvasRenderingContext::isGPUBased const):
(WebCore::CanvasRenderingContext::isBitmapRenderer const):
(WebCore::CanvasRenderingContext::isPlaceholder const):
(WebCore::CanvasRenderingContext::isOffscreen2d const):
(WebCore::CanvasRenderingContext::isPaint const):
* Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D):
* Source/WebCore/html/canvas/CanvasRenderingContext2D.h:
* Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::CanvasRenderingContext2DBase):
* Source/WebCore/html/canvas/CanvasRenderingContext2DBase.h:
* Source/WebCore/html/canvas/GPUBasedCanvasRenderingContext.cpp:
(WebCore::GPUBasedCanvasRenderingContext::GPUBasedCanvasRenderingContext):
* Source/WebCore/html/canvas/GPUBasedCanvasRenderingContext.h:
* Source/WebCore/html/canvas/GPUCanvasContext.cpp:
(WebCore::GPUCanvasContext::GPUCanvasContext):
* Source/WebCore/html/canvas/GPUCanvasContext.h:
(): Deleted.
* Source/WebCore/html/canvas/GPUCanvasContextCocoa.h:
* Source/WebCore/html/canvas/ImageBitmapRenderingContext.cpp:
(WebCore::ImageBitmapRenderingContext::ImageBitmapRenderingContext):
* Source/WebCore/html/canvas/ImageBitmapRenderingContext.h:
* Source/WebCore/html/canvas/OffscreenCanvasRenderingContext2D.cpp:
(WebCore::OffscreenCanvasRenderingContext2D::OffscreenCanvasRenderingContext2D):
* Source/WebCore/html/canvas/OffscreenCanvasRenderingContext2D.h:
* Source/WebCore/html/canvas/PaintRenderingContext2D.cpp:
(WebCore::PaintRenderingContext2D::PaintRenderingContext2D):
* Source/WebCore/html/canvas/PaintRenderingContext2D.h:
* Source/WebCore/html/canvas/PlaceholderRenderingContext.cpp:
(WebCore::PlaceholderRenderingContext::PlaceholderRenderingContext):
* Source/WebCore/html/canvas/PlaceholderRenderingContext.h:
* Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::create):
* Source/WebCore/html/canvas/WebGL2RenderingContext.h:
* Source/WebCore/html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::create):
* Source/WebCore/html/canvas/WebGLRenderingContext.h:
* Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::WebGLRenderingContextBase):
* Source/WebCore/html/canvas/WebGLRenderingContextBase.h:
Canonical link: https://commits.webkit.org/285213@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list