Branch: refs/heads/webkitglib/2.50 Home: https://github.com/WebKit/WebKit Commit: 0fc17ecc2cb772d8b8e9b023a3f87af2601fb7bf https://github.com/WebKit/WebKit/commit/0fc17ecc2cb772d8b8e9b023a3f87af2601fb7bf Author: Ronan Turner <ronan_tur...@apple.com> Date: 2025-08-28 (Thu, 28 Aug 2025)
Changed paths: M Source/WebKit/Shared/API/Cocoa/RemoteObjectRegistry.h M Source/WebKit/Shared/API/Cocoa/RemoteObjectRegistry.mm M Source/WebKit/Shared/API/Cocoa/WKRemoteObjectCoder.mm M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj A Tools/TestWebKitAPI/Tests/WebKitCocoa/RemoteObjectRegistry-BadReplyBlock.html M Tools/TestWebKitAPI/Tests/WebKitCocoa/RemoteObjectRegistry.h M Tools/TestWebKitAPI/Tests/WebKitCocoa/RemoteObjectRegistry.mm A Tools/TestWebKitAPI/Tests/WebKitCocoa/coreipc-helpers.js A Tools/TestWebKitAPI/Tests/WebKitCocoa/coreipc.js Log Message: ----------- Cherry-pick 298380@main (c1ec6110d032). https://bugs.webkit.org/show_bug.cgi?id=290377 RemoteObjectRegistry should decode an invocation with a ReplyBlock if expected. https://bugs.webkit.org/show_bug.cgi?id=290377 rdar://145728621 Reviewed by Alex Christensen. RemoteObjectRegistry had a logic issue when decoding a RemoteInvocation. If a CallReplyBlock message was received, this would contain an encoded NSInvocation representing the method to call and the arguments. It was possible to supply an alternate selector, with differing arguments, and still have the original ReplyBlock called with these, leading to a mismatch in argument types. The RemoteObjectRegistry should ensure the NSInvocation is decoded based on the original expected ReplyBlock, instead of accepting another selector from the wire. Originally-landed-as: 289651.466@safari-7621-branch (4a186489a84d). rdar://157795161 Canonical link: https://commits.webkit.org/298380@main Canonical link: https://commits.webkit.org/298234.48@webkitglib/2.50 Commit: a3232a30d121f5e517fa869315d25802ec45c591 https://github.com/WebKit/WebKit/commit/a3232a30d121f5e517fa869315d25802ec45c591 Author: Kimmo Kinnunen <kkinnu...@apple.com> Date: 2025-08-28 (Thu, 28 Aug 2025) Changed paths: M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.h M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.messages.in M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.h M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxyFunctionsGenerated.cpp M Tools/Scripts/generate-gpup-webgl Log Message: ----------- Cherry-pick 298468@main (5a63340b3860). https://bugs.webkit.org/show_bug.cgi?id=293116 RemoteGraphicsContextGL should copy GLenum arrays https://bugs.webkit.org/show_bug.cgi?id=293116 rdar://148500598 Reviewed by Mike Wyrzykowski. Move drawBuffers, drawBuffersEXT, invalidateFramebuffer, invalidateSubFramebuffer, framebufferDiscard to manual functions and copy the enum arrays to Vectors before calling into ANGLE. * Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp: (WebKit::RemoteGraphicsContextGL::drawBuffers): (WebKit::RemoteGraphicsContextGL::drawBuffersEXT): (WebKit::RemoteGraphicsContextGL::invalidateFramebuffer): (WebKit::RemoteGraphicsContextGL::invalidateSubFramebuffer): (WebKit::RemoteGraphicsContextGL::framebufferDiscard): * Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.h: * Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.messages.in: * Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.h: (framebufferTextureLayer): (drawRangeElements): (getTranslatedShaderSourceANGLE): (disableFoveation): (invalidateFramebuffer): Deleted. (invalidateSubFramebuffer): Deleted. (drawBuffers): Deleted. (drawBuffersEXT): Deleted. (framebufferDiscard): Deleted. * Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp: (WebKit::RemoteGraphicsContextGLProxy::drawBuffers): (WebKit::RemoteGraphicsContextGLProxy::drawBuffersEXT): (WebKit::RemoteGraphicsContextGLProxy::invalidateFramebuffer): (WebKit::RemoteGraphicsContextGLProxy::invalidateSubFramebuffer): (WebKit::RemoteGraphicsContextGLProxy::framebufferDiscard): * Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h: * Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxyFunctionsGenerated.cpp: (WebKit::RemoteGraphicsContextGLProxy::invalidateFramebuffer): Deleted. (WebKit::RemoteGraphicsContextGLProxy::invalidateSubFramebuffer): Deleted. (WebKit::RemoteGraphicsContextGLProxy::drawBuffers): Deleted. (WebKit::RemoteGraphicsContextGLProxy::drawBuffersEXT): Deleted. (WebKit::RemoteGraphicsContextGLProxy::framebufferDiscard): Deleted. * Tools/Scripts/generate-gpup-webgl: (webkit_ipc_cpp_proxy_impl.process_out_args): Originally-landed-as: 289651.532@safari-7621-branch (726be12b8c74). rdar://157791727 Canonical link: https://commits.webkit.org/298468@main Canonical link: https://commits.webkit.org/298234.49@webkitglib/2.50 Commit: 311e7daa2d87184698b22149949904f10672664a https://github.com/WebKit/WebKit/commit/311e7daa2d87184698b22149949904f10672664a Author: Kimmo Kinnunen <kkinnu...@apple.com> Date: 2025-08-28 (Thu, 28 Aug 2025) Changed paths: M Source/WebCore/platform/graphics/GraphicsContextGL.h M Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp M Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.h M Source/WebCore/platform/graphics/cocoa/GraphicsContextGLCocoa.h M Source/WebCore/platform/graphics/cocoa/GraphicsContextGLCocoa.mm M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.h M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.messages.in A Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.cpp M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.h M Source/WebKit/Platform/IPC/Connection.h M Source/WebKit/Platform/IPC/StreamServerConnection.h M Source/WebKit/Shared/API/Cocoa/RemoteObjectRegistry.mm M Source/WebKit/Sources.txt M Source/WebKit/WebKit.xcodeproj/project.pbxproj M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxyFunctionsGenerated.cpp M Tools/Scripts/generate-gpup-webgl Log Message: ----------- Cherry-pick 298553@main (c8332b7ff7b2). https://bugs.webkit.org/show_bug.cgi?id=297213 WebGL: Use MESSAGE_CHECK in RemoteGraphicsContextGL https://bugs.webkit.org/show_bug.cgi?id=297213 rdar://158032389 Reviewed by Dan Glastonbury. Support more standard MESSAGE_CHECK to run domain-specific validation in WebGL GPUP implementation. Move the generated implementations from the RemoteGraphicsContextGLFunctionsGenerated.h to the new file RemoteGraphicsContextGLFunctionsGenerated.cpp to be able to use the macro. Needs auxiliary changes: - Support EnableBy in .message.in, was edited manually - Support not using size_t in .message.in, was edited manually - Add GraphicsContextGL::deleteExternalSync() inside WebXR ifdefs as expected. Remove the use from GraphicsContextGLCocoa.mm to do so. * Source/WebCore/platform/graphics/GraphicsContextGL.h: * Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp: * Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.h: * Source/WebCore/platform/graphics/cocoa/GraphicsContextGLCocoa.h: * Source/WebCore/platform/graphics/cocoa/GraphicsContextGLCocoa.mm: (WebCore::GraphicsContextGLCocoa::createExternalSync): (WebCore::GraphicsContextGLCocoa::createMetalSharedEventEGLSync): (WebCore::GraphicsContextGLCocoa::insertFinishedSignalOrInvoke): * Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp: (WebKit::RemoteGraphicsContextGL::messageCheck): Deleted. * Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.h: * Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.messages.in: * Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.h: (activeTexture): Deleted. (attachShader): Deleted. (bindAttribLocation): Deleted. (bindBuffer): Deleted. (bindFramebuffer): Deleted. (bindRenderbuffer): Deleted. (bindTexture): Deleted. (blendColor): Deleted. (blendEquation): Deleted. (blendEquationSeparate): Deleted. (blendFunc): Deleted. (blendFuncSeparate): Deleted. (checkFramebufferStatus): Deleted. (clear): Deleted. (clearColor): Deleted. (clearDepth): Deleted. (clearStencil): Deleted. (colorMask): Deleted. (compileShader): Deleted. (copyTexImage2D): Deleted. (copyTexSubImage2D): Deleted. (createBuffer): Deleted. (createFramebuffer): Deleted. (createProgram): Deleted. (createRenderbuffer): Deleted. (createShader): Deleted. (createTexture): Deleted. (cullFace): Deleted. (deleteBuffer): Deleted. (deleteFramebuffer): Deleted. (deleteProgram): Deleted. (deleteRenderbuffer): Deleted. (deleteShader): Deleted. (deleteTexture): Deleted. (depthFunc): Deleted. (depthMask): Deleted. (depthRange): Deleted. (detachShader): Deleted. (disable): Deleted. (disableVertexAttribArray): Deleted. (drawArrays): Deleted. (drawElements): Deleted. (enable): Deleted. (enableVertexAttribArray): Deleted. (finish): Deleted. (flush): Deleted. (framebufferRenderbuffer): Deleted. (framebufferTexture2D): Deleted. (frontFace): Deleted. (generateMipmap): Deleted. (getActiveAttrib): Deleted. (getActiveUniform): Deleted. (getAttribLocation): Deleted. (getBufferParameteri): Deleted. (getString): Deleted. (getFloatv): Deleted. (getIntegerv): Deleted. (getIntegeri_v): Deleted. (getInteger64): Deleted. (getInteger64i): Deleted. (getProgrami): Deleted. (getBooleanv): Deleted. (getFramebufferAttachmentParameteri): Deleted. (getProgramInfoLog): Deleted. (getRenderbufferParameteri): Deleted. (getShaderi): Deleted. (getShaderInfoLog): Deleted. (getShaderPrecisionFormat): Deleted. (getShaderSource): Deleted. (getTexParameterf): Deleted. (getTexParameteri): Deleted. (getUniformfv): Deleted. (getUniformiv): Deleted. (getUniformuiv): Deleted. (getUniformLocation): Deleted. (getVertexAttribOffset): Deleted. (hint): Deleted. (isBuffer): Deleted. (isEnabled): Deleted. (isFramebuffer): Deleted. (isProgram): Deleted. (isRenderbuffer): Deleted. (isShader): Deleted. (isTexture): Deleted. (lineWidth): Deleted. (linkProgram): Deleted. (pixelStorei): Deleted. (polygonOffset): Deleted. (renderbufferStorage): Deleted. (sampleCoverage): Deleted. (scissor): Deleted. (shaderSource): Deleted. (stencilFunc): Deleted. (stencilFuncSeparate): Deleted. (stencilMask): Deleted. (stencilMaskSeparate): Deleted. (stencilOp): Deleted. (stencilOpSeparate): Deleted. (texParameterf): Deleted. (texParameteri): Deleted. (uniform1f): Deleted. (uniform1fv): Deleted. (uniform1i): Deleted. (uniform1iv): Deleted. (uniform2f): Deleted. (uniform2fv): Deleted. (uniform2i): Deleted. (uniform2iv): Deleted. (uniform3f): Deleted. (uniform3fv): Deleted. (uniform3i): Deleted. (uniform3iv): Deleted. (uniform4f): Deleted. (uniform4fv): Deleted. (uniform4i): Deleted. (uniform4iv): Deleted. (uniformMatrix2fv): Deleted. (uniformMatrix3fv): Deleted. (uniformMatrix4fv): Deleted. (useProgram): Deleted. (validateProgram): Deleted. (vertexAttrib1f): Deleted. (vertexAttrib1fv): Deleted. (vertexAttrib2f): Deleted. (vertexAttrib2fv): Deleted. (vertexAttrib3f): Deleted. (vertexAttrib3fv): Deleted. (vertexAttrib4f): Deleted. (vertexAttrib4fv): Deleted. (vertexAttribPointer): Deleted. (viewport): Deleted. (bufferData0): Deleted. (bufferData1): Deleted. (bufferSubData): Deleted. (readPixelsBufferObject): Deleted. (texImage2D0): Deleted. (texImage2D1): Deleted. (texSubImage2D0): Deleted. (texSubImage2D1): Deleted. (compressedTexImage2D0): Deleted. (compressedTexImage2D1): Deleted. (compressedTexSubImage2D0): Deleted. (compressedTexSubImage2D1): Deleted. (drawArraysInstanced): Deleted. (drawElementsInstanced): Deleted. (vertexAttribDivisor): Deleted. (createVertexArray): Deleted. (deleteVertexArray): Deleted. (isVertexArray): Deleted. (bindVertexArray): Deleted. (copyBufferSubData): Deleted. (blitFramebuffer): Deleted. (framebufferTextureLayer): Deleted. (readBuffer): Deleted. (renderbufferStorageMultisample): Deleted. (texStorage2D): Deleted. (texStorage3D): Deleted. (texImage3D0): Deleted. (texImage3D1): Deleted. (texSubImage3D0): Deleted. (texSubImage3D1): Deleted. (copyTexSubImage3D): Deleted. (compressedTexImage3D0): Deleted. (compressedTexImage3D1): Deleted. (compressedTexSubImage3D0): Deleted. (compressedTexSubImage3D1): Deleted. (getFragDataLocation): Deleted. (uniform1ui): Deleted. (uniform2ui): Deleted. (uniform3ui): Deleted. (uniform4ui): Deleted. (uniform1uiv): Deleted. (uniform2uiv): Deleted. (uniform3uiv): Deleted. (uniform4uiv): Deleted. (uniformMatrix2x3fv): Deleted. (uniformMatrix3x2fv): Deleted. (uniformMatrix2x4fv): Deleted. (uniformMatrix4x2fv): Deleted. (uniformMatrix3x4fv): Deleted. (uniformMatrix4x3fv): Deleted. (vertexAttribI4i): Deleted. (vertexAttribI4iv): Deleted. (vertexAttribI4ui): Deleted. (vertexAttribI4uiv): Deleted. (vertexAttribIPointer): Deleted. (drawRangeElements): Deleted. (clearBufferiv): Deleted. (clearBufferuiv): Deleted. (clearBufferfv): Deleted. (clearBufferfi): Deleted. (createQuery): Deleted. (deleteQuery): Deleted. (isQuery): Deleted. (beginQuery): Deleted. (endQuery): Deleted. (getQuery): Deleted. (getQueryObjectui): Deleted. (createSampler): Deleted. (deleteSampler): Deleted. (isSampler): Deleted. (bindSampler): Deleted. (samplerParameteri): Deleted. (samplerParameterf): Deleted. (getSamplerParameterf): Deleted. (getSamplerParameteri): Deleted. (fenceSync): Deleted. (isSync): Deleted. (deleteSync): Deleted. (clientWaitSync): Deleted. (waitSync): Deleted. (getSynci): Deleted. (createTransformFeedback): Deleted. (deleteTransformFeedback): Deleted. (isTransformFeedback): Deleted. (bindTransformFeedback): Deleted. (beginTransformFeedback): Deleted. (endTransformFeedback): Deleted. (transformFeedbackVaryings): Deleted. (getTransformFeedbackVarying): Deleted. (pauseTransformFeedback): Deleted. (resumeTransformFeedback): Deleted. (bindBufferBase): Deleted. (bindBufferRange): Deleted. (getUniformIndices): Deleted. (getActiveUniforms): Deleted. (getUniformBlockIndex): Deleted. (getActiveUniformBlockName): Deleted. (uniformBlockBinding): Deleted. (getActiveUniformBlockiv): Deleted. (getTranslatedShaderSourceANGLE): Deleted. (createQueryEXT): Deleted. (deleteQueryEXT): Deleted. (isQueryEXT): Deleted. (beginQueryEXT): Deleted. (endQueryEXT): Deleted. (queryCounterEXT): Deleted. (getQueryiEXT): Deleted. (getQueryObjectiEXT): Deleted. (getQueryObjectui64EXT): Deleted. (getInteger64EXT): Deleted. (enableiOES): Deleted. (disableiOES): Deleted. (blendEquationiOES): Deleted. (blendEquationSeparateiOES): Deleted. (blendFunciOES): Deleted. (blendFuncSeparateiOES): Deleted. (colorMaskiOES): Deleted. (drawArraysInstancedBaseInstanceANGLE): Deleted. (drawElementsInstancedBaseVertexBaseInstanceANGLE): Deleted. (clipControlEXT): Deleted. (provokingVertexANGLE): Deleted. (polygonModeANGLE): Deleted. (polygonOffsetClampEXT): Deleted. (renderbufferStorageMultisampleANGLE): Deleted. (getInternalformativ): Deleted. (setDrawingBufferColorSpace): Deleted. (createExternalImage): Deleted. (deleteExternalImage): Deleted. (bindExternalImage): Deleted. (createExternalSync): Deleted. (deleteExternalSync): Deleted. (enableRequiredWebXRExtensions): Deleted. (addFoveation): Deleted. (enableFoveation): Deleted. (disableFoveation): Deleted. (framebufferResolveRenderbuffer): Deleted. * Source/WebKit/Platform/IPC/Connection.h: (IPC::Connection::isIncomingMessagesThrottlingEnabled const): (IPC::markCurrentlyDispatchedMessageAsInvalid): * Source/WebKit/Platform/IPC/StreamServerConnection.h: (IPC::markCurrentlyDispatchedMessageAsInvalid): * Source/WebKit/Shared/API/Cocoa/RemoteObjectRegistry.mm: (WebKit::RemoteObjectRegistry::callReplyBlock): * Source/WebKit/Sources.txt: * Source/WebKit/WebKit.xcodeproj/project.pbxproj: * Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h: * Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxyFunctionsGenerated.cpp: (WebKit::RemoteGraphicsContextGLProxy::createExternalSync): * Tools/Scripts/generate-gpup-webgl: (cpp_func): (cpp_func.__init__): (webkit_ipc_msg): (webkit_ipc_msg.__init__): (webkit_ipc_msg.__str__): (webkit_ipc_cpp_impl): (webkit_ipc_cpp_impl.__init__): (webkit_ipc_cpp_impl.process_in_arg): (webkit_ipc_cpp_impl.process_out_arg): (webkit_ipc_cpp_impl.process_return_value): (webkit_ipc_cpp_impl.get_declaration): (webkit_ipc_cpp_impl.get_definition): (ns): (context_cpp_webkit_ipc_generator.close_cond): (context_cpp_webkit_ipc_generator): (context_cpp_webkit_ipc_generator.get_declarations): (context_cpp_webkit_ipc_generator.get_definitions): (context_cpp_webkit_ipc_generator.generate): (create_cpp_arg_list): (create_cpp_func): (main): (webkit_ipc_cpp_impl.__str__): Deleted. (webkit_ipc_cpp_impl.ns): Deleted. (context_cpp_webkit_ipc_generator.get_functions): Deleted. Canonical link: https://commits.webkit.org/298553@main Canonical link: https://commits.webkit.org/298234.50@webkitglib/2.50 Commit: ba502413ea16671c8bbea0f9c12489da482a8da9 https://github.com/WebKit/WebKit/commit/ba502413ea16671c8bbea0f9c12489da482a8da9 Author: Carlos Garcia Campos <cgar...@igalia.com> Date: 2025-08-28 (Thu, 28 Aug 2025) Changed paths: M Source/WebCore/SourcesGTK.txt M Source/WebCore/SourcesWPE.txt M Source/WebCore/platform/TextureMapper.cmake A Source/WebCore/platform/graphics/gbm/DRMDevice.h M Source/WebCore/platform/graphics/gbm/DRMDeviceManager.cpp M Source/WebCore/platform/graphics/gbm/DRMDeviceManager.h R Source/WebCore/platform/graphics/gbm/DRMDeviceNode.cpp R Source/WebCore/platform/graphics/gbm/DRMDeviceNode.h A Source/WebCore/platform/graphics/gbm/GBMDevice.cpp A Source/WebCore/platform/graphics/gbm/GBMDevice.h M Source/WebCore/platform/graphics/gbm/GraphicsContextGLTextureMapperGBM.cpp M Source/WebCore/platform/graphics/gbm/MemoryMappedGPUBuffer.cpp M Source/WebCore/platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp M Source/WebKit/GPUProcess/GPUProcessCreationParameters.h M Source/WebKit/GPUProcess/GPUProcessCreationParameters.serialization.in M Source/WebKit/GPUProcess/glib/GPUProcessGLib.cpp M Source/WebKit/PlatformGTK.cmake M Source/WebKit/PlatformWPE.cmake M Source/WebKit/Shared/WebProcessCreationParameters.h M Source/WebKit/Shared/WebProcessCreationParameters.serialization.in A Source/WebKit/Shared/gbm/DRMDevice.serialization.in M Source/WebKit/Shared/glib/RendererBufferFormat.h M Source/WebKit/Shared/glib/RendererBufferFormat.serialization.in M Source/WebKit/SourcesGTK.txt M Source/WebKit/SourcesWPE.txt M Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp M Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp R Source/WebKit/UIProcess/glib/DRMDevice.cpp R Source/WebKit/UIProcess/glib/DRMDevice.h A Source/WebKit/UIProcess/glib/DRMMainDevice.cpp A Source/WebKit/UIProcess/glib/DRMMainDevice.h M Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp M Source/WebKit/UIProcess/gtk/AcceleratedBackingStore.cpp M Source/WebKit/UIProcess/wpe/WebPageProxyWPE.cpp M Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/AcceleratedSurface.cpp M Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/AcceleratedSurface.h M Source/WebKit/WebProcess/glib/WebProcessGLib.cpp Log Message: ----------- Cherry-pick 298556@main (4d8618153bdc). https://bugs.webkit.org/show_bug.cgi?id=296929 [GTK][WPE] Simplify DRM devices handling https://bugs.webkit.org/show_bug.cgi?id=296929 Reviewed by Nikolas Zimmermann. Add DRMDevice helper struct containing a primary and render node and use it everywhere instead of specific DRM node paths. This way the DRMDeviceManager doesn't need to scan the devices again to find the nodes, it receives a DRMDevice with the nodes already set. Canonical link: https://commits.webkit.org/298556@main Canonical link: https://commits.webkit.org/298234.51@webkitglib/2.50 Commit: dfab2581dd42debb93320a6370e47dc626ca293c https://github.com/WebKit/WebKit/commit/dfab2581dd42debb93320a6370e47dc626ca293c Author: Carlos Garcia Campos <cgar...@igalia.com> Date: 2025-08-28 (Thu, 28 Aug 2025) Changed paths: M Source/WebCore/platform/graphics/PlatformDisplay.cpp M Source/WebCore/platform/graphics/PlatformDisplay.h M Source/WebCore/platform/graphics/egl/GLContext.cpp M Source/WebCore/platform/graphics/egl/GLContext.h M Source/WebCore/platform/graphics/egl/GLContextLibWPE.cpp M Source/WebCore/platform/graphics/egl/GLDisplay.cpp M Source/WebCore/platform/graphics/egl/GLDisplay.h M Source/WebCore/platform/graphics/egl/GLFence.cpp M Source/WebCore/platform/graphics/egl/PlatformDisplayDefault.cpp M Source/WebCore/platform/graphics/egl/PlatformDisplayDefault.h M Source/WebCore/platform/graphics/egl/PlatformDisplaySurfaceless.cpp M Source/WebCore/platform/graphics/egl/PlatformDisplaySurfaceless.h M Source/WebCore/platform/graphics/gbm/PlatformDisplayGBM.cpp M Source/WebCore/platform/graphics/gbm/PlatformDisplayGBM.h M Source/WebCore/platform/graphics/libwpe/PlatformDisplayLibWPE.cpp M Source/WebCore/platform/graphics/libwpe/PlatformDisplayLibWPE.h M Source/WebCore/platform/graphics/texmap/BitmapTexture.cpp M Source/WebCore/platform/graphics/win/PlatformDisplayWin.cpp M Source/WebCore/platform/graphics/win/PlatformDisplayWin.h M Source/WebKit/GPUProcess/graphics/wc/WCSceneContext.cpp M Source/WebKit/UIProcess/XR/openxr/OpenXRLayer.cpp M Source/WebKit/UIProcess/gtk/Display.h M Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHostTextureMapper.cpp M Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/ThreadedCompositor.cpp Log Message: ----------- Cherry-pick 298560@main (9969537eb291). https://bugs.webkit.org/show_bug.cgi?id=297215 [CoordinatedGraphics] Remove GLContext dependency on PlatformDisplay https://bugs.webkit.org/show_bug.cgi?id=297215 Reviewed by Miguel Gomez. GLContext is keeping a plain reference to PlatformDisplay because it was assumed that global shared display was the only possible PlatformDisplay. This patch makes GLDisplay reference counted and GLContext now takes a weak reference of a GLDisplay instead of a plain reference of a PlatformDisplay. We still keep the constructors taking a PlatformDisplay for convenience. Canonical link: https://commits.webkit.org/298560@main Canonical link: https://commits.webkit.org/298234.52@webkitglib/2.50 Commit: 780255d07334fe7e0047f0e07456d459c91a76e1 https://github.com/WebKit/WebKit/commit/780255d07334fe7e0047f0e07456d459c91a76e1 Author: Adrian Perez de Castro <ape...@igalia.com> Date: 2025-08-28 (Thu, 28 Aug 2025) Changed paths: M Source/WebKit/Shared/glib/RendererBufferFormat.h M Source/WebKit/WPEPlatform/CMakeLists.txt A Source/WebKit/WPEPlatform/wpe/WPEBufferAndroid.cpp A Source/WebKit/WPEPlatform/wpe/WPEBufferAndroid.h M Source/WebKit/WPEPlatform/wpe/WPEConfig.h.in M Source/WebKit/WPEPlatform/wpe/wpe-platform.h M Source/cmake/OptionsWPE.cmake Log Message: ----------- Cherry-pick 298619@main (fd72faeef06a). https://bugs.webkit.org/show_bug.cgi?id=294317 [WPEPlatform] Introduce support for Android's AHardwareBuffer https://bugs.webkit.org/show_bug.cgi?id=294317 Reviewed by Carlos Garcia Campos. Introduce a new WPEBufferAndroid subclass of WPEBuffer that wraps an AHardwareBuffer instance. Similarly to WPEBufferDMABuf, it supports setting rendering and release fences (as file descriptors). The WPEBuffer.import_to_pixels virtual method is left unimplemented for now, but it should be possible to provide the operation for buffers created with AHARDWAREBUFFER_USAGE_CPU_READ_{RARELY,OFTEN} in the future. * Source/WebKit/Shared/glib/RendererBufferFormat.h: * Source/WebKit/WPEPlatform/CMakeLists.txt: * Source/WebKit/WPEPlatform/wpe/WPEBufferAndroid.cpp: Added. (createImageEGL15): (createImageKHRImageBase): (wpeBufferAndroidDisposeEGLImageIfNeeded): (wpeBufferAndroidDispose): (wpeBufferAndroidImportToEGLImage): (wpe_buffer_android_class_init): (wpe_buffer_android_new): (wpe_buffer_android_get_hardware_buffer): (wpe_buffer_android_get_format): * Source/WebKit/WPEPlatform/wpe/WPEBufferAndroid.h: Copied from Source/WebKit/WPEPlatform/wpe/WPEConfig.h.in. * Source/WebKit/WPEPlatform/wpe/WPEConfig.h.in: * Source/WebKit/WPEPlatform/wpe/wpe-platform.h: * Source/cmake/OptionsWPE.cmake: Canonical link: https://commits.webkit.org/298619@main Canonical link: https://commits.webkit.org/298234.53@webkitglib/2.50 Commit: 9c22460e4388ad63b2a38e064c8146ab6179b2e6 https://github.com/WebKit/WebKit/commit/9c22460e4388ad63b2a38e064c8146ab6179b2e6 Author: Carlos Garcia Campos <cgar...@igalia.com> Date: 2025-08-28 (Thu, 28 Aug 2025) Changed paths: M Source/WebCore/platform/graphics/gbm/GraphicsContextGLTextureMapperGBM.cpp M Source/WebCore/platform/graphics/gbm/GraphicsContextGLTextureMapperGBM.h M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLGBM.cpp Log Message: ----------- Cherry-pick 298675@main (85e4462c2a7f). https://bugs.webkit.org/show_bug.cgi?id=297267 [CoordinatedGraphics] Prefer to use ANGLE API to create the fence for WebGL https://bugs.webkit.org/show_bug.cgi?id=297267 Reviewed by Alejandro G. Castro. We currently use GLFence which is more convenient and works, but if exportable fences are supported, we could use the ANGLE api to create the fence, export it to and fd and then import it from the compositor. Using ANGLE API we ensure all internal state is handled in sync when the fence is added to the context. Canonical link: https://commits.webkit.org/298675@main Canonical link: https://commits.webkit.org/298234.54@webkitglib/2.50 Commit: b479c1c3afcc6ac20e3080be8ab656e860190328 https://github.com/WebKit/WebKit/commit/b479c1c3afcc6ac20e3080be8ab656e860190328 Author: Carlos Garcia Campos <cgar...@igalia.com> Date: 2025-08-28 (Thu, 28 Aug 2025) Changed paths: M Source/WebCore/platform/graphics/egl/GLContext.cpp M Source/WebCore/platform/graphics/egl/GLContext.h M Source/WebCore/platform/graphics/egl/GLContextWrapper.h M Source/WebCore/platform/graphics/egl/GLFence.cpp M Source/WebCore/platform/graphics/egl/GLFence.h M Source/WebCore/platform/graphics/egl/GLFenceEGL.cpp M Source/WebCore/platform/graphics/egl/GLFenceEGL.h M Source/WebCore/platform/graphics/gbm/GraphicsContextGLTextureMapperGBM.cpp M Source/WebCore/platform/graphics/skia/GraphicsContextSkia.cpp M Source/WebCore/platform/graphics/skia/ImageBufferSkiaAcceleratedBackend.cpp M Source/WebCore/platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp M Source/WebCore/platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.h M Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferDMABuf.cpp M Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferNativeImage.cpp M Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedTileBuffer.cpp M Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/AcceleratedSurface.cpp Log Message: ----------- Cherry-pick 298879@main (f36176a1c425). https://bugs.webkit.org/show_bug.cgi?id=297315 [GTK][WPE] Do not use PlartformDisplay::sharedDisplay in GLFenceEGL https://bugs.webkit.org/show_bug.cgi?id=297315 Reviewed by Miguel Gomez. Create the GLFence with a GLDisplay and make GLFenceEGL keep a weak reference. This allows to use GLFence for other displays too. This patch removes the GLFence capabilities, since we can check all the capabilities from the GLDisplay or current context. Canonical link: https://commits.webkit.org/298879@main Canonical link: https://commits.webkit.org/298234.55@webkitglib/2.50 Commit: 1ce3144a2e447f9f6cd7bdecaf7deb645bf93036 https://github.com/WebKit/WebKit/commit/1ce3144a2e447f9f6cd7bdecaf7deb645bf93036 Author: Carlos Garcia Campos <cgar...@igalia.com> Date: 2025-08-28 (Thu, 28 Aug 2025) Changed paths: M Source/WebKit/UIProcess/XR/openxr/PlatformXROpenXR.cpp M Source/WebKit/UIProcess/XR/openxr/PlatformXROpenXR.h Log Message: ----------- Cherry-pick 298948@main (356f67eae831). https://bugs.webkit.org/show_bug.cgi?id=297451 [OpenXR] Use a WorkQueue for the render loop https://bugs.webkit.org/show_bug.cgi?id=297451 Reviewed by Fujii Hironori. We currently use a thread to poll the events and process the frame, but several objects are created in main thread and used from both threads or can be released in both threads too. Using a WorkQueue we can move all the session handling to the render thread and simplify the render loop. Canonical link: https://commits.webkit.org/298948@main Canonical link: https://commits.webkit.org/298234.56@webkitglib/2.50 Commit: 7808ee384d0d22f8215fd086bdf99faa90b7467d https://github.com/WebKit/WebKit/commit/7808ee384d0d22f8215fd086bdf99faa90b7467d Author: Simon Pena <sp...@igalia.com> Date: 2025-08-28 (Thu, 28 Aug 2025) Changed paths: M Source/WebKit/UIProcess/XR/openxr/PlatformXROpenXR.cpp Log Message: ----------- Cherry-pick 298952@main (07c0de003086). https://bugs.webkit.org/show_bug.cgi?id=297658 [OpenXR] Unified sources build fix https://bugs.webkit.org/show_bug.cgi?id=297658 Unreviewed build fix. Added missing WorkQueue include. * Source/WebKit/UIProcess/XR/openxr/PlatformXROpenXR.cpp: Canonical link: https://commits.webkit.org/298952@main Canonical link: https://commits.webkit.org/298234.57@webkitglib/2.50 Commit: 5d110860b981785d27df49a3087e1d91b52fe0ae https://github.com/WebKit/WebKit/commit/5d110860b981785d27df49a3087e1d91b52fe0ae Author: Carlos Garcia Campos <cgar...@igalia.com> Date: 2025-08-28 (Thu, 28 Aug 2025) Changed paths: M Source/WebKit/UIProcess/XR/openxr/OpenXRLayer.cpp M Source/WebKit/UIProcess/XR/openxr/OpenXRLayer.h M Source/WebKit/UIProcess/XR/openxr/PlatformXROpenXR.cpp M Source/WebKit/UIProcess/XR/openxr/PlatformXROpenXR.h Log Message: ----------- Cherry-pick 298997@main (3cb8dfda77ea). https://bugs.webkit.org/show_bug.cgi?id=297651 [OpenXR] Do not use PlatformDisplay for XRSession graphics https://bugs.webkit.org/show_bug.cgi?id=297651 Reviewed by Fujii Hironori. We can use GLDisplay directly, since PlatformDisplay is designed to be a shared display in the web process. Canonical link: https://commits.webkit.org/298997@main Canonical link: https://commits.webkit.org/298234.58@webkitglib/2.50 Commit: 470570a0aaa8d2324f92ed65b687a6f84624d018 https://github.com/WebKit/WebKit/commit/470570a0aaa8d2324f92ed65b687a6f84624d018 Author: Carlos Garcia Campos <cgar...@igalia.com> Date: 2025-08-28 (Thu, 28 Aug 2025) Changed paths: M Source/WebCore/platform/graphics/egl/GLDisplay.cpp M Source/WebCore/platform/graphics/egl/GLDisplay.h Log Message: ----------- Cherry-pick 299002@main (e140900bf11a). https://bugs.webkit.org/show_bug.cgi?id=297715 [GTK][WPE] GLDisplay::dmabufFormats should be called once per instance not per process https://bugs.webkit.org/show_bug.cgi?id=297715 Reviewed by Fujii Hironori. We are using a static once flag, which means we only initialize the formats for the first instance created in the same process. The same happens with GLDisplay::dmabufFormatsForVideo. Canonical link: https://commits.webkit.org/299002@main Canonical link: https://commits.webkit.org/298234.59@webkitglib/2.50 Commit: 5ff22a333fd4ce66def0c3322a8946353232e8f2 https://github.com/WebKit/WebKit/commit/5ff22a333fd4ce66def0c3322a8946353232e8f2 Author: Carlos Garcia Campos <cgar...@igalia.com> Date: 2025-08-28 (Thu, 28 Aug 2025) Changed paths: M Source/WebKit/UIProcess/XR/openxr/OpenXRLayer.cpp M Source/WebKit/UIProcess/XR/openxr/OpenXRLayer.h M Source/WebKit/UIProcess/XR/openxr/OpenXRSwapchain.h M Source/WebKit/UIProcess/XR/openxr/PlatformXROpenXR.cpp M Source/WebKit/UIProcess/XR/openxr/PlatformXROpenXR.h Log Message: ----------- Cherry-pick 299044@main (8829cb72321e). https://bugs.webkit.org/show_bug.cgi?id=297717 [OpenXR] Fallback to use GBM when EGL extension MESA_image_dma_buf_export is not available https://bugs.webkit.org/show_bug.cgi?id=297717 Reviewed by Adrian Perez de Castro. We are currently using MESA_image_dma_buf_export unconditionally. When not available we can use GBM to allocate our own buffer for the web process to render into and then we copy it to the openxr texture on end frame. Canonical link: https://commits.webkit.org/299044@main Canonical link: https://commits.webkit.org/298234.60@webkitglib/2.50 Commit: 84e9760b3322eee77dbad793f95cdc448930f7d6 https://github.com/WebKit/WebKit/commit/84e9760b3322eee77dbad793f95cdc448930f7d6 Author: Carlos Garcia Campos <cgar...@igalia.com> Date: 2025-08-28 (Thu, 28 Aug 2025) Changed paths: M Source/WebCore/Modules/webxr/WebXROpaqueFramebuffer.cpp M Source/WebCore/Modules/webxr/WebXROpaqueFramebuffer.h M Source/WebCore/Modules/webxr/WebXROpaqueFramebufferCocoa.cpp Log Message: ----------- Cherry-pick 299152@main (46f0a4c36be8). https://bugs.webkit.org/show_bug.cgi?id=297891 [OpenXR] Do not duplicate the DMA-BUF file descriptors before importing the external texture https://bugs.webkit.org/show_bug.cgi?id=297891 Reviewed by Sergio Villar Senin. We should move the file descriptors in makeExternalImageSource instead. Canonical link: https://commits.webkit.org/299152@main Canonical link: https://commits.webkit.org/298234.61@webkitglib/2.50 Commit: 5e6aeba9dbe7fc8fb5da309863f9ee4160f288b8 https://github.com/WebKit/WebKit/commit/5e6aeba9dbe7fc8fb5da309863f9ee4160f288b8 Author: Sergio Villar Senin <svil...@igalia.com> Date: 2025-08-28 (Thu, 28 Aug 2025) Changed paths: M Source/WebCore/Modules/webxr/WebXROpaqueFramebuffer.cpp M Source/WebCore/Modules/webxr/WebXROpaqueFramebuffer.h M Source/WebCore/Modules/webxr/WebXRWebGLLayer.cpp M Source/WebCore/platform/graphics/GraphicsContextGL.h M Source/WebCore/platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp M Source/WebCore/platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.h M Source/WebCore/platform/xr/PlatformXR.h M Source/WebKit/Shared/XR/XRDeviceLayer.h M Source/WebKit/Shared/XR/XRSystem.serialization.in M Source/WebKit/UIProcess/XR/openxr/PlatformXROpenXR.cpp M Source/WebKit/WebProcess/XR/PlatformXRSystemProxy.cpp Log Message: ----------- Cherry-pick 299154@main (b50c48fd07c7). https://bugs.webkit.org/show_bug.cgi?id=297140 [WebXR][OpenXR] Add EGL fences for WebGL content https://bugs.webkit.org/show_bug.cgi?id=297140 Reviewed by Nikolas Zimmermann. Currently there is no guarantee that the WebXR WebGL frames are completely rendered before they're submitted to the OpenXR compositor. That's why the WebXROpaqueFramebuffer does a glFinish(), blocking the WebProcess before returning from endFrame. A much better solution is to use EGL fences. The WebProcess will create a fence in endFrame(). Then that fence is exported and shared to the UI process (via a file descriptor) in the submitFrame() call. The UI process then will call wait in the fence before submitting the frame to OpenXR. Although OpenXR runtimes guarantee that all the GPU commands are finished before displaying the contents of the textures, that does not apply to the cases in which there are multiple contexts accessing the texture, as it happens in WebKit due to the multiprocess architecture. Co-authored-by: Carlos Garcia Campos <cgar...@igalia.com> Canonical link: https://commits.webkit.org/299154@main Canonical link: https://commits.webkit.org/298234.62@webkitglib/2.50 Commit: 6bf0241ef3afb2c5f1732f7ea54786811f3c55fa https://github.com/WebKit/WebKit/commit/6bf0241ef3afb2c5f1732f7ea54786811f3c55fa Author: Sergio Villar Senin <svil...@igalia.com> Date: 2025-08-28 (Thu, 28 Aug 2025) Changed paths: M Source/WebKit/SourcesGTK.txt M Source/WebKit/SourcesWPE.txt M Source/WebKit/UIProcess/XR/openxr/OpenXRExtensions.cpp M Source/WebKit/UIProcess/XR/openxr/OpenXRExtensions.h A Source/WebKit/UIProcess/XR/openxr/OpenXRInput.cpp A Source/WebKit/UIProcess/XR/openxr/OpenXRInput.h A Source/WebKit/UIProcess/XR/openxr/OpenXRInputMappings.h A Source/WebKit/UIProcess/XR/openxr/OpenXRInputSource.cpp A Source/WebKit/UIProcess/XR/openxr/OpenXRInputSource.h M Source/WebKit/UIProcess/XR/openxr/OpenXRUtils.h M Source/WebKit/UIProcess/XR/openxr/PlatformXROpenXR.cpp M Source/WebKit/UIProcess/XR/openxr/PlatformXROpenXR.h Log Message: ----------- Cherry-pick 299200@main (befb287e6ce7). https://bugs.webkit.org/show_bug.cgi?id=297951 [WebXR][OpenXR] Add input support https://bugs.webkit.org/show_bug.cgi?id=297951 Reviewed by Carlos Garcia Campos. This implements the OpenXR machinery required to retrieve the available input methods for WebXR sessions as long as the information associated to them, like poses, status of buttons, axes, etc... The OpenXR coordinator just need to instance an OpenXRInput object and then ask it to collect the input sources information on every frame. The OpenXRInput object in turn instances as many OpenXRInputSources as required, typically two (one for each hand). Those input sources are the ones that finally query the state of the defined input actions. In order to have all the interaction profiles information in a single place a OpenXRInputMappings header file was created. That would store all the information about the supported interaction profiles and their suggested bindings for the different hardware components they support. So far we define two supported profiles, the hand interaction profile (useful for hand tracking only devices) and the generic simple profile from Khronos which must be supported by all OpenXR runtimes. These changes required converting the OpenXRExtensions object into a singleton as it needs to be accessed by the OpenXRInputSources as well (to check the availability of extensions). * Source/WebKit/SourcesGTK.txt: * Source/WebKit/SourcesWPE.txt: * Source/WebKit/UIProcess/XR/openxr/OpenXRExtensions.cpp: (WebKit::OpenXRExtensions::singleton): (WebKit::OpenXRExtensions::OpenXRExtensions): (WebKit::OpenXRExtensions::create): Deleted. * Source/WebKit/UIProcess/XR/openxr/OpenXRExtensions.h: * Source/WebKit/UIProcess/XR/openxr/OpenXRInput.cpp: Added. (WebKit::OpenXRInput::create): (WebKit::OpenXRInput::OpenXRInput): (WebKit::OpenXRInput::initialize): (WebKit::OpenXRInput::collectInputSources const): (WebKit::OpenXRInput::updateInteractionProfile): * Source/WebKit/UIProcess/XR/openxr/OpenXRInput.h: Added. * Source/WebKit/UIProcess/XR/openxr/OpenXRInputMappings.h: Added. (WebKit::buttonTypeToString): (WebKit::axisTypetoString): * Source/WebKit/UIProcess/XR/openxr/OpenXRInputSource.cpp: Added. (WebKit::OpenXRInputSource::create): (WebKit::OpenXRInputSource::OpenXRInputSource): (WebKit::OpenXRInputSource::~OpenXRInputSource): (WebKit::OpenXRInputSource::initialize): (WebKit::OpenXRInputSource::suggestBindings const): (WebKit::OpenXRInputSource::collectInputSource const): (WebKit::OpenXRInputSource::updateInteractionProfile): (WebKit::OpenXRInputSource::createActionSpace const): (WebKit::OpenXRInputSource::createAction const): (WebKit::OpenXRInputSource::createButtonActions const): (WebKit::OpenXRInputSource::createBinding const): (WebKit::OpenXRInputSource::getPose const): (WebKit::OpenXRInputSource::collectButton const): (WebKit::OpenXRInputSource::collectAxis const): (WebKit::OpenXRInputSource::getActionState const): * Source/WebKit/UIProcess/XR/openxr/OpenXRInputSource.h: Added. (WebKit::OpenXRInputSource::actionSet const): * Source/WebKit/UIProcess/XR/openxr/OpenXRUtils.h: (WebKit::handednessToString): * Source/WebKit/UIProcess/XR/openxr/PlatformXROpenXR.cpp: (WebKit::OpenXRCoordinator::getPrimaryDeviceInfo): (WebKit::OpenXRCoordinator::startSession): (WebKit::OpenXRCoordinator::createInstance): (WebKit::OpenXRCoordinator::initializeDevice): (WebKit::OpenXRCoordinator::tryInitializeGraphicsBinding): (WebKit::OpenXRCoordinator::createSessionIfNeeded): (WebKit::OpenXRCoordinator::cleanupSessionAndAssociatedResources): (WebKit::OpenXRCoordinator::handleSessionStateChange): (WebKit::OpenXRCoordinator::pollEvents): (WebKit::OpenXRCoordinator::populateFrameData): (WebKit::OpenXRCoordinator::createReferenceSpacesIfNeeded): * Source/WebKit/UIProcess/XR/openxr/PlatformXROpenXR.h: Canonical link: https://commits.webkit.org/299200@main Canonical link: https://commits.webkit.org/298234.63@webkitglib/2.50 Commit: 2003e7ebb7ad64fbca7506275040e00c2c1bdc59 https://github.com/WebKit/WebKit/commit/2003e7ebb7ad64fbca7506275040e00c2c1bdc59 Author: Sergio Villar Senin <svil...@igalia.com> Date: 2025-08-28 (Thu, 28 Aug 2025) Changed paths: M Source/WebKit/UIProcess/XR/openxr/OpenXRLayer.cpp Log Message: ----------- Cherry-pick 299248@main (3d60941cd5cb). https://bugs.webkit.org/show_bug.cgi?id=298017 [WebXR][OpenXR] Do not release the OpenXR textures twice in case of error https://bugs.webkit.org/show_bug.cgi?id=298017 Reviewed by Carlos Garcia Campos. 02a244de@main incorrectly added an extra releaseImage() call in case of error during OpenXRLayer::startFrame. That's wrong because the only place where that release should happen is in endFrame() just afer creating the projection layer. That's because in OpenXR we must always call endFrame once startFrame was called even if the frame should not be rendered. * Source/WebKit/UIProcess/XR/openxr/OpenXRLayer.cpp: (WebKit::OpenXRLayerProjection::startFrame): Canonical link: https://commits.webkit.org/299248@main Canonical link: https://commits.webkit.org/298234.64@webkitglib/2.50 Commit: 6938985f8f472a83f4b7a8970e427a549bbec479 https://github.com/WebKit/WebKit/commit/6938985f8f472a83f4b7a8970e427a549bbec479 Author: Sergio Villar Senin <svil...@igalia.com> Date: 2025-08-28 (Thu, 28 Aug 2025) Changed paths: M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.cpp M Source/WebKit/UIProcess/XR/openxr/PlatformXROpenXR.cpp M Tools/Scripts/generate-gpup-webgl Log Message: ----------- Cherry-pick 299249@main (0d7a5cbd330e). https://bugs.webkit.org/show_bug.cgi?id=298018 [WebXR][OpenXR] Hand interaction extension is never enabled https://bugs.webkit.org/show_bug.cgi?id=298018 Reviewed by Carlos Garcia Campos. The hand interaction extension is never enabled because it was never detected as available even if the runtime supported it. The problem was that the code was not properly passing a span to the method that checks availability. Instead it was passing a char*. * Source/WebKit/UIProcess/XR/openxr/PlatformXROpenXR.cpp: (WebKit::OpenXRCoordinator::createInstance): Canonical link: https://commits.webkit.org/299249@main Canonical link: https://commits.webkit.org/298234.65@webkitglib/2.50 Compare: https://github.com/WebKit/WebKit/compare/2c20fba0edb4...6938985f8f47 To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes