Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: ff311a2fc4654fd14cf023e5537e2d052e35face
https://github.com/WebKit/WebKit/commit/ff311a2fc4654fd14cf023e5537e2d052e35face
Author: Mike Wyrzykowski <[email protected]>
Date: 2025-10-16 (Thu, 16 Oct 2025)
Changed paths:
A LayoutTests/model-element/gpup-model-element-textures-expected.png
A LayoutTests/model-element/gpup-model-element-textures-expected.txt
A LayoutTests/model-element/gpup-model-element-textures.html
A LayoutTests/model-element/resources/teapot.usdz
M Source/WebCore/Headers.cmake
M Source/WebCore/Modules/Model/Implementation/DDMeshImpl.cpp
M Source/WebCore/Modules/Model/Implementation/DDMeshImpl.h
A Source/WebCore/Modules/Model/InternalAPI/DDImageAsset.h
A Source/WebCore/Modules/Model/InternalAPI/DDMaterialDescriptor.h
M Source/WebCore/Modules/Model/InternalAPI/DDMesh.h
M Source/WebCore/Modules/Model/InternalAPI/DDMeshDescriptor.h
M Source/WebCore/Modules/Model/InternalAPI/DDMeshPart.h
M Source/WebCore/Modules/Model/InternalAPI/DDModel.serialization.in
M Source/WebCore/Modules/Model/InternalAPI/DDReplaceVertices.h
A Source/WebCore/Modules/Model/InternalAPI/DDTextureDescriptor.h
A Source/WebCore/Modules/Model/InternalAPI/DDUpdateMaterialDescriptor.h
M Source/WebCore/Modules/Model/InternalAPI/DDUpdateMeshDescriptor.h
A Source/WebCore/Modules/Model/InternalAPI/DDUpdateTextureDescriptor.h
M Source/WebCore/Modules/Model/InternalAPI/DDVertexAttributeFormat.h
M Source/WebCore/Modules/Model/InternalAPI/DDVertexLayout.h
M Source/WebCore/Modules/Model/ModelDDInlineConverters.h
M Source/WebCore/Modules/Model/ModelDDTypes.h
M Source/WebCore/Modules/model-element/DDModelPlayer.h
M Source/WebCore/Modules/model-element/DDModelPlayer.mm
M Source/WebCore/Modules/model-element/ModelPlayer.h
M Source/WebCore/Modules/model-element/ModelPlayerClient.h
M Source/WebCore/Modules/model-element/dummy/DummyModelPlayer.h
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/html/canvas/UsdModelLoader.swift
M Source/WebGPU/WebGPU/DDMesh.h
M Source/WebGPU/WebGPU/DDMesh.mm
M Source/WebGPU/WebGPU/DDModelTypes.h
M Source/WebGPU/WebGPU/UsdModelRenderer.swift
M Source/WebGPU/WebGPU/WebGPUExt.h
M Source/WebKit/CMakeLists.txt
M Source/WebKit/DerivedSources-input.xcfilelist
M Source/WebKit/DerivedSources.make
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/Scripts/webkit/messages.py
R Source/WebKit/Shared/Model/DDMeshDescriptor.cpp
R Source/WebKit/Shared/Model/DDMeshDescriptor.h
R Source/WebKit/Shared/Model/DDMeshDescriptor.serialization.in
R Source/WebKit/Shared/Model/DDMeshPart.cpp
R Source/WebKit/Shared/Model/DDMeshPart.h
R Source/WebKit/Shared/Model/DDMeshPart.serialization.in
R Source/WebKit/Shared/Model/DDReplaceVertices.cpp
R Source/WebKit/Shared/Model/DDReplaceVertices.h
R Source/WebKit/Shared/Model/DDReplaceVertices.serialization.in
R Source/WebKit/Shared/Model/DDUpdateMeshDescriptor.cpp
R Source/WebKit/Shared/Model/DDUpdateMeshDescriptor.h
R Source/WebKit/Shared/Model/DDUpdateMeshDescriptor.serialization.in
R Source/WebKit/Shared/Model/DDVertexAttributeFormat.h
R Source/WebKit/Shared/Model/DDVertexAttributeFormat.serialization.in
R Source/WebKit/Shared/Model/DDVertexLayout.h
R Source/WebKit/Shared/Model/DDVertexLayout.serialization.in
M Source/WebKit/Shared/Model/ModelConvertFromBackingContext.h
M Source/WebKit/Shared/Model/ModelConvertToBackingContext.h
M Source/WebKit/Sources.txt
M Source/WebKit/WebKit.xcodeproj/project.pbxproj
M Source/WebKit/WebProcess/GPU/graphics/Model/RemoteDDMeshProxy.cpp
M Source/WebKit/WebProcess/GPU/graphics/Model/RemoteDDMeshProxy.h
Log Message:
-----------
[Model element] Support loading textures in GPU process model element
https://bugs.webkit.org/show_bug.cgi?id=299470
rdar://161267992
Reviewed by Etienne Segonzac.
Send materials and textures from the WCP to to GPU process for rendering.
Remove the WebKit:: types which overlapped with WebCore:: types. Previously
we were converted back and forth from otherwise identical WebKit and WebCore
types which seemed redundant and also inefficient.
Test: model-element/gpup-model-element-textures.html
* LayoutTests/model-element/gpup-model-element-textures-expected.png: Added.
* LayoutTests/model-element/gpup-model-element-textures-expected.txt: Added.
* LayoutTests/model-element/gpup-model-element-textures.html: Added.
* Source/WebCore/Headers.cmake:
* Source/WebCore/Modules/Model/Implementation/DDMeshImpl.cpp:
(WebCore::DDModel::DDMeshImpl::addMesh):
(WebCore::DDModel::DDMeshImpl::update):
(WebCore::DDModel::convert):
(WebCore::DDModel::DDMeshImpl::addTexture):
(WebCore::DDModel::DDMeshImpl::updateTexture):
(WebCore::DDModel::convertArray):
(WebCore::DDModel::DDMeshImpl::addMaterial):
(WebCore::DDModel::DDMeshImpl::updateMaterial):
* Source/WebCore/Modules/Model/Implementation/DDMeshImpl.h:
* Source/WebCore/Modules/Model/InternalAPI/DDImageAsset.h: Renamed from
Source/WebKit/Shared/Model/DDReplaceVertices.h.
* Source/WebCore/Modules/Model/InternalAPI/DDMaterialDescriptor.h: Added.
* Source/WebCore/Modules/Model/InternalAPI/DDMesh.h:
* Source/WebCore/Modules/Model/InternalAPI/DDMeshDescriptor.h:
* Source/WebCore/Modules/Model/InternalAPI/DDMeshPart.h:
* Source/WebCore/Modules/Model/InternalAPI/DDModel.serialization.in:
* Source/WebCore/Modules/Model/InternalAPI/DDReplaceVertices.h:
* Source/WebCore/Modules/Model/InternalAPI/DDTextureDescriptor.h: Renamed from
Source/WebKit/Shared/Model/DDVertexLayout.h.
* Source/WebCore/Modules/Model/InternalAPI/DDUpdateMaterialDescriptor.h: Copied
from Source/WebCore/Modules/Model/InternalAPI/DDReplaceVertices.h.
* Source/WebCore/Modules/Model/InternalAPI/DDUpdateMeshDescriptor.h:
* Source/WebCore/Modules/Model/InternalAPI/DDUpdateTextureDescriptor.h: Copied
from Source/WebCore/Modules/Model/InternalAPI/DDReplaceVertices.h.
* Source/WebCore/Modules/Model/InternalAPI/DDVertexAttributeFormat.h:
* Source/WebCore/Modules/Model/InternalAPI/DDVertexLayout.h:
* Source/WebCore/Modules/Model/ModelDDInlineConverters.h:
(WebCore::toCpp):
(WebCore::toVector):
* Source/WebCore/Modules/Model/ModelDDTypes.h:
* Source/WebCore/Modules/model-element/DDModelPlayer.h:
* Source/WebCore/Modules/model-element/DDModelPlayer.mm:
(WebCore::DDModelPlayer::load):
(WebCore::DDModelPlayer::update):
* Source/WebCore/Modules/model-element/ModelPlayer.h:
* Source/WebCore/Modules/model-element/ModelPlayerClient.h:
(): Deleted.
* Source/WebCore/Modules/model-element/dummy/DummyModelPlayer.cpp:
(WebCore::DummyModelPlayer::load):
* Source/WebCore/Modules/model-element/dummy/DummyModelPlayer.h:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/html/canvas/UsdModelLoader.swift:
(update(_:)):
(meshCreated(_:)):
(meshUpdated(_:data:)):
(meshDestroyed(_:)):
(materialCreated(_:)):
(materialUpdated(_:data:)):
(materialDestroyed(_:)):
(textureCreated(_:)):
(textureUpdated(_:data:)):
(textureDestroyed(_:)):
(Converter.webUpdateMeshRequestFromUpdateMeshRequest(_:)):
(Converter.toWebSemantic(_:)):
(Converter.toWebImageAsset(_:id:)):
(Converter.toWebDDNodeType(_:)):
(Converter.toWebDDBuiltin(_:)):
(Converter.constantValues(_:WebDDConstant:)):
(Converter.toWebDDConstantContainer(_:)):
(Converter.toWebNodes(_:)):
(Converter.toWebEdges(_:)):
(Converter.toWebDDDataType(_:)):
(Converter.toWebInputOutputs(_:)):
(Converter.toWebPrimvars(_:)):
(Converter.toWebMaterialGraph(_:id:)):
(Converter.webAddMeshRequestFromAddMeshRequest(_:)):
(Converter.webUpdateTextureRequestFromUpdateTextureRequest(_:)):
(Converter.webAddTextureRequestFromAddTextureRequest(_:)):
(Converter.webUpdateMaterialRequestFromUpdateMaterialRequest(_:)):
(Converter.webAddMaterialRequestFromAddMaterialRequest(_:)):
(WebUSDModelLoader.textureAddedCallback):
(WebUSDModelLoader.textureUpdatedCallback):
(WebUSDModelLoader.materialAddedCallback):
(WebUSDModelLoader.materialUpdatedCallback):
(WebUSDModelLoader.retainedRequests):
(WebUSDModelLoader.update(_:)):
(WebUSDModelLoader.requestCompleted(_:)):
(WebUSDModelLoader.updateMesh(_:)):
(WebUSDModelLoader.addTexture(_:)):
(WebUSDModelLoader.updateTexture(_:)):
(WebUSDModelLoader.addMaterial(_:)):
(WebUSDModelLoader.updateMaterial(_:)):
(WebUSDModelLoader.meshAdded(_:)):
* Source/WebGPU/WebGPU/DDMesh.h:
* Source/WebGPU/WebGPU/DDMesh.mm:
(WebGPU::DDMesh::DDMesh):
(WebGPU::convert):
(WebGPU::convertDescriptor):
(WebGPU::DDMesh::update):
(WebGPU::DDMesh::addMesh):
(WebGPU::DDMesh::addTexture):
(WebGPU::DDMesh::updateTexture):
(WebGPU::DDMesh::addMaterial):
(WebGPU::DDMesh::updateMaterial):
(wgpuDDTextureUpdate):
(wgpuDDTextureAdd):
(wgpuDDMaterialUpdate):
(wgpuDDMaterialAdd):
* Source/WebGPU/WebGPU/DDModelTypes.h:
* Source/WebGPU/WebGPU/UsdModelRenderer.swift:
(NodeStore.nodeDefinitionStore):
(Helper.makeDirectTextureDescriptorFromMTLTexture(_:)):
(Helper.pixelFormat):
(sgDataTypeFromInputOutputDataType(_:)):
(nodes):
(allNodes):
(connections):
(customSurfaceShaderParameterBindings):
(assetPathToPropertyName):
(pbrInputNameToType(_:)):
(convert(_:)):
(convertToAddMeshRequest(_:id:)):
(DDBridgeReceiver.meshInstances):
(DDBridgeReceiver.meshResources):
(DDBridgeReceiver.textures):
(DDBridgeReceiver.textureFromPath):
(DDBridgeReceiver.render(with:)):
(DDBridgeReceiver.addMesh(_:identifier:)):
(DDBridgeReceiver.addTextureAsync(_:identifier:)):
(DDBridgeReceiver.addTexture(_:identifier:)):
(DDBridgeReceiver.updateTextureAsync(_:identifier:)):
(DDBridgeReceiver.updateTexture(_:identifier:)):
(DDBridgeReceiver.addMaterialAsync(_:identifier:)):
(DDBridgeReceiver.addMaterial(_:identifier:)):
(DDBridgeReceiver.updateMaterialAsync(_:identifier:)):
(DDBridgeReceiver.updateMaterial(_:identifier:)):
(DDBridgeReceiver.updateMeshAsync(_:identifier:)):
(DDBridgeReceiver.updateMesh(_:identifier:)):
(DDBridgeReceiver.device): Deleted.
(DDBridgeReceiver.context): Deleted.
(DDBridgeReceiver.scene): Deleted.
(DDBridgeReceiver.meshes): Deleted.
(DDBridgeReceiver.camera): Deleted.
(DDBridgeReceiver.commandQueue): Deleted.
(DDBridgeReceiver.captureManager): Deleted.
(DDBridgeReceiver.setDeviceWith(_:)): Deleted.
* Source/WebGPU/WebGPU/WebGPUExt.h:
* Source/WebKit/CMakeLists.txt:
* Source/WebKit/DerivedSources-input.xcfilelist:
* Source/WebKit/DerivedSources.make:
* Source/WebKit/GPUProcess/graphics/Model/RemoteDDMesh.cpp:
(WebKit::RemoteDDMesh::addMesh):
(WebKit::RemoteDDMesh::update):
(WebKit::RemoteDDMesh::addTexture):
(WebKit::RemoteDDMesh::updateTexture):
(WebKit::RemoteDDMesh::addMaterial):
(WebKit::RemoteDDMesh::updateMaterial):
* Source/WebKit/GPUProcess/graphics/Model/RemoteDDMesh.h:
* Source/WebKit/GPUProcess/graphics/Model/RemoteDDMesh.messages.in:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.cpp:
* Source/WebKit/Scripts/webkit/messages.py:
(headers_for_type):
* Source/WebKit/Shared/Model/DDMeshDescriptor.cpp: Removed.
* Source/WebKit/Shared/Model/DDMeshDescriptor.h: Removed.
* Source/WebKit/Shared/Model/DDMeshDescriptor.serialization.in: Removed.
* Source/WebKit/Shared/Model/DDMeshPart.cpp: Removed.
* Source/WebKit/Shared/Model/DDMeshPart.h: Removed.
* Source/WebKit/Shared/Model/DDMeshPart.serialization.in: Removed.
* Source/WebKit/Shared/Model/DDReplaceVertices.cpp: Removed.
* Source/WebKit/Shared/Model/DDReplaceVertices.serialization.in: Removed.
* Source/WebKit/Shared/Model/DDUpdateMeshDescriptor.cpp: Removed.
* Source/WebKit/Shared/Model/DDUpdateMeshDescriptor.h: Removed.
* Source/WebKit/Shared/Model/DDUpdateMeshDescriptor.serialization.in: Removed.
* Source/WebKit/Shared/Model/DDVertexAttributeFormat.h: Removed.
* Source/WebKit/Shared/Model/DDVertexAttributeFormat.serialization.in: Removed.
* Source/WebKit/Shared/Model/DDVertexLayout.serialization.in: Removed.
* Source/WebKit/Shared/Model/ModelConvertFromBackingContext.h:
* Source/WebKit/Shared/Model/ModelConvertToBackingContext.h:
* Source/WebKit/Sources.txt:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/GPU/graphics/Model/RemoteDDMeshProxy.cpp:
(WebKit::DDModel::RemoteDDMeshProxy::addMesh):
(WebKit::DDModel::RemoteDDMeshProxy::update):
(WebKit::DDModel::RemoteDDMeshProxy::addTexture):
(WebKit::DDModel::RemoteDDMeshProxy::updateTexture):
(WebKit::DDModel::RemoteDDMeshProxy::addMaterial):
(WebKit::DDModel::RemoteDDMeshProxy::updateMaterial):
* Source/WebKit/WebProcess/GPU/graphics/Model/RemoteDDMeshProxy.h:
Canonical link: https://commits.webkit.org/301613@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