commit c7d0d0103e485a66fd8e3dd4f6cb5105baa67ebb
parent a0d9a5cac52be847d8e4d09b0c6940d26a36630a
Author: Zhenyao Mo <zmo@chromium.org>
Date: Wed, 12 Nov 2025 08:51:50 +0000
Bug 1999546 [wpt PR 55982] - Optimize gfx::Transform's mojo., a=testonly
Automatic update from web-platform-tests
Optimize gfx::Transform's mojo.
Currently even if its representation is optimized (not a full
matrix), it is still sent as a full matrix.
This CL keeps the internal representation across mojo.
Not only this is a performance boost, it also keeps data consistent
between renderer and viz in TreesInViz.
Bug: 458397948
Change-Id: I669a1875064998bc50dd5ba11b78db326e1ccbc5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7127271
Commit-Queue: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Auto-Submit: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Kyle Charbonneau <kylechar@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1543152}
--
wpt-commits: 7fd0c65f58856012a4cc63c28234ee6d6b93e8d0
wpt-pr: 55982
Diffstat:
1 file changed, 15 insertions(+), 14 deletions(-)
diff --git a/testing/web-platform/tests/resources/chromium/webxr-test.js b/testing/web-platform/tests/resources/chromium/webxr-test.js
@@ -6,10 +6,10 @@ import {GamepadHand, GamepadMapping} from '/gen/device/gamepad/public/mojom/game
// https://github.com/immersive-web/webxr-test-api
const defaultMojoFromStage = {
- matrix: [1, 0, 0, 0,
- 0, 1, 0, 0,
- 0, 0, 1, 0,
- 0, -1.65, 0, 1]
+ data: { matrix: [1, 0, 0, 0,
+ 0, 1, 0, 0,
+ 0, 0, 1, 0,
+ 0, -1.65, 0, 1] }
};
const default_stage_parameters = {
mojoFromStage: defaultMojoFromStage,
@@ -57,7 +57,7 @@ function getPoseFromTransform(transform) {
}
function composeGFXTransform(fakeTransformInit) {
- return {matrix: getMatrixFromTransform(fakeTransformInit)};
+ return {data: {matrix: getMatrixFromTransform(fakeTransformInit)}};
}
// Value equality for camera image init objects - they must contain `width` &
@@ -534,7 +534,7 @@ class MockRuntime {
// floorOrigin is passed in as mojoFromStage.
this.stageParameters_.mojoFromStage =
- {matrix: getMatrixFromTransform(floorOrigin)};
+ {data: {matrix: getMatrixFromTransform(floorOrigin)}};
this._onStageParametersUpdated();
}
@@ -1578,10 +1578,10 @@ class MockRuntime {
this.depthSensingData_.height,
MockRuntime._depthDataFormatToMojoMap[this.depthSensingData_.depthFormat],
sourceProjectionMatrix,
- sourceViewOffset.matrix,
+ sourceViewOffset.data.matrix,
this.depthConfiguration_.depthDataFormat,
targetProjectionMatrix,
- targetViewOffset.matrix
+ targetViewOffset.data.matrix
)};
}
@@ -1908,7 +1908,7 @@ class MockRuntime {
}
_getMojoFromViewerWithOffset(viewOffset) {
- return { matrix: XRMathHelper.mul4x4(this._getMojoFromViewer(), viewOffset.matrix) };
+ return {data: { matrix: XRMathHelper.mul4x4(this._getMojoFromViewer(), viewOffset.data.matrix) }};
}
_getMojoFromNativeOrigin(nativeOriginInformation) {
@@ -1930,7 +1930,7 @@ class MockRuntime {
console.warn("Standing transform not available.");
return null;
}
- return this.stageParameters_.mojoFromStage.matrix;
+ return this.stageParameters_.mojoFromStage.data.matrix;
case vrMojom.XRReferenceSpaceType.kViewer:
return mojo_from_viewer;
case vrMojom.XRReferenceSpaceType.kBoundedFloor:
@@ -2233,7 +2233,7 @@ class MockXRInputSource {
// that. If we don't, then we'll just set the pointer offset directly,
// using identity as set above.
if (this.mojo_from_input_) {
- mojo_from_input = this.mojo_from_input_.matrix;
+ mojo_from_input = this.mojo_from_input_.data.matrix;
}
break;
default:
@@ -2246,8 +2246,9 @@ class MockXRInputSource {
// multiplying.
let input_from_mojo = XRMathHelper.inverse(mojo_from_input);
input_desc.inputFromPointer = {};
- input_desc.inputFromPointer.matrix =
- XRMathHelper.mul4x4(input_from_mojo, this.mojo_from_pointer_.matrix);
+ input_desc.inputFromPointer.data = {
+ matrix : XRMathHelper.mul4x4(input_from_mojo,
+ this.mojo_from_pointer_.data.matrix)};
input_desc.profiles = this.profiles_;
@@ -2351,7 +2352,7 @@ class MockXRInputSource {
}
_getMojoFromInputSource(mojo_from_viewer) {
- return this.mojo_from_pointer_.matrix;
+ return this.mojo_from_pointer_.data.matrix;
}
}