[webkit-changes] [WebKit/WebKit] 18019c: Canvas captureStream produces stuttering with WebGL
Kimmo Kinnunen
noreply at github.com
Sun Feb 11 23:58:31 PST 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 18019ceed4fbceaa9fcc23b2f36758831b23a155
https://github.com/WebKit/WebKit/commit/18019ceed4fbceaa9fcc23b2f36758831b23a155
Author: Kimmo Kinnunen <kkinnunen at apple.com>
Date: 2024-02-11 (Sun, 11 Feb 2024)
Changed paths:
M Source/WebCore/platform/graphics/cocoa/GraphicsContextGLCocoa.mm
Log Message:
-----------
Canvas captureStream produces stuttering with WebGL
https://bugs.webkit.org/show_bug.cgi?id=268613
rdar://122619662
Reviewed by Youenn Fablet.
GraphicsContextGLCocoa::surfaceBufferToVideoFrame() will access the
display buffer IOSurface. The display buffer drawing must be scheduled
to Metal before this happens.
EGL_ReleaseTexImage() in bindNextDrawingBuffer used to ensure this, due
to ReleaseTexImage being specified as inducing a flush.
ANGLE changed flush semantics so that it does not wait until the
commands are scheduled. Thus long running WebGL could be left
unscheduled at the display buffer read for MSE capture track.
Fix by ensuring the display buffer commands are scheduled during
prepare, as is the intention.
* Source/WebCore/platform/graphics/cocoa/GraphicsContextGLCocoa.mm:
(WebCore::GraphicsContextGLCocoa::prepareForDisplayWithFinishedSignal):
Canonical link: https://commits.webkit.org/274454@main
More information about the webkit-changes
mailing list