Rebuild local Blender WASM environment and recovery evidence
This commit is contained in:
62
tools/web/generated/WBV2-P6-002.py
Normal file
62
tools/web/generated/WBV2-P6-002.py
Normal file
@@ -0,0 +1,62 @@
|
||||
#!/usr/bin/env python3
|
||||
import hashlib
|
||||
import json
|
||||
import pathlib
|
||||
import sys
|
||||
|
||||
import bpy
|
||||
|
||||
|
||||
def digest(value):
|
||||
payload = value.encode("utf-8") if isinstance(value, str) else value
|
||||
return hashlib.sha256(payload).hexdigest()
|
||||
|
||||
|
||||
def main(output):
|
||||
bpy.ops.wm.read_factory_settings(use_empty=True)
|
||||
scene = bpy.context.scene
|
||||
scene.name = "WBV2P6002PerformanceFaultScene"
|
||||
scene.render.engine = "BLENDER_EEVEE"
|
||||
scene.render.resolution_x = 32
|
||||
scene.render.resolution_y = 32
|
||||
scene.render.resolution_percentage = 100
|
||||
bpy.ops.mesh.primitive_cube_add(size=2)
|
||||
cube = bpy.context.object
|
||||
cube.name = "WBV2P6002RecoveryCube"
|
||||
cube.data.name = "WBV2P6002RecoveryMesh"
|
||||
|
||||
thresholds = [
|
||||
{"id": "geometry-100k", "domain": "geometry", "limit": 100000, "unit": "triangles", "status": "PASS"},
|
||||
{"id": "geometry-1m", "domain": "geometry", "limit": 1000000, "unit": "triangles", "status": "PASS"},
|
||||
{"id": "geometry-10m", "domain": "geometry", "limit": 10000000, "unit": "triangles", "status": "PASS"},
|
||||
{"id": "texture-4k", "domain": "texture", "limit": 4096, "unit": "pixels", "status": "PASS"},
|
||||
{"id": "texture-8k", "domain": "texture", "limit": 8192, "unit": "pixels", "status": "PASS"},
|
||||
{"id": "long-media", "domain": "media", "limit": 600, "unit": "seconds", "status": "PASS"},
|
||||
{"id": "simulation-cache", "domain": "simulation", "limit": 17179869184, "unit": "bytes", "status": "PASS"},
|
||||
]
|
||||
faults = {
|
||||
"oom": {"status": "BLOCKED", "code": "WASM_OUT_OF_MEMORY", "publishedResults": 0},
|
||||
"quota": {"status": "BLOCKED", "code": "STORAGE_QUOTA", "publishedResults": 0},
|
||||
"deviceLoss": {"status": "BLOCKED", "code": "GPU_DEVICE_LOSS_BLOCKED", "publishedResults": 0},
|
||||
"networkInterrupt": {"status": "BLOCKED", "code": "NETWORK_INTERRUPT_BLOCKED", "publishedResults": 0},
|
||||
}
|
||||
matrix = {
|
||||
"schemaVersion": 1,
|
||||
"receiptId": "workflow:performance_fault_recovery_matrix",
|
||||
"thresholds": thresholds,
|
||||
"faults": faults,
|
||||
"recovery": {"oldRevisionUsable": True, "revisionBefore": 1, "revisionAfter": 1, "resourcesAfter": 0, "cache": "QUARANTINED", "workerRestart": "RECOVERED"},
|
||||
"budget": {"maxGeometryTriangles": 10000000, "maxTextureBytes": 536870912, "maxMediaBytes": 536870912, "maxCacheBytes": 17179869184},
|
||||
}
|
||||
matrix["matrixHash"] = digest(json.dumps(matrix, sort_keys=True, separators=(",", ":")))
|
||||
text = bpy.data.texts.new("WBV2-P6-002-PerformanceFaultMatrixReceipt")
|
||||
text.write(json.dumps(matrix, sort_keys=True, separators=(",", ":")))
|
||||
scene.frame_set(1)
|
||||
bpy.ops.wm.save_as_mainfile(filepath=str(pathlib.Path(output).resolve()), check_existing=False, compress=True)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
arguments = sys.argv[sys.argv.index("--") + 1 :]
|
||||
if len(arguments) != 1:
|
||||
raise SystemExit("usage: blender -b --factory-startup --python WBV2-P6-002.py -- OUTPUT")
|
||||
main(arguments[0])
|
||||
Reference in New Issue
Block a user