25 lines
1.0 KiB
GDScript
25 lines
1.0 KiB
GDScript
extends Node2D
|
|
|
|
func _ready() -> void:
|
|
DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_DISABLED)
|
|
Engine.max_fps = 0
|
|
var baseline := "--baseline" in OS.get_cmdline_user_args()
|
|
var script: Script = load("res://tmp/shield_visual_before_optimization.gd" if baseline else "res://scripts/game/shield_visual.gd")
|
|
var shields: Array[Node2D] = []
|
|
for index in 120:
|
|
var shield := Node2D.new()
|
|
shield.set_script(script)
|
|
shield.shield_radius = 24.0
|
|
shield.position = Vector2(55+(index%15)*82,65+(index/15)*80)
|
|
add_child(shield)
|
|
shields.append(shield)
|
|
for frame in 30: await get_tree().process_frame
|
|
var start := Time.get_ticks_usec()
|
|
var draw_calls := 0.0
|
|
for frame in 150:
|
|
for shield in shields: shield.set_shield_values(100,100)
|
|
await get_tree().process_frame
|
|
draw_calls += Performance.get_monitor(Performance.RENDER_TOTAL_DRAW_CALLS_IN_FRAME)
|
|
print("SHIELD PERFORMANCE %s: 120 shields, average %.3f ms/frame, %.1f draw calls/frame" % ["BEFORE" if baseline else "AFTER",(Time.get_ticks_usec()-start)/150000.0,draw_calls/150.0])
|
|
get_tree().quit()
|