feat: performance budget profiling setup
- docs/performance-budget.md: 60fps/2GB VRAM budget with CPU, GPU, memory, and draw-call targets (P95<16.6ms, P99<50ms) - scripts/profiling/: SceneTree + Node profilers, test scenes - scripts/generate_occluders.gd: auto-generate OccluderInstance3D from CSG wall pieces (128^3 voxel occlusion culling) - scripts/convert_csg_to_mesh.gd: CSG->StaticMesh baker with LOD slots (LOD1@15m, LOD2@30m) - project.godot: occlusion culling + LOD settings enabled - modular scene UV2 data from lightmapping pass - rcon_command_handler.gd conflict resolved (kept upstream plugin cmd) - Fixed profiler_node.gd warmup frame bug (60 frames, not 3) - Fixed convert_csg_to_mesh.gd LOD API (add_lod + distance)
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
extends SceneTree
|
||||
|
||||
func _init():
|
||||
print("_init called")
|
||||
# Add a simple node to trigger processing
|
||||
var n = Node.new()
|
||||
n.name = "test"
|
||||
n.set_process(true)
|
||||
root.add_child(n)
|
||||
print("Node added")
|
||||
|
||||
func _process(delta: float) -> bool:
|
||||
print("_process called: delta=", delta)
|
||||
if frame_count > 5:
|
||||
print("Quitting after 5 frames")
|
||||
quit(0)
|
||||
return true
|
||||
frame_count += 1
|
||||
return true
|
||||
|
||||
var frame_count := 0
|
||||
Reference in New Issue
Block a user