Advance M8-M11 parity workflows
This commit is contained in:
BIN
tests/files/web/geometry_node_allowlist_evaluator.blend
Normal file
BIN
tests/files/web/geometry_node_allowlist_evaluator.blend
Normal file
Binary file not shown.
BIN
tests/files/web/m11_compositor_allowlist.blend
Normal file
BIN
tests/files/web/m11_compositor_allowlist.blend
Normal file
Binary file not shown.
BIN
tests/files/web/m11_render_reference.blend
Normal file
BIN
tests/files/web/m11_render_reference.blend
Normal file
Binary file not shown.
@@ -19,6 +19,16 @@
|
||||
"objectNames": ["BasicArea", "BasicCamera", "BasicCube"],
|
||||
"frameRange": [1, 24]
|
||||
},
|
||||
{
|
||||
"id": "m11_render_reference",
|
||||
"path": "m11_render_reference.blend",
|
||||
"objects": 2,
|
||||
"meshes": 1,
|
||||
"materials": 1,
|
||||
"objectNames": ["M11 Reference Camera", "M11 Reference Cube"],
|
||||
"frameRange": [1, 250],
|
||||
"features": ["blender-eevee-reference", "webgl2-image-error-metrics", "main-offscreen-golden"]
|
||||
},
|
||||
{
|
||||
"id": "attribute_scene",
|
||||
"path": "attribute_scene.blend",
|
||||
@@ -38,6 +48,17 @@
|
||||
"frameRange": [1, 10],
|
||||
"animationTargets": ["object:AnimatedObject"]
|
||||
},
|
||||
{
|
||||
"id": "nla_time_mapping_scene",
|
||||
"path": "nla_time_mapping_scene.blend",
|
||||
"objects": 1,
|
||||
"meshes": 1,
|
||||
"materials": 0,
|
||||
"objectNames": ["M10_NLA_TimeMapping"],
|
||||
"frameRange": [1, 70],
|
||||
"animationTargets": ["object:M10_NLA_TimeMapping"],
|
||||
"features": ["nla-track-reader", "scaled-action-time", "reverse-repeat", "desktop-depsgraph-golden"]
|
||||
},
|
||||
{
|
||||
"id": "rigged_shape_scene",
|
||||
"path": "rigged_shape_scene.blend",
|
||||
@@ -157,6 +178,13 @@
|
||||
"meshes": 0,
|
||||
"features": ["compositor-main-reader", "exposure-invert-parameters", "socket-links", "unsupported-node-preservation"]
|
||||
},
|
||||
{
|
||||
"id": "m11_compositor_allowlist",
|
||||
"path": "m11_compositor_allowlist.blend",
|
||||
"objects": 0,
|
||||
"meshes": 0,
|
||||
"features": ["compositor-node-allowlist", "cpu-webgpu-golden", "constant-color", "exposure", "invert"]
|
||||
},
|
||||
{
|
||||
"id": "sequencer_scene",
|
||||
"path": "sequencer_scene.blend",
|
||||
|
||||
BIN
tests/files/web/media/sequencer-probe.mp4
Normal file
BIN
tests/files/web/media/sequencer-probe.mp4
Normal file
Binary file not shown.
BIN
tests/files/web/nla_time_mapping_scene.blend
Normal file
BIN
tests/files/web/nla_time_mapping_scene.blend
Normal file
Binary file not shown.
46
tests/golden/M10-01/geometry-node-main-reader.json
Normal file
46
tests/golden/M10-01/geometry-node-main-reader.json
Normal file
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"fixture": "tests/files/web/modifier_geometry_nodes_scene.blend",
|
||||
"fixtureSha256": "f3820511f791769837d75be092934130c397cf46ee0acf79db28efca9a7948c9",
|
||||
"desktopGolden": "tests/golden/W-075/modifier_geometry_nodes_scene.json",
|
||||
"desktopGoldenSha256": "93c21e5158daefce10f2d4df674e636bf3f6ed3dd43e1576c45a02a8592f5886",
|
||||
"graphs": [
|
||||
{
|
||||
"name": "WebGeometryNodes",
|
||||
"nodeTypes": ["NodeGroupInput", "GeometryNodeTransform", "NodeGroupOutput"],
|
||||
"linkCount": 2,
|
||||
"defaults": {
|
||||
"GeometryNodeTransform:Mode": 0,
|
||||
"GeometryNodeTransform:Translation": [0.25, 0.5, 1.0],
|
||||
"GeometryNodeTransform:Rotation": [0.0, 0.0, 0.2617993950843811],
|
||||
"GeometryNodeTransform:Scale": [1.0, 1.0, 1.0]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "WebGeometryNodesSetPosition",
|
||||
"nodeTypes": ["NodeGroupInput", "GeometryNodeSetPosition", "NodeGroupOutput"],
|
||||
"linkCount": 2,
|
||||
"defaults": {
|
||||
"GeometryNodeSetPosition:Selection": true,
|
||||
"GeometryNodeSetPosition:Position": [0.0, 0.0, 0.0],
|
||||
"GeometryNodeSetPosition:Offset": [0.0, 0.0, 1.0]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "WebGeometryNodesSimulation",
|
||||
"nodeTypes": ["GeometryNodeSimulationInput", "NodeGroupOutput", "GeometryNodeSimulationOutput", "NodeGroupInput"],
|
||||
"linkCount": 3,
|
||||
"defaults": {
|
||||
"GeometryNodeSimulationInput:Delta Time": 0.0,
|
||||
"GeometryNodeSimulationOutput:Skip": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"budgets": {
|
||||
"maxGraphs": 4096,
|
||||
"maxNodesPerGraph": 4096,
|
||||
"maxLinksPerGraph": 16384,
|
||||
"maxSocketsPerGraph": 65536,
|
||||
"maxInterfaceSocketsPerGraph": 4096
|
||||
}
|
||||
}
|
||||
32
tests/golden/M10-02/geometry-node-allowlist.json
Normal file
32
tests/golden/M10-02/geometry-node-allowlist.json
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"fixture": "tests/files/web/modifier_geometry_nodes_scene.blend",
|
||||
"fixtureSha256": "f3820511f791769837d75be092934130c397cf46ee0acf79db28efca9a7948c9",
|
||||
"allowlistSchemaVersion": 1,
|
||||
"allowlist": [
|
||||
"NodeGroupInput",
|
||||
"NodeGroupOutput",
|
||||
"GeometryNodeTransform",
|
||||
"GeometryNodeSetPosition",
|
||||
"GeometryNodeJoinGeometry",
|
||||
"GeometryNodeSeparateGeometry",
|
||||
"GeometryNodeRealizeInstances",
|
||||
"GeometryNodeStoreNamedAttribute",
|
||||
"FunctionNodeInputInt",
|
||||
"FunctionNodeInputVector",
|
||||
"FunctionNodeCompare",
|
||||
"ShaderNodeValue",
|
||||
"ShaderNodeMath",
|
||||
"GeometryNodeObjectInfo",
|
||||
"GeometryNodeCollectionInfo",
|
||||
"GeometryNodeImageInfo"
|
||||
],
|
||||
"supportedGraph": "WebGeometryNodes",
|
||||
"unsupportedGraph": "WebGeometryNodesSimulation",
|
||||
"unsupportedNodeTypes": [
|
||||
"GeometryNodeSimulationInput",
|
||||
"GeometryNodeSimulationOutput"
|
||||
],
|
||||
"unsupportedErrorCode": "GN_NODE_UNSUPPORTED",
|
||||
"evaluatorUnavailableErrorCode": "CAPABILITY_MISSING"
|
||||
}
|
||||
1187
tests/golden/M10-03/geometry-node-evaluator.json
Normal file
1187
tests/golden/M10-03/geometry-node-evaluator.json
Normal file
File diff suppressed because it is too large
Load Diff
34
tests/golden/M10-07/shader-compile.json
Normal file
34
tests/golden/M10-07/shader-compile.json
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"taskId": "M10-07",
|
||||
"fixture": "tests/files/web/basic_scene.blend",
|
||||
"fixtureSha256": "6fcc55bda74da8c95da96ba068b60339bf60ca44147ff8000fbb95d296db2a73",
|
||||
"backend": "WEBGL2_THREE_PHYSICAL",
|
||||
"allowlist": [
|
||||
"RGB",
|
||||
"VALUE",
|
||||
"MATH",
|
||||
"IMAGE_TEXTURE",
|
||||
"NORMAL_MAP",
|
||||
"PRINCIPLED",
|
||||
"OUTPUT"
|
||||
],
|
||||
"mathOperations": [
|
||||
"ADD",
|
||||
"SUBTRACT",
|
||||
"MULTIPLY",
|
||||
"DIVIDE",
|
||||
"MINIMUM",
|
||||
"MAXIMUM"
|
||||
],
|
||||
"budget": {
|
||||
"maxNodes": 128,
|
||||
"maxLinks": 512,
|
||||
"maxDepth": 64,
|
||||
"maxTextures": 16,
|
||||
"maxIdentifierBytes": 256,
|
||||
"maxNameBytes": 1024
|
||||
},
|
||||
"expectedMathResult": 0.42,
|
||||
"unsupportedNodeCode": "SHADER_NODE_UNSUPPORTED"
|
||||
}
|
||||
10
tests/golden/M10-08/shader-compile-key.json
Normal file
10
tests/golden/M10-08/shader-compile-key.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"taskId": "M10-08",
|
||||
"backend": "WEBGL2_THREE_PHYSICAL",
|
||||
"textureColorSpaces": ["SRGB", "NON_COLOR", "LINEAR"],
|
||||
"keyInputs": ["graphHash", "rendererBackend", "imageId", "usage", "assetId", "sha256", "colorSpace"],
|
||||
"keyDigest": "sha256",
|
||||
"unknownBackendCode": "CAPABILITY_MISSING",
|
||||
"invalidTextureIdentityCode": "SHADER_INVALID_GRAPH"
|
||||
}
|
||||
8
tests/golden/M10-09/shader-pipeline.json
Normal file
8
tests/golden/M10-09/shader-pipeline.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"taskId": "M10-09",
|
||||
"failureStatus": "BLOCKED",
|
||||
"preservedPipeline": true,
|
||||
"replacedOnSuccess": true,
|
||||
"failureDoesNotDisposePrevious": true
|
||||
}
|
||||
10
tests/golden/M10-10/shader-capability-block.json
Normal file
10
tests/golden/M10-10/shader-capability-block.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"taskId": "M10-10",
|
||||
"capability": "ARBITRARY_SHADER",
|
||||
"status": "BLOCKED",
|
||||
"unsupportedNodeTypes": ["VORONOI", "CUSTOM_OSL"],
|
||||
"errorCode": "SHADER_NODE_UNSUPPORTED",
|
||||
"recoverable": true,
|
||||
"graphDataPolicy": "PRESERVE"
|
||||
}
|
||||
308
tests/golden/M10-11/nla-evaluation.json
Normal file
308
tests/golden/M10-11/nla-evaluation.json
Normal file
@@ -0,0 +1,308 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"fixture": "tests/files/web/nla_time_mapping_scene.blend",
|
||||
"fixtureSha256": "b32f783debe213a1345ec4528e5ed27f0f4de00d7896b626df39756289119855",
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"object": "M10_NLA_TimeMapping",
|
||||
"mesh": "M10_NLA_TimeMappingMesh",
|
||||
"tracks": [
|
||||
{
|
||||
"name": "M10 Time Mapping",
|
||||
"muted": false,
|
||||
"solo": false,
|
||||
"strips": [
|
||||
{
|
||||
"id": "M10 Scaled Clip",
|
||||
"action": "M10_NLA_Scaled_X",
|
||||
"frameStart": 20.0,
|
||||
"frameEnd": 40.0,
|
||||
"actionFrameStart": 1.0,
|
||||
"actionFrameEnd": 11.0,
|
||||
"scale": 2.0,
|
||||
"repeat": 1.0,
|
||||
"blendIn": 0.0,
|
||||
"blendOut": 0.0,
|
||||
"influence": 1.0,
|
||||
"blendMode": "REPLACE",
|
||||
"extrapolation": "NOTHING",
|
||||
"muted": false,
|
||||
"reverse": false
|
||||
},
|
||||
{
|
||||
"id": "M10 Reverse Repeat Clip",
|
||||
"action": "M10_NLA_ReverseRepeat_Y",
|
||||
"frameStart": 45.0,
|
||||
"frameEnd": 65.0,
|
||||
"actionFrameStart": 1.0,
|
||||
"actionFrameEnd": 11.0,
|
||||
"scale": 1.0,
|
||||
"repeat": 2.0,
|
||||
"blendIn": 0.0,
|
||||
"blendOut": 0.0,
|
||||
"influence": 1.0,
|
||||
"blendMode": "REPLACE",
|
||||
"extrapolation": "NOTHING",
|
||||
"muted": false,
|
||||
"reverse": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"frames": [
|
||||
{
|
||||
"frame": 1,
|
||||
"worldMatrix": [
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"frame": 20,
|
||||
"worldMatrix": [
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"frame": 25,
|
||||
"worldMatrix": [
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
2.5,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"frame": 30,
|
||||
"worldMatrix": [
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
5.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"frame": 35,
|
||||
"worldMatrix": [
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
7.5,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"frame": 40,
|
||||
"worldMatrix": [
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
10.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"frame": 45,
|
||||
"worldMatrix": [
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
10.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"frame": 50,
|
||||
"worldMatrix": [
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
5.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"frame": 55,
|
||||
"worldMatrix": [
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
10.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"frame": 60,
|
||||
"worldMatrix": [
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
5.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"frame": 65,
|
||||
"worldMatrix": [
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"frame": 70,
|
||||
"worldMatrix": [
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0
|
||||
]
|
||||
}
|
||||
],
|
||||
"tolerance": {
|
||||
"maxMatrixError": 1e-05
|
||||
}
|
||||
}
|
||||
24
tests/golden/M10-13/physics-solver-probe.json
Normal file
24
tests/golden/M10-13/physics-solver-probe.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"familyOrder": [
|
||||
"RIGID_BODY",
|
||||
"SOFT_BODY",
|
||||
"CLOTH",
|
||||
"FLUID",
|
||||
"DYNAMIC_PAINT",
|
||||
"PARTICLE",
|
||||
"HAIR"
|
||||
],
|
||||
"defaultProbe": "EXPORT_UNAVAILABLE",
|
||||
"probes": {
|
||||
"RIGID_BODY": "READY",
|
||||
"SOFT_BODY": "INITIALIZATION_FAILED",
|
||||
"CLOTH": "THREADS_UNAVAILABLE",
|
||||
"FLUID": "MEMORY_UNAVAILABLE",
|
||||
"DYNAMIC_PAINT": "INVALID_RESULT",
|
||||
"PARTICLE": "INITIALIZATION_FAILED",
|
||||
"HAIR": "EXPORT_UNAVAILABLE"
|
||||
},
|
||||
"localRoute": "LOCAL_SOLVER",
|
||||
"fallbackRoute": "DESKTOP_SERVER_BAKE",
|
||||
"fallbackErrorCode": "PHYSICS_SOLVER_UNAVAILABLE"
|
||||
}
|
||||
26
tests/golden/M10-14/physics-cache-family.json
Normal file
26
tests/golden/M10-14/physics-cache-family.json
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"families": [
|
||||
"RIGID_BODY",
|
||||
"SOFT_BODY",
|
||||
"CLOTH",
|
||||
"FLUID",
|
||||
"DYNAMIC_PAINT",
|
||||
"PARTICLE",
|
||||
"HAIR"
|
||||
],
|
||||
"sources": [
|
||||
"BLENDER_DESKTOP_BAKE",
|
||||
"BLENDER_SERVER_BAKE",
|
||||
"BLENDER_DESKTOP_BAKE",
|
||||
"BLENDER_SERVER_BAKE",
|
||||
"BLENDER_DESKTOP_BAKE",
|
||||
"BLENDER_SERVER_BAKE",
|
||||
"BLENDER_DESKTOP_BAKE"
|
||||
],
|
||||
"byteLength": 4,
|
||||
"frameCount": 2,
|
||||
"sourceMismatch": "PHYSICS_CACHE_SOURCE_MISMATCH",
|
||||
"payloadMismatch": "PHYSICS_CACHE_HASH_MISMATCH",
|
||||
"versionMismatch": "PROTOCOL_MISMATCH",
|
||||
"budgetExceeded": "PHYSICS_BUDGET_EXCEEDED"
|
||||
}
|
||||
33
tests/golden/M10-15/domain-browser-gates.json
Normal file
33
tests/golden/M10-15/domain-browser-gates.json
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"domains": {
|
||||
"GN": {
|
||||
"workUnits": 10,
|
||||
"maximumMs": 5000,
|
||||
"performanceStatus": "SUPPORTED",
|
||||
"oomCode": "GN_GRAPH_BUDGET_EXCEEDED",
|
||||
"maliciousCode": "GN_DEPENDENCY_CYCLE"
|
||||
},
|
||||
"SHADER": {
|
||||
"workUnits": 100,
|
||||
"maximumMs": 5000,
|
||||
"performanceStatus": "COMPILED",
|
||||
"oomCode": "SHADER_NODE_UNSUPPORTED",
|
||||
"maliciousCode": "SHADER_GRAPH_CYCLE"
|
||||
},
|
||||
"NLA": {
|
||||
"workUnits": 20,
|
||||
"maximumMs": 5000,
|
||||
"performanceStatus": "SUPPORTED",
|
||||
"oomCode": "NLA_BUDGET_EXCEEDED",
|
||||
"maliciousCode": "NLA_INVALID_STACK"
|
||||
},
|
||||
"SIMULATION": {
|
||||
"workUnits": 64,
|
||||
"maximumMs": 10000,
|
||||
"performanceStatus": "VERIFIED",
|
||||
"oomCode": "SIMULATION_CACHE_BUDGET_EXCEEDED",
|
||||
"maliciousCode": "SIMULATION_CACHE_INVALID"
|
||||
}
|
||||
}
|
||||
}
|
||||
128
tests/golden/M11-01/lighting-field-parity.json
Normal file
128
tests/golden/M11-01/lighting-field-parity.json
Normal file
@@ -0,0 +1,128 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M11-01",
|
||||
"blenderVersion": "5.2.0",
|
||||
"legend": {
|
||||
"VERIFIED": "Implemented and covered by the cited bounded path",
|
||||
"PARTIAL": "Implemented for a declared subset or approximate mapping",
|
||||
"METADATA_ONLY": "Exposed to the viewport but not visually evaluated",
|
||||
"BLOCKED": "Not implemented or not parity-safe",
|
||||
"NOT_APPLICABLE": "The stage does not mutate or visually consume this identity/status field"
|
||||
},
|
||||
"domains": [
|
||||
{
|
||||
"domain": "CAMERA",
|
||||
"sourceInterface": "CameraIR",
|
||||
"evidence": [
|
||||
"web/protocol/scene-ir.ts",
|
||||
"web/protocol/web-engine.ts",
|
||||
"blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"tools/web/check-lighting-roundtrip.mjs",
|
||||
"web/app/src/three-adapter/viewport.ts",
|
||||
"web/app/src/workers/viewport-render.worker.ts"
|
||||
],
|
||||
"fields": [
|
||||
{ "path": "id", "reader": "VERIFIED", "writer": "NOT_APPLICABLE", "viewportMain": "NOT_APPLICABLE", "viewportOffscreen": "NOT_APPLICABLE", "parity": "COMPLETE" },
|
||||
{ "path": "name", "reader": "VERIFIED", "writer": "NOT_APPLICABLE", "viewportMain": "NOT_APPLICABLE", "viewportOffscreen": "NOT_APPLICABLE", "parity": "COMPLETE" },
|
||||
{ "path": "projection", "reader": "VERIFIED", "writer": "PARTIAL", "viewportMain": "PARTIAL", "viewportOffscreen": "PARTIAL", "parity": "PARTIAL", "note": "Writer supports Perspective/Orthographic; viewport still uses PerspectiveCamera and blocks Panoramic/Custom parity." },
|
||||
{ "path": "lensMm", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "VERIFIED", "viewportOffscreen": "VERIFIED", "parity": "COMPLETE" },
|
||||
{ "path": "sensorWidthMm", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "VERIFIED", "viewportOffscreen": "VERIFIED", "parity": "COMPLETE" },
|
||||
{ "path": "sensorHeightMm", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "VERIFIED", "viewportOffscreen": "VERIFIED", "parity": "COMPLETE" },
|
||||
{ "path": "sensorFit", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "VERIFIED", "viewportOffscreen": "VERIFIED", "parity": "COMPLETE" },
|
||||
{ "path": "shift", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "PARTIAL", "viewportOffscreen": "PARTIAL", "parity": "PARTIAL", "note": "Horizontal film offset is mapped; vertical shift is not." },
|
||||
{ "path": "near", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "VERIFIED", "viewportOffscreen": "VERIFIED", "parity": "COMPLETE" },
|
||||
{ "path": "far", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "VERIFIED", "viewportOffscreen": "VERIFIED", "parity": "COMPLETE" },
|
||||
{ "path": "orthoScale", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "BLOCKED", "viewportOffscreen": "BLOCKED", "parity": "BLOCKED" },
|
||||
{ "path": "panoramaType", "reader": "VERIFIED", "writer": "BLOCKED", "viewportMain": "BLOCKED", "viewportOffscreen": "BLOCKED", "parity": "BLOCKED" },
|
||||
{ "path": "fisheyeFov", "reader": "VERIFIED", "writer": "BLOCKED", "viewportMain": "BLOCKED", "viewportOffscreen": "BLOCKED", "parity": "BLOCKED" },
|
||||
{ "path": "depthOfField.enabled", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "BLOCKED", "viewportOffscreen": "BLOCKED", "parity": "BLOCKED" },
|
||||
{ "path": "depthOfField.focusObjectId", "reader": "VERIFIED", "writer": "BLOCKED", "viewportMain": "BLOCKED", "viewportOffscreen": "BLOCKED", "parity": "BLOCKED" },
|
||||
{ "path": "depthOfField.focusDistance", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "BLOCKED", "viewportOffscreen": "BLOCKED", "parity": "BLOCKED" },
|
||||
{ "path": "depthOfField.apertureFStop", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "BLOCKED", "viewportOffscreen": "BLOCKED", "parity": "BLOCKED" },
|
||||
{ "path": "depthOfField.apertureBlades", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "BLOCKED", "viewportOffscreen": "BLOCKED", "parity": "BLOCKED" },
|
||||
{ "path": "depthOfField.apertureRotation", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "BLOCKED", "viewportOffscreen": "BLOCKED", "parity": "BLOCKED" },
|
||||
{ "path": "depthOfField.apertureRatio", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "BLOCKED", "viewportOffscreen": "BLOCKED", "parity": "BLOCKED" }
|
||||
]
|
||||
},
|
||||
{
|
||||
"domain": "LIGHT",
|
||||
"sourceInterface": "LightIR",
|
||||
"evidence": [
|
||||
"web/protocol/scene-ir.ts",
|
||||
"web/protocol/web-engine.ts",
|
||||
"blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"tools/web/check-lighting-roundtrip.mjs",
|
||||
"web/app/src/three-adapter/pbr.ts"
|
||||
],
|
||||
"fields": [
|
||||
{ "path": "id", "reader": "VERIFIED", "writer": "NOT_APPLICABLE", "viewportMain": "NOT_APPLICABLE", "viewportOffscreen": "NOT_APPLICABLE", "parity": "COMPLETE" },
|
||||
{ "path": "name", "reader": "VERIFIED", "writer": "NOT_APPLICABLE", "viewportMain": "NOT_APPLICABLE", "viewportOffscreen": "NOT_APPLICABLE", "parity": "COMPLETE" },
|
||||
{ "path": "lightType", "reader": "VERIFIED", "writer": "BLOCKED", "viewportMain": "VERIFIED", "viewportOffscreen": "VERIFIED", "parity": "PARTIAL" },
|
||||
{ "path": "color", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "VERIFIED", "viewportOffscreen": "VERIFIED", "parity": "COMPLETE" },
|
||||
{ "path": "energy", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "VERIFIED", "viewportOffscreen": "VERIFIED", "parity": "COMPLETE" },
|
||||
{ "path": "exposure", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "VERIFIED", "viewportOffscreen": "VERIFIED", "parity": "COMPLETE" },
|
||||
{ "path": "temperature", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "VERIFIED", "viewportOffscreen": "VERIFIED", "parity": "COMPLETE" },
|
||||
{ "path": "useTemperature", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "VERIFIED", "viewportOffscreen": "VERIFIED", "parity": "COMPLETE" },
|
||||
{ "path": "castsShadow", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "VERIFIED", "viewportOffscreen": "VERIFIED", "parity": "COMPLETE" },
|
||||
{ "path": "radius", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "BLOCKED", "viewportOffscreen": "BLOCKED", "parity": "BLOCKED" },
|
||||
{ "path": "spotAngle", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "VERIFIED", "viewportOffscreen": "VERIFIED", "parity": "COMPLETE" },
|
||||
{ "path": "spotBlend", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "VERIFIED", "viewportOffscreen": "VERIFIED", "parity": "COMPLETE" },
|
||||
{ "path": "areaShape", "reader": "VERIFIED", "writer": "BLOCKED", "viewportMain": "PARTIAL", "viewportOffscreen": "PARTIAL", "parity": "PARTIAL", "note": "All Area shapes currently map to RectAreaLight." },
|
||||
{ "path": "areaSize", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "VERIFIED", "viewportOffscreen": "VERIFIED", "parity": "COMPLETE" },
|
||||
{ "path": "areaSizeY", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "VERIFIED", "viewportOffscreen": "VERIFIED", "parity": "COMPLETE" },
|
||||
{ "path": "areaSpread", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "BLOCKED", "viewportOffscreen": "BLOCKED", "parity": "BLOCKED" },
|
||||
{ "path": "sunAngle", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "BLOCKED", "viewportOffscreen": "BLOCKED", "parity": "BLOCKED" }
|
||||
]
|
||||
},
|
||||
{
|
||||
"domain": "WORLD",
|
||||
"sourceInterface": "WorldIR",
|
||||
"evidence": [
|
||||
"web/protocol/scene-ir.ts",
|
||||
"web/protocol/web-engine.ts",
|
||||
"blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"tools/web/check-lighting-roundtrip.mjs",
|
||||
"web/app/src/three-adapter/viewport.ts",
|
||||
"web/app/src/three-adapter/texture-assets.ts"
|
||||
],
|
||||
"fields": [
|
||||
{ "path": "id", "reader": "VERIFIED", "writer": "NOT_APPLICABLE", "viewportMain": "NOT_APPLICABLE", "viewportOffscreen": "NOT_APPLICABLE", "parity": "COMPLETE" },
|
||||
{ "path": "name", "reader": "VERIFIED", "writer": "NOT_APPLICABLE", "viewportMain": "NOT_APPLICABLE", "viewportOffscreen": "NOT_APPLICABLE", "parity": "COMPLETE" },
|
||||
{ "path": "color", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "VERIFIED", "viewportOffscreen": "VERIFIED", "parity": "COMPLETE" },
|
||||
{ "path": "exposure", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "PARTIAL", "viewportOffscreen": "PARTIAL", "parity": "PARTIAL", "note": "World exposure is used only when Scene exposure is absent." },
|
||||
{ "path": "environmentImageId", "reader": "VERIFIED", "writer": "BLOCKED", "viewportMain": "VERIFIED", "viewportOffscreen": "VERIFIED", "parity": "PARTIAL" },
|
||||
{ "path": "environmentStrength", "reader": "VERIFIED", "writer": "BLOCKED", "viewportMain": "VERIFIED", "viewportOffscreen": "VERIFIED", "parity": "PARTIAL" },
|
||||
{ "path": "environmentRotation", "reader": "BLOCKED", "writer": "BLOCKED", "viewportMain": "BLOCKED", "viewportOffscreen": "BLOCKED", "parity": "BLOCKED" },
|
||||
{ "path": "backgroundVisible", "reader": "PARTIAL", "writer": "BLOCKED", "viewportMain": "VERIFIED", "viewportOffscreen": "VERIFIED", "parity": "PARTIAL", "note": "Reader currently emits true rather than resolving the full node visibility graph." },
|
||||
{ "path": "mist.enabled", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "METADATA_ONLY", "viewportOffscreen": "METADATA_ONLY", "parity": "PARTIAL" },
|
||||
{ "path": "mist.type", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "METADATA_ONLY", "viewportOffscreen": "METADATA_ONLY", "parity": "PARTIAL" },
|
||||
{ "path": "mist.start", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "METADATA_ONLY", "viewportOffscreen": "METADATA_ONLY", "parity": "PARTIAL" },
|
||||
{ "path": "mist.depth", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "METADATA_ONLY", "viewportOffscreen": "METADATA_ONLY", "parity": "PARTIAL" },
|
||||
{ "path": "mist.intensity", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "METADATA_ONLY", "viewportOffscreen": "METADATA_ONLY", "parity": "PARTIAL" },
|
||||
{ "path": "mist.height", "reader": "VERIFIED", "writer": "VERIFIED", "viewportMain": "METADATA_ONLY", "viewportOffscreen": "METADATA_ONLY", "parity": "PARTIAL" }
|
||||
]
|
||||
},
|
||||
{
|
||||
"domain": "SCENE_COLOR_MANAGEMENT",
|
||||
"sourceInterface": "SceneIR",
|
||||
"evidence": [
|
||||
"web/protocol/scene-ir.ts",
|
||||
"blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp",
|
||||
"tools/web/check-lighting-roundtrip.mjs",
|
||||
"web/app/src/three-adapter/viewport.ts",
|
||||
"web/app/src/workers/viewport-render.worker.ts"
|
||||
],
|
||||
"fields": [
|
||||
{ "path": "renderEngine", "reader": "VERIFIED", "writer": "BLOCKED", "viewportMain": "BLOCKED", "viewportOffscreen": "BLOCKED", "parity": "BLOCKED" },
|
||||
{ "path": "colorManagement.displayDevice", "reader": "VERIFIED", "writer": "BLOCKED", "viewportMain": "BLOCKED", "viewportOffscreen": "BLOCKED", "parity": "BLOCKED" },
|
||||
{ "path": "colorManagement.viewTransform", "reader": "VERIFIED", "writer": "BLOCKED", "viewportMain": "METADATA_ONLY", "viewportOffscreen": "METADATA_ONLY", "parity": "PARTIAL" },
|
||||
{ "path": "colorManagement.look", "reader": "VERIFIED", "writer": "BLOCKED", "viewportMain": "METADATA_ONLY", "viewportOffscreen": "METADATA_ONLY", "parity": "PARTIAL" },
|
||||
{ "path": "colorManagement.exposure", "reader": "VERIFIED", "writer": "BLOCKED", "viewportMain": "VERIFIED", "viewportOffscreen": "VERIFIED", "parity": "PARTIAL" },
|
||||
{ "path": "colorManagement.gamma", "reader": "VERIFIED", "writer": "BLOCKED", "viewportMain": "BLOCKED", "viewportOffscreen": "BLOCKED", "parity": "BLOCKED" },
|
||||
{ "path": "colorManagement.temperature", "reader": "PARTIAL", "writer": "BLOCKED", "viewportMain": "BLOCKED", "viewportOffscreen": "BLOCKED", "parity": "BLOCKED" },
|
||||
{ "path": "colorManagement.tint", "reader": "PARTIAL", "writer": "BLOCKED", "viewportMain": "BLOCKED", "viewportOffscreen": "BLOCKED", "parity": "BLOCKED" },
|
||||
{ "path": "colorManagement.whiteBalanceStatus", "reader": "VERIFIED", "writer": "NOT_APPLICABLE", "viewportMain": "NOT_APPLICABLE", "viewportOffscreen": "NOT_APPLICABLE", "parity": "COMPLETE" }
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
46
tests/golden/M11-02/lighting-field-roundtrip.json
Normal file
46
tests/golden/M11-02/lighting-field-roundtrip.json
Normal file
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"camera": {
|
||||
"lensMm": 35,
|
||||
"sensorWidthMm": 32,
|
||||
"sensorHeightMm": 18,
|
||||
"sensorFit": 2,
|
||||
"shift": [0.1, -0.2],
|
||||
"near": 0.2,
|
||||
"far": 500,
|
||||
"orthoScale": 8,
|
||||
"viewportFov": 28.841546,
|
||||
"viewportHorizontalFov": 49.134343,
|
||||
"viewportFilmGauge": 18,
|
||||
"viewportFilmOffset": 1.8
|
||||
},
|
||||
"light": {
|
||||
"color": [0.25, 0.5, 0.75],
|
||||
"energy": 400,
|
||||
"exposure": 1,
|
||||
"temperature": 5000,
|
||||
"useTemperature": true,
|
||||
"castsShadow": false,
|
||||
"radius": 0.3,
|
||||
"spotAngle": 1.1,
|
||||
"spotBlend": 0.25,
|
||||
"areaSize": 3,
|
||||
"areaSizeY": 2,
|
||||
"areaSpread": 2.4,
|
||||
"sunAngle": 0.1,
|
||||
"viewportIntensity": 80,
|
||||
"viewportColor": [0.25, 0.3910381443, 0.4834313443]
|
||||
},
|
||||
"world": {
|
||||
"color": [0.1, 0.2, 0.3],
|
||||
"exposure": 0.5,
|
||||
"mist": {
|
||||
"enabled": true,
|
||||
"type": "LINEAR",
|
||||
"start": 2,
|
||||
"depth": 50,
|
||||
"intensity": 0.2,
|
||||
"height": 3
|
||||
}
|
||||
},
|
||||
"tolerance": 0.00001
|
||||
}
|
||||
32
tests/golden/M11-03/render-resource-budget.json
Normal file
32
tests/golden/M11-03/render-resource-budget.json
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"webgl2": {
|
||||
"maxLights": 16,
|
||||
"reservedLights": 2,
|
||||
"maxShadowMaps": 4,
|
||||
"reservedShadowMaps": 1,
|
||||
"shadowMapDimension": 1024,
|
||||
"maxTextureAssets": 256,
|
||||
"maxTexturePayloadBytes": 536870912,
|
||||
"maxTextureGPUBytes": 536870912
|
||||
},
|
||||
"webgpu": {
|
||||
"maxLights": 64,
|
||||
"reservedLights": 2,
|
||||
"maxShadowMaps": 8,
|
||||
"reservedShadowMaps": 1,
|
||||
"shadowMapDimension": 2048,
|
||||
"maxTextureAssets": 256,
|
||||
"maxTexturePayloadBytes": 536870912,
|
||||
"maxTextureGPUBytes": 1073741824
|
||||
},
|
||||
"overflow": {
|
||||
"requestedLights": 20,
|
||||
"renderedLights": 14,
|
||||
"droppedLights": 6,
|
||||
"requestedShadowMaps": 14,
|
||||
"renderedShadowMaps": 3,
|
||||
"blockedShadowMaps": 11,
|
||||
"codes": ["GPU_LIGHT_BUDGET_EXCEEDED", "GPU_SHADOW_BUDGET_EXCEEDED"]
|
||||
}
|
||||
}
|
||||
BIN
tests/golden/M11-04/blender-eevee-reference.png
Normal file
BIN
tests/golden/M11-04/blender-eevee-reference.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.8 KiB |
30
tests/golden/M11-04/manifest.json
Normal file
30
tests/golden/M11-04/manifest.json
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M11-04",
|
||||
"source": {
|
||||
"fixture": "tests/files/web/m11_render_reference.blend",
|
||||
"fixtureSha256": "d2bea55fe4de0b00e73a9241b4d1b0c802c2eb0e6159c0cd48e007b97b9d3963",
|
||||
"generator": "tools/web/generate-m11-render-reference.py",
|
||||
"generatorSha256": "118c98c77d98922e72660898bfb65842e11743fc77f4124c9f5088a76cb6a94a",
|
||||
"blenderVersion": "5.2.0 LTS"
|
||||
},
|
||||
"reference": {
|
||||
"file": "blender-eevee-reference.png",
|
||||
"sha256": "f5c22636a232bcbb0ed0f772418cb12fced18ff72f4999804197e42caa61480a",
|
||||
"width": 256,
|
||||
"height": 256,
|
||||
"colorSpace": "SRGB8",
|
||||
"alphaMode": "STRAIGHT",
|
||||
"renderEngine": "BLENDER_EEVEE"
|
||||
},
|
||||
"thresholds": {
|
||||
"maxMeanAbsoluteError": 4,
|
||||
"maxRootMeanSquaredError": 12,
|
||||
"maxP95ChannelError": 12,
|
||||
"maxBadPixelRatio": 0.02,
|
||||
"badPixelChannelError": 48,
|
||||
"foregroundDeltaFromReferenceBackground": 40,
|
||||
"minForegroundIntersectionOverUnion": 0.97,
|
||||
"maxAlphaCoverageDeltaRatio": 0
|
||||
}
|
||||
}
|
||||
48
tests/golden/M11-05/render-routing.json
Normal file
48
tests/golden/M11-05/render-routing.json
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"boundedEevee": {
|
||||
"target": "WEB_LOCAL_BOUNDED",
|
||||
"status": "READY",
|
||||
"capability": "WEB_REALTIME_BOUNDED",
|
||||
"reason": "BOUNDED_EEVEE"
|
||||
},
|
||||
"cycles": {
|
||||
"target": "SERVER_JOB",
|
||||
"withoutEndpoint": {
|
||||
"status": "BLOCKED",
|
||||
"code": "SERVER_JOB_UNAVAILABLE",
|
||||
"reason": "CYCLES_REQUIRES_SERVER"
|
||||
},
|
||||
"withEndpoint": {
|
||||
"status": "READY",
|
||||
"capability": "CYCLES_SERVER_RENDER"
|
||||
}
|
||||
},
|
||||
"complexEevee": {
|
||||
"target": "SERVER_JOB",
|
||||
"withoutEndpoint": {
|
||||
"status": "BLOCKED",
|
||||
"code": "SERVER_JOB_UNAVAILABLE",
|
||||
"reason": "COMPLEX_EEVEE_REQUIRES_SERVER"
|
||||
}
|
||||
},
|
||||
"hardware": {
|
||||
"target": "SERVER_JOB",
|
||||
"withoutEndpoint": {
|
||||
"status": "BLOCKED",
|
||||
"code": "SERVER_JOB_UNAVAILABLE",
|
||||
"reason": "HARDWARE_BACKEND_REQUIRES_SERVER"
|
||||
}
|
||||
},
|
||||
"webgpu": {
|
||||
"target": "WEB_LOCAL_BOUNDED",
|
||||
"status": "BLOCKED",
|
||||
"code": "WEBGPU_RENDERER_UNAVAILABLE"
|
||||
},
|
||||
"unknownEngine": {
|
||||
"target": "SERVER_JOB",
|
||||
"status": "BLOCKED",
|
||||
"capability": "UNSUPPORTED_RENDER_ENGINE",
|
||||
"code": "PLATFORM_CAPABILITY_UNAVAILABLE"
|
||||
}
|
||||
}
|
||||
18
tests/golden/M11-06/server-render-job.json
Normal file
18
tests/golden/M11-06/server-render-job.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M11-06",
|
||||
"blenderVersion": "5.2.0",
|
||||
"sourceBlendSha256": "d2bea55fe4de0b00e73a9241b4d1b0c802c2eb0e6159c0cd48e007b97b9d3963",
|
||||
"settingsSha256": "97bb832618bd27e8763722afa0d250ef74383fb355f0ff38763930f57ba1590b",
|
||||
"output": {
|
||||
"mime": "image/png",
|
||||
"minimumByteLength": 1,
|
||||
"sha256Pattern": "^[a-f0-9]{64}$"
|
||||
},
|
||||
"tamperCodes": {
|
||||
"source": "SERVER_RENDER_SOURCE_HASH_MISMATCH",
|
||||
"build": "SERVER_RENDER_BUILD_MISMATCH",
|
||||
"settings": "SERVER_RENDER_SETTINGS_HASH_MISMATCH",
|
||||
"output": "SERVER_RENDER_OUTPUT_HASH_MISMATCH"
|
||||
}
|
||||
}
|
||||
46
tests/golden/M11-07/compositor-node-golden.json
Normal file
46
tests/golden/M11-07/compositor-node-golden.json
Normal file
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M11-07",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/m11_compositor_allowlist.blend",
|
||||
"sha256": "e844eba69002101c8cf4f376cdd844c4be78729091627d898634088707374b29",
|
||||
"generator": "tools/web/generate-m11-compositor-allowlist.py",
|
||||
"generatorSha256": "1389998aac849065311c85ef559a7d381274c0ebe1987afc3b6783c66a9a678e",
|
||||
"blenderVersion": "5.2.0"
|
||||
},
|
||||
"width": 2,
|
||||
"height": 2,
|
||||
"maxAbsoluteError": 0,
|
||||
"allowlist": ["CONSTANT_COLOR", "EXPOSURE", "INVERT", "COMPOSITE"],
|
||||
"cases": [
|
||||
{
|
||||
"scene": "M11 Constant",
|
||||
"newNode": "CONSTANT_COLOR",
|
||||
"nodeTypes": ["CONSTANT_COLOR", "COMPOSITE"],
|
||||
"pixel": [0.125, 0.25, 0.5, 0.75],
|
||||
"float32Sha256": "3664d5dd48f309ba6a45e84ad84bf931c7775de21b2f8eef255651743dcc7bf5"
|
||||
},
|
||||
{
|
||||
"scene": "M11 Exposure",
|
||||
"newNode": "EXPOSURE",
|
||||
"nodeTypes": ["CONSTANT_COLOR", "EXPOSURE", "COMPOSITE"],
|
||||
"pixel": [0.25, 0.5, 1, 0.75],
|
||||
"float32Sha256": "0c8caa21f76305cf3fc3a677f5c7af34811a0b29aaa035a5f55be15e2d89accd"
|
||||
},
|
||||
{
|
||||
"scene": "M11 Invert",
|
||||
"newNode": "INVERT",
|
||||
"nodeTypes": ["CONSTANT_COLOR", "INVERT", "COMPOSITE"],
|
||||
"pixel": [0.875, 0.75, 0.5, 0.75],
|
||||
"float32Sha256": "d96848cf025a567550b7de8a3fcfb304594bb3fbad5c8722fa39f55e23845c55"
|
||||
},
|
||||
{
|
||||
"scene": "M11 Chain",
|
||||
"newNode": "INTEGRATION",
|
||||
"nodeTypes": ["CONSTANT_COLOR", "EXPOSURE", "INVERT", "COMPOSITE"],
|
||||
"pixel": [0.75, 0.5, 0, 0.75],
|
||||
"float32Sha256": "20394b91c848df1aca00179b6785df2d5b38d44c333c9d9d1c926fe674f03a04"
|
||||
}
|
||||
],
|
||||
"blockedNodeTypes": ["ALPHA_OVER", "BLUR", "IMAGE", "MIX", "RENDER_LAYER", "TRANSFORM", "UNSUPPORTED", "VIEWER"]
|
||||
}
|
||||
19
tests/golden/M11-08/compositor-unsupported-gate.json
Normal file
19
tests/golden/M11-08/compositor-unsupported-gate.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M11-08",
|
||||
"fixture": {
|
||||
"path": "tests/files/web/compositor_scene.blend",
|
||||
"sha256": "348eeefc28a0fdaa2d55b3c7251a737e0a04d82f61dd1eba804662a8f03713b9",
|
||||
"generator": "tools/web/generate-compositor-fixture.py",
|
||||
"generatorSha256": "e6ca40c989fb4bf1a26a34aa55861c2979142817a4cbe4e2628f4d0318775dc0",
|
||||
"blenderVersion": "5.2.0"
|
||||
},
|
||||
"scene": "CompositorScene",
|
||||
"unsupportedNode": {
|
||||
"name": "PreservedUnsupportedGlare",
|
||||
"type": "UNSUPPORTED",
|
||||
"blenderType": "CompositorNodeGlare"
|
||||
},
|
||||
"expectedErrorCode": "COMPOSITOR_NODE_UNSUPPORTED",
|
||||
"expectedRevisionDelta": 0
|
||||
}
|
||||
41
tests/golden/M11-09/sequencer-codec-probe.json
Normal file
41
tests/golden/M11-09/sequencer-codec-probe.json
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M11-09",
|
||||
"assets": [
|
||||
{
|
||||
"stripType": "IMAGE",
|
||||
"mimeType": "image/png",
|
||||
"path": "tests/files/web/media/sequencer-frame.png",
|
||||
"sourcePath": "media/not-an-image.movie",
|
||||
"byteLength": 261,
|
||||
"sha256": "295b083db2299ab904947eb39c17173de70c211882b0d855537d8f3cc27698ed",
|
||||
"backend": "IMAGE_BITMAP",
|
||||
"decoded": { "width": 8, "height": 8 }
|
||||
},
|
||||
{
|
||||
"stripType": "SOUND",
|
||||
"mimeType": "audio/wav",
|
||||
"path": "tests/files/web/media/sequencer-silence.wav",
|
||||
"sourcePath": "media/not-a-sound.png",
|
||||
"byteLength": 16044,
|
||||
"sha256": "56d4af65701c26df20bd4021eda95b6e830348ce3a746086079fe89285548dc9",
|
||||
"backend": "WEB_AUDIO",
|
||||
"decoded": { "sampleRate": 48000, "channels": 1, "durationFrames": 48000 }
|
||||
},
|
||||
{
|
||||
"stripType": "MOVIE",
|
||||
"mimeType": "video/mp4",
|
||||
"path": "tests/files/web/media/sequencer-probe.mp4",
|
||||
"sourcePath": "media/not-a-movie.wav",
|
||||
"byteLength": 1484,
|
||||
"sha256": "f35a5a2765aef9d0fed7146108c699d0beb03f34414cb27e6b7a7d4871187b65",
|
||||
"backend": "HTML_MEDIA",
|
||||
"decoded": { "width": 16, "height": 16, "durationMicros": 1000000 }
|
||||
}
|
||||
],
|
||||
"movieGenerator": {
|
||||
"path": "tools/web/generate-sequencer-codec-fixture.sh",
|
||||
"sha256": "bab7b0b56a16b96fd87302894c1c35d72ea316542d0ffffe9610458e47875b7a"
|
||||
},
|
||||
"blockedCode": "SEQUENCER_CODEC_UNSUPPORTED"
|
||||
}
|
||||
14
tests/golden/M11-10/sequencer-media-cache.json
Normal file
14
tests/golden/M11-10/sequencer-media-cache.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M11-10",
|
||||
"sourceSha256": "f35a5a2765aef9d0fed7146108c699d0beb03f34414cb27e6b7a7d4871187b65",
|
||||
"profile": {
|
||||
"kind": "MOVIE_RGBA8_FRAME",
|
||||
"width": 8,
|
||||
"height": 8,
|
||||
"colorSpace": "SRGB8",
|
||||
"alphaMode": "STRAIGHT"
|
||||
},
|
||||
"identitySha256": "68a3af14865841e81f69bd75f2605461de4819fe025d158ac3723fa0cdf31525",
|
||||
"proxyByteLength": 256
|
||||
}
|
||||
14
tests/golden/M11-11/sequencer-media-revision.json
Normal file
14
tests/golden/M11-11/sequencer-media-revision.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M11-11",
|
||||
"sourceSha256": "f35a5a2765aef9d0fed7146108c699d0beb03f34414cb27e6b7a7d4871187b65",
|
||||
"decisions": [
|
||||
["SCRUB", 2, "PUBLISH", null],
|
||||
["SEEK", 1, "STALE", "REVISION_CONFLICT"],
|
||||
["DECODE", 3, "STALE", "REVISION_CONFLICT"],
|
||||
["DECODE", 5, "PUBLISH", null],
|
||||
["SEEK", 6, "STALE", "REVISION_CONFLICT"]
|
||||
],
|
||||
"published": ["SCRUB@2", "DECODE@5"],
|
||||
"cacheWrites": ["DECODE@5"]
|
||||
}
|
||||
27
tests/golden/M11-12/sequencer-final-export.json
Normal file
27
tests/golden/M11-12/sequencer-final-export.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M11-12",
|
||||
"sourceBlendSha256": "5f5212487bb6b5df62b5ca915c75133f1ca45678614712ea4c7d902d823cd90c",
|
||||
"settingsSha256": "01e39d1fdd88c75aecad7bc48a2b756bbcd645929963528b42ceb180b51e5566",
|
||||
"requestSha256": "20d3a9e333804e014a993a9892a557842293fc44902229dd6eb65661f0691cfc",
|
||||
"withoutServer": {
|
||||
"schemaVersion": 1,
|
||||
"requestSha256": "20d3a9e333804e014a993a9892a557842293fc44902229dd6eb65661f0691cfc",
|
||||
"settingsSha256": "01e39d1fdd88c75aecad7bc48a2b756bbcd645929963528b42ceb180b51e5566",
|
||||
"route": "SERVER_EXPORT",
|
||||
"status": "BLOCKED",
|
||||
"code": "SEQUENCER_EXPORT_SERVER_UNAVAILABLE",
|
||||
"localEncoding": "BLOCKED",
|
||||
"browserVideoEncoderDetected": false
|
||||
},
|
||||
"withServer": {
|
||||
"schemaVersion": 1,
|
||||
"requestSha256": "20d3a9e333804e014a993a9892a557842293fc44902229dd6eb65661f0691cfc",
|
||||
"settingsSha256": "01e39d1fdd88c75aecad7bc48a2b756bbcd645929963528b42ceb180b51e5566",
|
||||
"route": "SERVER_EXPORT",
|
||||
"status": "SERVER_EXPORT_REQUIRED",
|
||||
"code": null,
|
||||
"localEncoding": "BLOCKED",
|
||||
"browserVideoEncoderDetected": false
|
||||
}
|
||||
}
|
||||
16
tests/golden/M11-13/sequencer-audio-recovery.json
Normal file
16
tests/golden/M11-13/sequencer-audio-recovery.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M11-13",
|
||||
"outputGain": 0.75,
|
||||
"lifecycle": [
|
||||
["SUSPENDED", "SILENT", false, 0.75, null],
|
||||
["SUSPENDED", "SILENT", true, 0, null],
|
||||
["RUNNING", "SILENT", true, 0, null],
|
||||
["RUNNING", "ENABLED", false, 0.75, null],
|
||||
["SUSPENDED", "SILENT", false, 0.75, null],
|
||||
["RUNNING", "ENABLED", false, 0.75, null],
|
||||
["CLOSED", "SILENT", false, 0, null]
|
||||
],
|
||||
"missingDevice": ["UNAVAILABLE", "BLOCKED", "SEQUENCER_AUDIO_DEVICE_UNAVAILABLE"],
|
||||
"resumeFailure": ["SUSPENDED", "SILENT", "SEQUENCER_AUDIO_RESUME_FAILED"]
|
||||
}
|
||||
BIN
tests/golden/M8-19/generated-smoke-x.rgba
Normal file
BIN
tests/golden/M8-19/generated-smoke-x.rgba
Normal file
Binary file not shown.
BIN
tests/golden/M8-19/generated-smoke-y.rgba
Normal file
BIN
tests/golden/M8-19/generated-smoke-y.rgba
Normal file
Binary file not shown.
BIN
tests/golden/M8-19/generated-smoke-z.rgba
Normal file
BIN
tests/golden/M8-19/generated-smoke-z.rgba
Normal file
Binary file not shown.
75
tests/golden/M8-19/manifest.json
Normal file
75
tests/golden/M8-19/manifest.json
Normal file
@@ -0,0 +1,75 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"taskId": "M8-19",
|
||||
"source": {
|
||||
"resourceId": "generated-smoke-vdb",
|
||||
"sha256": "586f7cdf4b3329fcb7ef00fc57b12a268baafdbaac0a2b3d1bfa142a22ccda33",
|
||||
"grid": "density",
|
||||
"activeVoxelCount": 13997,
|
||||
"indexBounds": {
|
||||
"min": [
|
||||
-14,
|
||||
-14,
|
||||
-14
|
||||
],
|
||||
"max": [
|
||||
14,
|
||||
14,
|
||||
14
|
||||
]
|
||||
}
|
||||
},
|
||||
"native": {
|
||||
"openVDBVersion": "13.0.0",
|
||||
"generatorSourceSha256": "4d18306b9a498f8de73dccea9efd9f268fc24e07404c3e425c994b51434584eb"
|
||||
},
|
||||
"renderContract": {
|
||||
"shaderSemanticVersion": "volume-wgsl-v1",
|
||||
"width": 64,
|
||||
"height": 64,
|
||||
"format": "RGBA8_UNORM",
|
||||
"interpolation": "LINEAR",
|
||||
"densityScale": 1,
|
||||
"emissionScale": 0,
|
||||
"anisotropy": 0,
|
||||
"color": [
|
||||
0.72,
|
||||
0.78,
|
||||
0.86
|
||||
],
|
||||
"axes": [
|
||||
"X",
|
||||
"Y",
|
||||
"Z"
|
||||
],
|
||||
"thresholds": {
|
||||
"maxChannelError": 2,
|
||||
"meanAbsoluteError": 0.1,
|
||||
"rmsError": 0.5,
|
||||
"alphaCoverageDeltaRatio": 0.002
|
||||
}
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"axis": "X",
|
||||
"file": "generated-smoke-x.rgba",
|
||||
"byteLength": 16384,
|
||||
"sha256": "87d08a77a644f37ed59609ebdd18555ab1924f9a3b30d8d084db35e7776cfb9c",
|
||||
"alphaPixels": 3552
|
||||
},
|
||||
{
|
||||
"axis": "Y",
|
||||
"file": "generated-smoke-y.rgba",
|
||||
"byteLength": 16384,
|
||||
"sha256": "87d08a77a644f37ed59609ebdd18555ab1924f9a3b30d8d084db35e7776cfb9c",
|
||||
"alphaPixels": 3552
|
||||
},
|
||||
{
|
||||
"axis": "Z",
|
||||
"file": "generated-smoke-z.rgba",
|
||||
"byteLength": 16384,
|
||||
"sha256": "87d08a77a644f37ed59609ebdd18555ab1924f9a3b30d8d084db35e7776cfb9c",
|
||||
"alphaPixels": 3552
|
||||
}
|
||||
]
|
||||
}
|
||||
29
tests/golden/M9-05/curve-toggle-cyclic.json
Normal file
29
tests/golden/M9-05/curve-toggle-cyclic.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"afterCyclicU": [
|
||||
true,
|
||||
false
|
||||
],
|
||||
"beforeCyclicU": [
|
||||
false,
|
||||
false
|
||||
],
|
||||
"blenderVersion": "5.2.0",
|
||||
"curveName": "WebCurveData",
|
||||
"fixture": "tests/files/web/nonmesh_scene.blend",
|
||||
"fixtureSha256": "ae8ef85d606aa120ce6b7611fc03407fd80bb60311e94a6ef73f6384d0b6c8b4",
|
||||
"operator": "TOGGLE_CYCLIC",
|
||||
"reopenedCyclicU": [
|
||||
true,
|
||||
false
|
||||
],
|
||||
"schemaVersion": 1,
|
||||
"splineIndex": 0,
|
||||
"splinePointCounts": [
|
||||
4,
|
||||
3
|
||||
],
|
||||
"splineTypes": [
|
||||
"POLY",
|
||||
"BEZIER"
|
||||
]
|
||||
}
|
||||
59
tests/golden/M9-08/grease-pencil-reorder.json
Normal file
59
tests/golden/M9-08/grease-pencil-reorder.json
Normal file
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"afterReorder": {
|
||||
"framesByLayer": {
|
||||
"Lines": [
|
||||
1
|
||||
],
|
||||
"Web Drafts": [
|
||||
12
|
||||
]
|
||||
},
|
||||
"layerOrder": [
|
||||
"Web Drafts",
|
||||
"Lines"
|
||||
]
|
||||
},
|
||||
"beforeReorder": {
|
||||
"framesByLayer": {
|
||||
"Lines": [
|
||||
1
|
||||
],
|
||||
"Web Drafts": [
|
||||
1
|
||||
]
|
||||
},
|
||||
"layerOrder": [
|
||||
"Lines",
|
||||
"Web Drafts"
|
||||
]
|
||||
},
|
||||
"blenderVersion": "5.2.0",
|
||||
"fixture": "tests/files/web/modifier_grease_pencil_scene.blend",
|
||||
"fixtureSha256": "3a8525077807f9178dac3a5ba84b524e5f8e80874b15c54e2a6658ecb80315a3",
|
||||
"greasePencilName": "GreasePencilData",
|
||||
"reopened": {
|
||||
"framesByLayer": {
|
||||
"Lines": [
|
||||
1
|
||||
],
|
||||
"Web Drafts": [
|
||||
12
|
||||
]
|
||||
},
|
||||
"layerOrder": [
|
||||
"Web Drafts",
|
||||
"Lines"
|
||||
]
|
||||
},
|
||||
"schemaVersion": 1,
|
||||
"source": {
|
||||
"framesByLayer": {
|
||||
"Lines": [
|
||||
1
|
||||
]
|
||||
},
|
||||
"layerOrder": [
|
||||
"Lines"
|
||||
]
|
||||
}
|
||||
}
|
||||
193
tests/golden/M9-12/weight-paint.json
Normal file
193
tests/golden/M9-12/weight-paint.json
Normal file
@@ -0,0 +1,193 @@
|
||||
{
|
||||
"blenderVersion": "5.2.0 LTS",
|
||||
"fixture": "rigged_shape_scene.blend",
|
||||
"mesh": "RiggedShapeMesh",
|
||||
"object": "RiggedShapeObject",
|
||||
"operations": [
|
||||
{
|
||||
"name": "normalize",
|
||||
"vertex": 2
|
||||
},
|
||||
{
|
||||
"limit": 2,
|
||||
"name": "limit-normalize",
|
||||
"vertex": 3
|
||||
},
|
||||
{
|
||||
"axis": 0,
|
||||
"name": "mirror",
|
||||
"tolerance": 0.0001,
|
||||
"vertices": [
|
||||
0,
|
||||
1
|
||||
]
|
||||
}
|
||||
],
|
||||
"schemaVersion": 1,
|
||||
"steps": [
|
||||
{
|
||||
"groups": [
|
||||
"Root",
|
||||
"Tip",
|
||||
"WebPaintGroup"
|
||||
],
|
||||
"name": "initial",
|
||||
"vertices": [
|
||||
{
|
||||
"index": 0,
|
||||
"weights": {
|
||||
"Root": 1.0,
|
||||
"Tip": 0.25,
|
||||
"WebPaintGroup": 0.75
|
||||
}
|
||||
},
|
||||
{
|
||||
"index": 1,
|
||||
"weights": {
|
||||
"Root": 1.0,
|
||||
"Tip": 0.25,
|
||||
"WebPaintGroup": 0.25
|
||||
}
|
||||
},
|
||||
{
|
||||
"index": 2,
|
||||
"weights": {
|
||||
"Root": 0.25,
|
||||
"Tip": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"index": 3,
|
||||
"weights": {
|
||||
"Root": 0.25,
|
||||
"Tip": 1.0
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"groups": [
|
||||
"Root",
|
||||
"Tip",
|
||||
"WebPaintGroup"
|
||||
],
|
||||
"name": "normalize",
|
||||
"vertices": [
|
||||
{
|
||||
"index": 0,
|
||||
"weights": {
|
||||
"Root": 1.0,
|
||||
"Tip": 0.25,
|
||||
"WebPaintGroup": 0.75
|
||||
}
|
||||
},
|
||||
{
|
||||
"index": 1,
|
||||
"weights": {
|
||||
"Root": 1.0,
|
||||
"Tip": 0.25,
|
||||
"WebPaintGroup": 0.25
|
||||
}
|
||||
},
|
||||
{
|
||||
"index": 2,
|
||||
"weights": {
|
||||
"Root": 0.142857149,
|
||||
"Tip": 0.571428597,
|
||||
"WebPaintGroup": 0.285714298
|
||||
}
|
||||
},
|
||||
{
|
||||
"index": 3,
|
||||
"weights": {
|
||||
"Root": 0.25,
|
||||
"Tip": 1.0
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"groups": [
|
||||
"Root",
|
||||
"Tip",
|
||||
"WebPaintGroup"
|
||||
],
|
||||
"name": "limit-normalize",
|
||||
"vertices": [
|
||||
{
|
||||
"index": 0,
|
||||
"weights": {
|
||||
"Root": 1.0,
|
||||
"Tip": 0.25,
|
||||
"WebPaintGroup": 0.75
|
||||
}
|
||||
},
|
||||
{
|
||||
"index": 1,
|
||||
"weights": {
|
||||
"Root": 1.0,
|
||||
"Tip": 0.25,
|
||||
"WebPaintGroup": 0.25
|
||||
}
|
||||
},
|
||||
{
|
||||
"index": 2,
|
||||
"weights": {
|
||||
"Root": 0.142857149,
|
||||
"Tip": 0.571428597,
|
||||
"WebPaintGroup": 0.285714298
|
||||
}
|
||||
},
|
||||
{
|
||||
"index": 3,
|
||||
"weights": {
|
||||
"Tip": 0.714285731,
|
||||
"WebPaintGroup": 0.285714298
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"groups": [
|
||||
"Root",
|
||||
"Tip",
|
||||
"WebPaintGroup"
|
||||
],
|
||||
"name": "mirror",
|
||||
"vertices": [
|
||||
{
|
||||
"index": 0,
|
||||
"weights": {
|
||||
"Root": 1.0,
|
||||
"Tip": 0.25,
|
||||
"WebPaintGroup": 0.899999976
|
||||
}
|
||||
},
|
||||
{
|
||||
"index": 1,
|
||||
"weights": {
|
||||
"Root": 1.0,
|
||||
"Tip": 0.25,
|
||||
"WebPaintGroup": 0.899999976
|
||||
}
|
||||
},
|
||||
{
|
||||
"index": 2,
|
||||
"weights": {
|
||||
"Root": 0.142857149,
|
||||
"Tip": 0.571428597,
|
||||
"WebPaintGroup": 0.285714298
|
||||
}
|
||||
},
|
||||
{
|
||||
"index": 3,
|
||||
"weights": {
|
||||
"Tip": 0.714285731,
|
||||
"WebPaintGroup": 0.285714298
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"tolerance": 1e-06
|
||||
}
|
||||
31
tests/golden/M9-14/manifest.json
Normal file
31
tests/golden/M9-14/manifest.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "M9-14",
|
||||
"domains": ["CURVE", "GREASE_PENCIL", "PAINT"],
|
||||
"fixtures": {
|
||||
"CURVE": {
|
||||
"path": "tests/files/web/nonmesh_scene.blend",
|
||||
"sha256": "ae8ef85d606aa120ce6b7611fc03407fd80bb60311e94a6ef73f6384d0b6c8b4"
|
||||
},
|
||||
"GREASE_PENCIL": {
|
||||
"path": "tests/files/web/modifier_grease_pencil_scene.blend",
|
||||
"sha256": "3a8525077807f9178dac3a5ba84b524e5f8e80874b15c54e2a6658ecb80315a3"
|
||||
},
|
||||
"PAINT": {
|
||||
"path": "tests/files/web/attribute_scene.blend",
|
||||
"sha256": "12fa75bb79f8c38e660d3d2a8fc9cc16dd3df4fc9208b0e2ad94fb1f8aa68f71"
|
||||
}
|
||||
},
|
||||
"requiredStages": ["WORKER_RESTART", "OOM", "GPU_RELEASE", "SMALL_SCENE"],
|
||||
"invariants": {
|
||||
"workerRestart": "identity hash preserved; new engine worker has one live Main handle",
|
||||
"oom": "GPU_GEOMETRY_UPLOAD maps to GPU_GEOMETRY_BUDGET_EXCEEDED and leaves zero temporary resources",
|
||||
"gpuRelease": "one WebGL2 resource release and one reinitialization render non-zero pixels",
|
||||
"smallScene": "domain identity, data IDs and visible pixels are restored"
|
||||
},
|
||||
"verification": {
|
||||
"unit": "web/tests/unit/editing-domain-recovery.test.mjs",
|
||||
"browser": "web/tests/e2e/editing-domain-recovery.spec.ts",
|
||||
"command": "npm --prefix web run test:editing-domain-recovery"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user