[webkit-changes] [WebKit/WebKit] e7ae0d: [WebXR] WebXR tests crash with full GPU Process

Dan Glastonbury noreply at github.com
Sun May 12 18:24:35 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e7ae0d2e886fadd38c4fc0cde13fc9da1b30f9f9
      https://github.com/WebKit/WebKit/commit/e7ae0d2e886fadd38c4fc0cde13fc9da1b30f9f9
  Author: Dan Glastonbury <djg at apple.com>
  Date:   2024-05-12 (Sun, 12 May 2024)

  Changed paths:
    M Source/WebCore/Modules/webxr/WebXROpaqueFramebuffer.h
    M Source/WebCore/Modules/webxr/WebXROpaqueFramebufferCocoa.cpp
    M Source/WebCore/platform/xr/PlatformXR.h
    M Source/WebCore/testing/WebFakeXRDevice.cpp
    M Source/WebCore/testing/WebFakeXRDevice.h
    M Source/WebKit/Shared/XR/PlatformXR.serialization.in

  Log Message:
  -----------
  [WebXR] WebXR tests crash with full GPU Process
https://bugs.webkit.org/show_bug.cgi?id=233913
rdar://86139280

Reviewed by Mike Wyrzykowski.

Fix SimulatedXRDevice to work on Cocoa again.

SimulatedXRDevice had been patched to create a dummy IOSurface so the code would
compile but it was never tested. SimulatedXRDevice was written before GPU
process and was expecting to be able to create an OpenGL texture that could be
passed as WebXROpaqueFramebuffer's compositor texture.

Instead of using OpenGL, or IOSurface, for Cocoa we now create a temporary
renderbuffer to be used as the display color buffer, internal to
WebXROpaqueFramebuffer, if a null MachSendRight is received via
PlatformXR::FrameData::LayerData.

Fixed a logic error in WebXROpaqueFramebuffer::setupFramebuffer which was
causing the drawing attachments to never be allocated. This was causing the
checkFramebufferStatus in blitShared to fail.

* Source/WebCore/Modules/webxr/WebXROpaqueFramebuffer.cpp:
(WebCore::makeExternalImageSource):
(WebCore::createAndBindTempBuffer):
(WebCore::toIntSize):
(WebCore::WebXROpaqueFramebuffer::startFrame):
(WebCore::WebXROpaqueFramebuffer::setupFramebuffer):
* Source/WebCore/Modules/webxr/WebXROpaqueFramebuffer.h:
(WebCore::WebXRAttachmentSet::operator bool const):
* Source/WebCore/platform/xr/PlatformXR.h:
* Source/WebCore/testing/WebFakeXRDevice.cpp:
(WebCore::SimulatedXRDevice::initializeTrackingAndRendering):
(WebCore::SimulatedXRDevice::shutDownTrackingAndRendering):
(WebCore::SimulatedXRDevice::frameTimerFired):
(WebCore::SimulatedXRDevice::createLayerProjection):
(WebCore::SimulatedXRDevice::deleteLayer):
* Source/WebCore/testing/WebFakeXRDevice.h:
* Source/WebKit/Shared/XR/PlatformXR.serialization.in:

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