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

Reply via email to