Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 729393d0741fe040579bf599843215b206d0b6b1
      
https://github.com/WebKit/WebKit/commit/729393d0741fe040579bf599843215b206d0b6b1
  Author: Dan Glastonbury <[email protected]>
  Date:   2024-06-20 (Thu, 20 Jun 2024)

  Changed paths:
    M Source/ThirdParty/ANGLE/src/libANGLE/Framebuffer.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/Framebuffer.h
    M Source/WebCore/Modules/webxr/WebXROpaqueFramebufferCocoa.cpp
    M Source/WebCore/platform/graphics/GraphicsContextGL.cpp
    M Source/WebCore/platform/graphics/GraphicsContextGL.h
    M Source/WebCore/platform/graphics/cocoa/GraphicsContextGLCocoa.h
    M Source/WebCore/platform/graphics/cocoa/GraphicsContextGLCocoa.mm
    M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.messages.in
    M 
Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.h
    M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h
    M 
Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxyFunctionsGenerated.cpp

  Log Message:
  -----------
  [WebXR] Implicitly clear WebXROpaqueFramebuffer
https://bugs.webkit.org/show_bug.cgi?id=274136
rdar://128041214

Reviewed by Kimmo Kinnunen and Mike Wyrzykowski.

The performance panel of GPU debugger shows 3.5ms spent just clearing and
writing render targets at the start of frame due to our explicit glClear to
match the WebXR spec.

This change makes use of the robust resource feature of ANGLE to initialize
render target attachments just before their first use. To achieve this,
framebuffer discard/invalidate now marks attachments as needing initialization
when robust resource init is enabled is ANGLE.

This change adds framebufferDiscard and IPC messages gated on availability of
WebXR for WebXROpaqueFramebuffer to use.

* Source/ThirdParty/ANGLE/src/libANGLE/Framebuffer.cpp:
(gl::Framebuffer::discard):
(gl::Framebuffer::invalidate):
(gl::Framebuffer::markDrawAttachmentsNeedInit):
* Source/ThirdParty/ANGLE/src/libANGLE/Framebuffer.h:
* Source/WebCore/Modules/webxr/WebXROpaqueFramebufferCocoa.cpp:
(WebCore::WebXROpaqueFramebuffer::startFrame):
(WebCore::WebXROpaqueFramebuffer::blitSharedToLayered):
* Source/WebCore/platform/graphics/GraphicsContextGL.cpp:
(WebCore::GraphicsContextGL::framebufferDiscard):
* Source/WebCore/platform/graphics/GraphicsContextGL.h:
* Source/WebCore/platform/graphics/cocoa/GraphicsContextGLCocoa.h:
* Source/WebCore/platform/graphics/cocoa/GraphicsContextGLCocoa.mm:
(WebCore::GraphicsContextGLCocoa::framebufferDiscard):
(WebCore::GraphicsContextGLCocoa::enableRequiredWebXRExtensionsImpl):
* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
* Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.h:
(framebufferDiscard):
* Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
* 
Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxyFunctionsGenerated.cpp:
(WebKit::RemoteGraphicsContextGLProxy::framebufferDiscard):

Canonical link: https://commits.webkit.org/280236@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to