refactor(M03): extract terrain quality mesh cache

This commit is contained in:
2026-07-16 09:29:38 +04:00
parent 6617dfe74e
commit 97480e06bb
9 changed files with 379 additions and 39 deletions
@@ -0,0 +1,67 @@
extends SceneTree
## Scene-free contract, admission and LRU regression for terrain revisit meshes.
const CACHE_SCRIPT := preload("res://src/render/terrain/terrain_quality_mesh_cache.gd")
const LOADER_PATH := "res://src/scenes/streaming/streaming_world_loader.gd"
func _initialize() -> void:
var failures: Array[String] = []
_verify_cache_contract(failures)
_verify_loader_boundary(failures)
if not failures.is_empty():
for failure in failures:
push_error("TERRAIN_QUALITY_MESH_CACHE: %s" % failure)
quit(1)
return
print("TERRAIN_QUALITY_MESH_CACHE PASS contract_cases=15 loader_calls=3")
quit(0)
func _verify_cache_contract(failures: Array[String]) -> void:
var cache: RefCounted = CACHE_SCRIPT.new()
var mesh_a := ArrayMesh.new()
var mesh_b := ArrayMesh.new()
var mesh_c := ArrayMesh.new()
_expect_true(not bool(cache.call("store", "", mesh_a, "baked_full", 2)), "empty key rejected", failures)
_expect_true(not bool(cache.call("store", "a", null, "baked_full", 2)), "null mesh rejected", failures)
for excluded_source in ["control_splat_cache", "splat_cache", "splat"]:
_expect_true(not bool(cache.call("store", "a", mesh_a, excluded_source, 2)), "%s rejected" % excluded_source, failures)
_expect_true(bool(cache.call("store", "a", mesh_a, "baked_full", 2)), "first store", failures)
_expect_true(bool(cache.call("store", "b", mesh_b, "baked_full", 2)), "second store", failures)
var restored_a: Dictionary = cache.call("restore", "a")
_expect_true(restored_a.get("mesh") == mesh_a, "restore retains mesh reference", failures)
_expect_true(String(restored_a.get("source", "")) == "baked_full", "restore retains source", failures)
_expect_true(bool(cache.call("store", "c", mesh_c, "baked_full", 2)), "third store", failures)
_expect_true((cache.call("restore", "b") as Dictionary).is_empty(), "oldest evicted after touch", failures)
_expect_true(not (cache.call("restore", "a") as Dictionary).is_empty(), "touched entry retained", failures)
var diagnostics: Dictionary = cache.call("diagnostic_snapshot")
_expect_true(int(diagnostics.get("entry_count", 0)) == 2, "bounded count", failures)
(diagnostics.get("entries_oldest_to_newest") as Array).clear()
_expect_true(int((cache.call("diagnostic_snapshot") as Dictionary).get("entry_count", 0)) == 2, "diagnostics detached", failures)
_expect_true(not bool(cache.call("store", "zero", ArrayMesh.new(), "baked_full", -1)), "negative capacity clamps to zero", failures)
cache.call("clear")
_expect_true(int((cache.call("diagnostic_snapshot") as Dictionary).get("entry_count", -1)) == 0, "clear releases entries", failures)
func _verify_loader_boundary(failures: Array[String]) -> void:
var source := _read_text(LOADER_PATH, failures)
_expect_true(source.contains("TERRAIN_QUALITY_MESH_CACHE_SCRIPT.new()"), "loader composes cache", failures)
_expect_true(source.contains('_terrain_quality_mesh_cache.call("restore", tile_key)'), "loader delegates restore", failures)
_expect_true(source.contains('_terrain_quality_mesh_cache.call("clear")'), "loader delegates clear", failures)
for removed_symbol in ["_terrain_quality_mesh_cache_order", "func _touch_quality_terrain_mesh_cache", "func _trim_quality_terrain_mesh_cache"]:
_expect_true(not source.contains(removed_symbol), "loader omits %s" % removed_symbol, failures)
func _read_text(path: String, failures: Array[String]) -> String:
var file := FileAccess.open(path, FileAccess.READ)
if file == null:
failures.append("cannot open %s" % path)
return ""
return file.get_as_text()
func _expect_true(actual_value: bool, label: String, failures: Array[String]) -> void:
if not actual_value:
failures.append("%s expected true" % label)
@@ -0,0 +1 @@
uid://khd1ths2b4ya