Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 26c9d5623245ba4834c762b60ad09778792ec365
https://github.com/WebKit/WebKit/commit/26c9d5623245ba4834c762b60ad09778792ec365
Author: Yury Semikhatsky <[email protected]>
Date: 2026-10-06 (Tue, 06 Oct 2026)
Changed paths:
A LayoutTests/webgl/webgl-resize-non-composited-expected.html
A LayoutTests/webgl/webgl-resize-non-composited.html
M
Source/WebKit/WebProcess/GPU/graphics/wc/RemoteGraphicsContextGLProxyWC.cpp
Log Message:
-----------
[Win] Non-composited WebGL canvas is blank after its drawing buffer is resized
https://bugs.webkit.org/show_bug.cgi?id=326421
Reviewed by Devin Rousso.
RemoteGraphicsContextGLProxy::reshape() resets m_hasPreparedForDisplay, and
copyNativeImage(DisplayBuffer) returns null until it is set again.
RemoteGraphicsContextGLProxyWC::prepareForDisplay() only set it when the GPU
process returned a new content buffer identifier. An identifier is handed out
once and is not handed out again until the compositor consumes it, which never
happens when the canvas is painted without accelerated compositing. As a result,
after any drawing buffer resize the canvas painted as transparent until the
context was lost and restored.
Set m_hasPreparedForDisplay whenever PrepareForDisplay succeeds: the display
buffer is ready regardless of whether a new identifier was returned.
Test: webgl/webgl-resize-non-composited.html
* LayoutTests/webgl/webgl-resize-non-composited-expected.html: Added.
* LayoutTests/webgl/webgl-resize-non-composited.html: Added.
* Source/WebKit/WebProcess/GPU/graphics/wc/RemoteGraphicsContextGLProxyWC.cpp:
Canonical link: https://commits.webkit.org/322870@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications