Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 1d79eea18e89a2cd3f254414a3e8a9f040165314
      
https://github.com/WebKit/WebKit/commit/1d79eea18e89a2cd3f254414a3e8a9f040165314
  Author: Mike Wyrzykowski <[email protected]>
  Date:   2025-10-08 (Wed, 08 Oct 2025)

  Changed paths:
    M LayoutTests/TestExpectations
    A LayoutTests/model-element/gpup-model-element-expected.png
    A LayoutTests/model-element/gpup-model-element-expected.txt
    A LayoutTests/model-element/gpup-model-element.html
    M Source/WTF/wtf/PlatformEnableCocoa.h
    M Source/WTF/wtf/PlatformHave.h
    M Source/WebCore/Headers.cmake
    A Source/WebCore/Modules/Internal/WebCoreInternal.h
    A Source/WebCore/Modules/Internal/module.modulemap
    M Source/WebCore/Modules/Model/Implementation/DDMeshImpl.cpp
    M Source/WebCore/Modules/Model/Implementation/DDMeshImpl.h
    M Source/WebCore/Modules/Model/InternalAPI/DDMesh.h
    M Source/WebCore/Modules/Model/ModelDDInlineConverters.h
    M Source/WebCore/Modules/Model/ModelDDTypes.h
    M Source/WebCore/Modules/WebGPU/GPU.cpp
    M Source/WebCore/Modules/WebGPU/GPU.h
    M Source/WebCore/Modules/WebGPU/Implementation/WebGPUImpl.cpp
    M Source/WebCore/Modules/WebGPU/Implementation/WebGPUImpl.h
    M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPU.h
    A Source/WebCore/Modules/model-element/DDModelPlayer.h
    A Source/WebCore/Modules/model-element/DDModelPlayer.mm
    M Source/WebCore/Modules/model-element/HTMLModelElement.cpp
    M Source/WebCore/Modules/model-element/HTMLModelElement.h
    M Source/WebCore/Modules/model-element/ModelPlayer.cpp
    M Source/WebCore/Modules/model-element/ModelPlayer.h
    M Source/WebCore/Modules/model-element/ModelPlayerClient.h
    M Source/WebCore/Modules/model-element/PlaceholderModelPlayer.cpp
    M Source/WebCore/Modules/model-element/PlaceholderModelPlayer.h
    M Source/WebCore/Modules/model-element/dummy/DummyModelPlayer.cpp
    M Source/WebCore/Modules/model-element/dummy/DummyModelPlayer.h
    M Source/WebCore/Modules/model-element/scenekit/SceneKitModelLoaderUSD.mm
    M Source/WebCore/SourcesCocoa.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/html/canvas/UsdModelLoader.swift
    M Source/WebCore/page/Navigator.h
    M Source/WebCore/rendering/RenderLayerBacking.cpp
    M Source/WebCore/rendering/RenderModel.cpp
    M Source/WebGPU/WebGPU/DDMesh.h
    M Source/WebGPU/WebGPU/DDMesh.mm
    M Source/WebGPU/WebGPU/Instance.h
    M Source/WebGPU/WebGPU/Instance.mm
    M Source/WebGPU/WebGPU/UsdModelRenderer.swift
    M Source/WebGPU/WebGPU/WebGPUExt.h
    M Source/WebKit/GPUProcess/graphics/Model/ModelObjectHeap.cpp
    M Source/WebKit/GPUProcess/graphics/Model/ModelObjectHeap.h
    M Source/WebKit/GPUProcess/graphics/Model/RemoteDDMesh.cpp
    M Source/WebKit/GPUProcess/graphics/Model/RemoteDDMesh.h
    M Source/WebKit/GPUProcess/graphics/Model/RemoteDDMesh.messages.in
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.cpp
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.h
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.messages.in
    M Source/WebKit/WebProcess/GPU/graphics/Model/RemoteDDMeshProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/Model/RemoteDDMeshProxy.h
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.h
    M Source/WebKit/WebProcess/Model/WebModelPlayerProvider.cpp
    M Tools/WebKitTestRunner/TestController.cpp

  Log Message:
  -----------
  [Model element] Refactor <model> element to be independent of the model 
process
https://bugs.webkit.org/show_bug.cgi?id=299326
rdar://161127033

Reviewed by Etienne Segonzac.

Add ModelPlayer for split framework, GPU process rendered model element.

Test: model-element/gpup-model-element.html

* LayoutTests/model-element/gpup-model-element-expected.png: Added.
* LayoutTests/model-element/gpup-model-element-expected.txt: Added.
* LayoutTests/model-element/gpup-model-element.html: Added.
* Source/WTF/wtf/PlatformEnableCocoa.h:
* Source/WebCore/Configurations/WebCore.xcconfig:
* Source/WebCore/Headers.cmake:
* Source/WebCore/Modules/Internal/WebCoreInternal.h: Added.
* Source/WebCore/Modules/Internal/module.modulemap: Added.
* Source/WebCore/Modules/Model/Implementation/DDMeshImpl.cpp:
(WebCore::DDModel::DDMeshImpl::DDMeshImpl):
(WebCore::DDModel::convertToBacking):
(WebCore::DDModel::DDMeshImpl::addMesh):
(WebCore::DDModel::DDMeshImpl::update):
(WebCore::DDModel::DDMeshImpl::render):
(WebCore::DDModel::DDMeshImpl::ioSurfaceHandles):
* Source/WebCore/Modules/Model/Implementation/DDMeshImpl.h:
* Source/WebCore/Modules/Model/InternalAPI/DDMesh.h:
(WebCore::DDModel::DDMesh::ioSurfaceHandles):
* Source/WebCore/Modules/Model/ModelDDTypes.h:
* Source/WebCore/Modules/WebGPU/GPU.cpp:
* Source/WebCore/Modules/WebGPU/GPU.h:
(WebCore::GPU::backing const):
(WebCore::GPU::backing):
* Source/WebCore/Modules/WebGPU/Implementation/WebGPUImpl.cpp:
(WebCore::WebGPU::createIOSurfaces):
(WebCore::WebGPU::GPUImpl::createModelBacking):
(WebCore::WebGPU::convertToBacking): Deleted.
(WebCore::WebGPU::GPUImpl::addMeshRequest): Deleted.
* Source/WebCore/Modules/WebGPU/Implementation/WebGPUImpl.h:
* Source/WebCore/Modules/WebGPU/InternalAPI/WebGPU.h:
* Source/WebCore/Modules/identity/CredentialRequestCoordinatorClient.h:
* Source/WebCore/Modules/model-element/DDModelPlayer.h: Added.
* Source/WebCore/Modules/model-element/DDModelPlayer.mm: Added.
(makeVectorElement):
(WebCore::DDModelPlayer::create):
(WebCore::DDModelPlayer::DDModelPlayer):
(WebCore::m_page):
(WebCore::DDModelPlayer::~DDModelPlayer):
(WebCore::DDModelPlayer::load):
(WebCore::DDModelPlayer::sizeDidChange):
(WebCore::DDModelPlayer::layer):
(WebCore::DDModelPlayer::layerHostingContextIdentifier):
(WebCore::DDModelPlayer::enterFullscreen):
(WebCore::DDModelPlayer::handleMouseDown):
(WebCore::DDModelPlayer::handleMouseMove):
(WebCore::DDModelPlayer::handleMouseUp):
(WebCore::DDModelPlayer::getCamera):
(WebCore::DDModelPlayer::setCamera):
(WebCore::DDModelPlayer::isPlayingAnimation):
(WebCore::DDModelPlayer::setAnimationIsPlaying):
(WebCore::DDModelPlayer::isLoopingAnimation):
(WebCore::DDModelPlayer::setIsLoopingAnimation):
(WebCore::DDModelPlayer::animationDuration):
(WebCore::DDModelPlayer::animationCurrentTime):
(WebCore::DDModelPlayer::setAnimationCurrentTime):
(WebCore::DDModelPlayer::hasAudio):
(WebCore::DDModelPlayer::isMuted):
(WebCore::DDModelPlayer::setIsMuted):
(WebCore::DDModelPlayer::updateScene):
(WebCore::DDModelPlayer::accessibilityChildren):
(WebCore::DDModelPlayer::identifier const):
(WebCore::DDModelPlayer::displayBuffer const):
(WebCore::DDModelPlayer::contentsDisplayDelegate):
(WebCore::DDModelPlayer::currentModel):
(WebCore::DDModelPlayer::nextTexture):
* Source/WebCore/Modules/model-element/HTMLModelElement.cpp:
(WebCore::HTMLModelElement::setSourceURL):
(WebCore::HTMLModelElement::createModelPlayer):
(WebCore::HTMLModelElement::reloadModelPlayer):
(WebCore::HTMLModelElement::displayBuffer const):
(WebCore::HTMLModelElement::contentsDisplayDelegate):
(WebCore::HTMLModelElement::didFinishEnvironmentMapLoading):
(WebCore::HTMLModelElement::supportsStageModeInteraction const):
(WebCore::HTMLModelElement::attributeChanged):
(WebCore::HTMLModelElement::setEnvironmentMap):
(WebCore::HTMLModelElement::updateEnvironmentMap):
(WebCore::HTMLModelElement::environmentMapRequestResource):
(WebCore::HTMLModelElement::environmentMapResetAndReject):
(WebCore::HTMLModelElement::environmentMapResourceFinished):
(WebCore::HTMLModelElement::isURLAttribute const):
(WebCore::HTMLModelElement::memoryCost const):
* Source/WebCore/Modules/model-element/HTMLModelElement.h:
* Source/WebCore/Modules/model-element/ModelPlayer.cpp:
* Source/WebCore/Modules/model-element/ModelPlayer.h:
* Source/WebCore/Modules/model-element/ModelPlayerClient.h:
* Source/WebCore/Modules/model-element/PlaceholderModelPlayer.cpp:
(WebCore::PlaceholderModelPlayer::PlaceholderModelPlayer):
(WebCore::PlaceholderModelPlayer::setHasPortal):
(WebCore::PlaceholderModelPlayer::displayBuffer const):
* Source/WebCore/Modules/model-element/PlaceholderModelPlayer.h:
* Source/WebCore/Modules/model-element/dummy/DummyModelPlayer.cpp:
(WebCore::DummyModelPlayer::displayBuffer const):
* Source/WebCore/Modules/model-element/dummy/DummyModelPlayer.h:
* Source/WebCore/SourcesCocoa.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/html/canvas/UsdModelLoader.swift:
(Converter.webUpdateMeshRequestFromUpdateMeshRequest(_:)):
* Source/WebCore/page/Navigator.h:
* Source/WebCore/rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateConfiguration):
* Source/WebGPU/WebGPU/DDMesh.h:
(WebGPU::DDMesh::create):
* Source/WebGPU/WebGPU/DDMesh.mm:
(WebGPU::Instance::createModelBacking):
(WebGPU::DDMesh::DDMesh):
(WebGPU::DDMesh::texture const):
(WebGPU::convertFloats):
(WebGPU::convertPart):
(WebGPU::convertUint8s):
(WebGPU::convertDescriptor):
(WebGPU::DDMesh::render const):
(WebGPU::DDMesh::update):
(WebGPU::DDMesh::addMesh):
(wgpuDDMeshAdd):
(wgpuDDMeshRender):
(WebGPU::Instance::createMesh): Deleted.
* Source/WebGPU/WebGPU/Instance.h:
* Source/WebGPU/WebGPU/Instance.mm:
(WebGPU::Instance::device const):
(wgpuDDMeshCreate):
(WebGPU::Instance::updateModel): Deleted.
(WebGPU::convertFloats): Deleted.
(WebGPU::convertPart): Deleted.
(): Deleted.
(WebGPU::convertUint8s): Deleted.
(WebGPU::convertDescriptor): Deleted.
(WebGPU::Instance::updateMesh): Deleted.
* Source/WebGPU/WebGPU/UsdModelRenderer.swift:
(DDBridgeReceiver.render(with:)):
* Source/WebGPU/WebGPU/WebGPUExt.h:
* Source/WebKit/GPUProcess/graphics/Model/RemoteDDMesh.cpp:
(WebKit::RemoteDDMesh::addMesh):
(WebKit::RemoteDDMesh::render):
* Source/WebKit/GPUProcess/graphics/Model/RemoteDDMesh.h:
* Source/WebKit/GPUProcess/graphics/Model/RemoteDDMesh.messages.in:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.cpp:
(WebKit::RemoteGPU::createModelBacking):
(WebKit::RemoteGPU::addMeshRequest): Deleted.
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.messages.in:
* Source/WebKit/WebProcess/GPU/graphics/Model/RemoteDDMeshProxy.cpp:
(WebKit::DDModel::RemoteDDMeshProxy::addMesh):
(WebKit::DDModel::RemoteDDMeshProxy::render):
* Source/WebKit/WebProcess/GPU/graphics/Model/RemoteDDMeshProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.cpp:
(WebKit::RemoteGPUProxy::createModelBacking):
(WebKit::RemoteGPUProxy::addMeshRequest): Deleted.
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.h:
* Source/WebKit/WebProcess/Model/WebModelPlayerProvider.cpp:
(WebKit::WebModelPlayerProvider::createModelPlayer):
* Tools/WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):

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