feat(web): wire Blender light contribution factors
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled

This commit is contained in:
mes123456
2026-08-30 18:36:55 +08:00
parent 2f00b3e322
commit 8bc5d61b75
41 changed files with 1967 additions and 24 deletions

View File

@@ -27,7 +27,11 @@ assert.equal(parent.nextTask, task);
const commands = { 1: [process.execPath, "tools/web/build-wbv2-capability-implementation-index.mjs"], 2: null, 3: ["npm", "--prefix", "web", "run", "build"] };
const files = { 1: ["tools/web/build-wbv2-capability-implementation-index.mjs", "tests/golden/WBV2-P27-001/verification-batch-plan.json"], 2: phase >= 59 ? ["blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp", "blender-5.2.0/source/blender/web_engine/web_engine_main_state.h", "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp", "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp"] : phase >= 57 ? ["blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp", "blender-5.2.0/source/blender/web_engine/web_engine_main_state.h", "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp"] : phase >= 56 ? ["blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp", "blender-5.2.0/source/blender/web_engine/web_engine_main_state.h", "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp"] : phase >= 55 ? ["blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp", "blender-5.2.0/source/blender/web_engine/web_engine_main_state.h", "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp", "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp"] : phase >= 54 ? ["blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp", "blender-5.2.0/source/blender/web_engine/web_engine_main_state.h", "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp", "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp"] : phase >= 53 ? ["blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp", "blender-5.2.0/source/blender/web_engine/web_engine_main_state.h", "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp", "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp"] : phase >= 52 ? ["blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp", "blender-5.2.0/source/blender/web_engine/web_engine_main_state.h", "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp", "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp"] : phase >= 51 ? ["blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp", "blender-5.2.0/source/blender/web_engine/web_engine_main_state.h", "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp"] : phase >= 50 ? ["blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp", "blender-5.2.0/source/blender/web_engine/web_engine_main_state.h", "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp"] : phase >= 49 ? ["blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp", "blender-5.2.0/source/blender/web_engine/web_engine_main_state.h", "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp"] : phase >= 47 ? ["blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp", "blender-5.2.0/source/blender/web_engine/web_engine_main_state.h", "web/protocol/web-engine.ts"] : ["web/app/src/app/App.tsx", "web/protocol/web-engine-capabilities.ts"], 3: ["web/protocol/web-engine-capabilities.ts", "web/app/src/workers/web-engine.worker.ts", "web/app/src/vendor/blender/web_engine.wasm"] };
const markers = { 1: "BUILD_CAPABILITY_FAMILY_IMPLEMENTATION_INDEX", 2: phase >= 71 ? "web_engine_blend_main_set_scene_view_layer_pass_settings" : phase >= 70 ? "web_engine_blend_main_set_scene_line_settings" : phase >= 69 ? "web_engine_blend_main_set_scene_stamp_settings" : phase >= 68 ? "web_engine_blend_main_set_scene_multiview_settings" : phase >= 67 ? "web_engine_blend_main_set_scene_sampling_settings" : phase >= 66 ? "web_engine_blend_main_set_scene_performance_settings" : phase >= 65 ? "web_engine_blend_main_set_scene_compositor_settings" : phase >= 64 ? "web_engine_blend_main_set_scene_hair_settings" : phase >= 63 ? "web_engine_blend_main_set_scene_motion_blur" : phase >= 62 ? "web_engine_blend_main_set_scene_image_format" : phase >= 61 ? "web_engine_blend_main_set_scene_color_management" : phase >= 60 ? "web_engine_blend_main_set_scene_simplify_settings" : phase >= 59 ? "web_engine_blend_main_set_scene_border_settings" : phase >= 58 ? "web_engine_blend_main_set_scene_collection_settings" : phase >= 57 ? "web_engine_blend_main_set_scene_view_layer_settings" : phase >= 56 ? "web_engine_blend_main_set_scene_bindings" : phase >= 55 ? "web_engine_blend_main_set_scene_pipeline_settings" : phase >= 54 ? "web_engine_blend_main_set_scene_timeline_settings" : phase >= 53 ? "web_engine_blend_main_set_scene_unit_settings" : phase >= 52 ? "web_engine_blend_main_set_scene_audio_settings" : phase >= 51 ? "web_engine_blend_main_set_scene_render_settings" : phase >= 50 ? "web_engine_blend_main_set_scene_properties" : phase >= 49 ? "web_engine_blend_main_set_physics_simulation" : phase >= 47 ? "web_engine_blend_main_set_geometry_node_graph" : "capability-family-workbench", 3: "WEB_ENGINE_COMMAND_CAPABILITIES" };
if (phase === 596) {
if (phase === 597) {
files[2] = ["blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp", "blender-5.2.0/source/blender/web_engine/web_engine_main_state.h", "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp", "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "web/protocol/scene-ir.ts", "web/protocol/web-engine.ts", "web/app/src/workers/web-engine.worker.ts", "web/app/src/app/App.tsx", "web/app/src/vendor/blender/web_engine.wasm", "web/app/public/vendor/blender/web_engine.wasm"];
markers[2] = "web_engine_blend_main_set_light_contribution_factors";
}
else if (phase === 596) {
files[2] = ["blender-5.2.0/source/blender/web_engine/web_engine_main_state.cpp", "blender-5.2.0/source/blender/web_engine/web_engine_main_state.h", "blender-5.2.0/source/blender/web_engine/web_engine_api.cpp", "blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp", "web/protocol/web-engine.ts", "web/app/src/workers/web-engine.worker.ts", "web/app/src/app/App.tsx", "web/app/src/vendor/blender/web_engine.wasm", "web/app/public/vendor/blender/web_engine.wasm"];
markers[2] = "web_engine_blend_main_set_light_area_shape";
}
@@ -61,9 +65,9 @@ if (commands[index]) execFileSync(commands[index][0], commands[index].slice(1),
const nextIndex = index + 1;
const nextTask = nextIndex <= 3 ? `WBV2-P${phase}-${String(nextIndex).padStart(3, "0")}` : `WBV2-P${phase + 1}-000`;
const family = index === 1 ? "INVENTORY.CAPABILITY_BATCH_INDEX" : index === 2 && phase >= 71 ? "RENDER.VIEW_LAYER_PASSES" : index === 2 && phase >= 70 ? "RENDER.LINE_SETTINGS" : index === 2 && phase >= 69 ? "RENDER.STAMP_SETTINGS" : index === 2 && phase >= 68 ? "RENDER.MULTIVIEW_SETTINGS" : index === 2 && phase >= 67 ? "RENDER.SAMPLING_SETTINGS" : index === 2 && phase >= 66 ? "PERFORMANCE.RENDER_SETTINGS" : index === 2 && phase >= 65 ? "COMPOSITOR.EXECUTION_SETTINGS" : index === 2 && phase >= 64 ? "CORE_SCENE_GRAPH.HAIR_SETTINGS" : index === 2 && phase >= 63 ? "CORE_SCENE_GRAPH.MOTION_BLUR" : index === 2 && phase >= 62 ? "CORE_SCENE_GRAPH.IMAGE_FORMAT" : index === 2 && phase >= 61 ? "CORE_SCENE_GRAPH.COLOR_MANAGEMENT" : index === 2 && phase >= 60 ? "CORE_SCENE_GRAPH.SIMPLIFY_SETTINGS" : index === 2 && phase >= 59 ? "CORE_SCENE_GRAPH.BORDER_SETTINGS" : index === 2 && phase >= 58 ? "CORE_SCENE_GRAPH.COLLECTION_SETTINGS" : index === 2 && phase >= 57 ? "CORE_SCENE_GRAPH.VIEW_LAYER_SETTINGS" : index === 2 && phase >= 56 ? "CORE_SCENE_GRAPH.BINDINGS" : index === 2 && phase >= 55 ? "CORE_SCENE_GRAPH.PIPELINE_SETTINGS" : index === 2 && phase >= 54 ? "CORE_SCENE_GRAPH.TIMELINE_SETTINGS" : index === 2 && phase >= 53 ? "CORE_SCENE_GRAPH.UNIT_SETTINGS" : index === 2 && phase >= 52 ? "CORE_SCENE_GRAPH.AUDIO_SETTINGS" : index === 2 && phase >= 51 ? "CORE_SCENE_GRAPH.RENDER_SETTINGS" : index === 2 && phase >= 50 ? "CORE_SCENE_GRAPH.SCENE_PROPERTIES" : index === 2 && phase >= 49 ? "SIMULATION.NATIVE_MANIFEST_BINDING" : index === 2 && phase >= 47 ? "GEOMETRY_NODES.NATIVE_MATERIALIZATION" : index === 2 ? "WORKFLOW.CAPABILITY_FAMILY_WORKBENCH" : "IMPLEMENTATION.CAPABILITY_FAMILY_SMOKE";
const reportedFamily = phase === 596 && index === 2 ? "RENDER.LIGHT_AREA_SHAPE" : phase === 595 && index === 2 ? "RENDER.LIGHT_TYPE" : phase === 77 && index === 2 ? "RENDER.WORLD_LIGHTGROUP_MEMBERSHIP" : phase === 76 && index === 2 ? "RENDER.OBJECT_LIGHTGROUP_MEMBERSHIP" : phase === 75 && index === 2 ? "RENDER.VIEW_LAYER_LIGHTGROUPS" : phase === 74 && index === 2 ? "RENDER.VIEW_LAYER_AOV" : phase === 73 && index === 2 ? "ARCHITECTURE.UNIFIED_WASM_JSON_ABI" : family;
const reportedFamily = phase === 597 && index === 2 ? "RENDER.LIGHT_CONTRIBUTION_FACTORS" : phase === 596 && index === 2 ? "RENDER.LIGHT_AREA_SHAPE" : phase === 595 && index === 2 ? "RENDER.LIGHT_TYPE" : phase === 77 && index === 2 ? "RENDER.WORLD_LIGHTGROUP_MEMBERSHIP" : phase === 76 && index === 2 ? "RENDER.OBJECT_LIGHTGROUP_MEMBERSHIP" : phase === 75 && index === 2 ? "RENDER.VIEW_LAYER_LIGHTGROUPS" : phase === 74 && index === 2 ? "RENDER.VIEW_LAYER_AOV" : phase === 73 && index === 2 ? "ARCHITECTURE.UNIFIED_WASM_JSON_ABI" : family;
const taskClass = index === 1 ? "QUEUE_ENABLEMENT" : index === 2 ? "SOURCE_IMPLEMENTATION" : "INTEGRATION_BUILD";
const capabilityId = index === 1 ? null : phase === 596 && index === 2 ? "CAP-RENDER-LIGHT-AREA-SHAPE" : phase === 595 && index === 2 ? "CAP-RENDER-LIGHT-TYPE" : `CAPABILITY-${reportedFamily.replaceAll(".", "-")}`;
const capabilityId = index === 1 ? null : phase === 597 && index === 2 ? "CAP-RENDER-LIGHT-CONTRIBUTION-FACTORS" : phase === 596 && index === 2 ? "CAP-RENDER-LIGHT-AREA-SHAPE" : phase === 595 && index === 2 ? "CAP-RENDER-LIGHT-TYPE" : `CAPABILITY-${reportedFamily.replaceAll(".", "-")}`;
const behaviorMarker = index === 2 ? markers[2] : markers[index];
const out = `tests/golden/${task}`;
const reportPath = `${out}/implementation-report.json`;