[webkit-changes] [WebKit/WebKit] c3988b: OffscreenCanvas.transferToImageBuffer() does not c...

Kimmo Kinnunen noreply at github.com
Wed May 29 01:39:30 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c3988b98d7c4d04252f579c2a919a1c6a428a0e3
      https://github.com/WebKit/WebKit/commit/c3988b98d7c4d04252f579c2a919a1c6a428a0e3
  Author: Kimmo Kinnunen <kkinnunen at apple.com>
  Date:   2024-05-29 (Wed, 29 May 2024)

  Changed paths:
    M LayoutTests/TestExpectations
    M Source/WebCore/html/OffscreenCanvas.cpp
    M Source/WebCore/html/canvas/WebGLDefaultFramebuffer.cpp
    M Source/WebCore/html/canvas/WebGLDefaultFramebuffer.h
    M Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp
    M Source/WebCore/html/canvas/WebGLRenderingContextBase.h

  Log Message:
  -----------
  OffscreenCanvas.transferToImageBuffer() does not clear WebGL drawing buffer correctly
https://bugs.webkit.org/show_bug.cgi?id=272960
rdar://126738038

Reviewed by Matt Woodrow.

OffscreenCanvas.transferToImageBuffer() should cause compositing steps
similar to the case of preserveDrawingBuffer=false drawing buffer is
displayed:
 - color buffer, depth, stencil is cleared

Previous clear implementation would use WebGL context state, which
would not necceassarily clear the correct framebuffer in a correct
way.

* Source/WebCore/html/OffscreenCanvas.cpp:
(WebCore::OffscreenCanvas::transferToImageBitmap):
* Source/WebCore/html/canvas/WebGLDefaultFramebuffer.cpp:
(WebCore::WebGLDefaultFramebuffer::markAllBuffersDirty):
* Source/WebCore/html/canvas/WebGLDefaultFramebuffer.h:
* Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::markBuffersDirtyForTransfer):
* Source/WebCore/html/canvas/WebGLRenderingContextBase.h:

Canonical link: https://commits.webkit.org/279434@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