Title: [278528] trunk/Source/WebCore
Revision
278528
Author
[email protected]
Date
2021-06-05 16:22:30 -0700 (Sat, 05 Jun 2021)

Log Message

[WebXR] Supply an IOSurface in SimulatedXRDevice
https://bugs.webkit.org/show_bug.cgi?id=226564
<rdar://problem/78793086>

Reviewed by Sam Weinig.

Rather than handle the case where we get a null IOSurface,
have the SimulatedXRDevice create one on each frame.

* Modules/webxr/WebXROpaqueFramebuffer.cpp:
(WebCore::WebXROpaqueFramebuffer::startFrame):
* testing/WebFakeXRDevice.cpp:
(WebCore::SimulatedXRDevice::frameTimerFired):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (278527 => 278528)


--- trunk/Source/WebCore/ChangeLog	2021-06-05 22:54:07 UTC (rev 278527)
+++ trunk/Source/WebCore/ChangeLog	2021-06-05 23:22:30 UTC (rev 278528)
@@ -1,3 +1,19 @@
+2021-06-05  Dean Jackson  <[email protected]>
+
+        [WebXR] Supply an IOSurface in SimulatedXRDevice
+        https://bugs.webkit.org/show_bug.cgi?id=226564
+        <rdar://problem/78793086>
+
+        Reviewed by Sam Weinig.
+
+        Rather than handle the case where we get a null IOSurface,
+        have the SimulatedXRDevice create one on each frame.
+
+        * Modules/webxr/WebXROpaqueFramebuffer.cpp:
+        (WebCore::WebXROpaqueFramebuffer::startFrame):
+        * testing/WebFakeXRDevice.cpp:
+        (WebCore::SimulatedXRDevice::frameTimerFired):
+
 2021-06-05  Simon Fraser  <[email protected]>
 
         Remove some duplicated code related to scrollbars

Modified: trunk/Source/WebCore/Modules/webxr/WebXROpaqueFramebuffer.cpp (278527 => 278528)


--- trunk/Source/WebCore/Modules/webxr/WebXROpaqueFramebuffer.cpp	2021-06-05 22:54:07 UTC (rev 278527)
+++ trunk/Source/WebCore/Modules/webxr/WebXROpaqueFramebuffer.cpp	2021-06-05 23:22:30 UTC (rev 278528)
@@ -120,8 +120,7 @@
     // the textures/renderbuffers.
 
 #if USE(IOSURFACE_FOR_XR_LAYER_DATA)
-    if (!data.surface)
-        return;
+    ASSERT(data.surface);
 
     auto gCGL = static_cast<GraphicsContextGLOpenGL*>(m_context.graphicsContextGL());
     GCGLenum textureTarget = GraphicsContextGLOpenGL::drawingBufferTextureTarget();

Modified: trunk/Source/WebCore/testing/WebFakeXRDevice.cpp (278527 => 278528)


--- trunk/Source/WebCore/testing/WebFakeXRDevice.cpp	2021-06-05 22:54:07 UTC (rev 278527)
+++ trunk/Source/WebCore/testing/WebFakeXRDevice.cpp	2021-06-05 23:22:30 UTC (rev 278528)
@@ -35,6 +35,10 @@
 #include <wtf/CompletionHandler.h>
 #include <wtf/MathExtras.h>
 
+#if USE(IOSURFACE_FOR_XR_LAYER_DATA)
+#include "IOSurface.h"
+#endif
+
 namespace WebCore {
 
 static constexpr Seconds FakeXRFrameTime = 15_ms;
@@ -146,7 +150,7 @@
 
     for (auto& layer : m_layers) {
 #if USE(IOSURFACE_FOR_XR_LAYER_DATA)
-        data.layers.add(layer.key, FrameData::LayerData { });
+        data.layers.add(layer.key, FrameData::LayerData { .surface = IOSurface::create(recommendedResolution(PlatformXR::SessionMode::ImmersiveVr), DestinationColorSpace::SRGB()) });
 #else
         data.layers.add(layer.key, FrameData::LayerData { .opaqueTexture = layer.value });
 #endif
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to