载入中...
搜索中...
未找到
ProcgenSystem.h
浏览该文件的文档.
1#pragma once
2
3#include "procgen/PointSet.h"
4
5#include <cstdint>
6#include <string>
7#include <unordered_map>
8#include <vector>
9
10namespace eve::procgen {
11
14 std::string name;
15 int inputCount = 0;
16 int outputCount = 0;
17 float milliseconds = 0.f;
18};
19
25
28 std::string name;
29 int inputCount = 0;
30 uint64_t startedNanoseconds = 0;
31};
32
35public:
37 ProcgenContext(std::string systemName, uint32_t seed, std::string buildKey = {}, bool cacheHit = false);
38
40 std::string getName() const;
42 uint32_t getSeed() const;
44 uint32_t seedFor(const std::string& scope) const;
46 bool isActive() const;
48 bool hasFailed() const;
50 bool isCacheHit() const;
52 std::string getError() const;
54 std::string getBuildKey() const;
55
57 bool publish(const std::string& outputName, PointSet* points);
59 bool hasOutput(const std::string& outputName) const;
61 int getOutputCount() const;
63 std::string getOutputName(int index) const;
65 PointSet* getOutput(const std::string& outputName) const;
66
68 bool captureDebug(const std::string& stageName, PointSet* points);
70 int getDebugStageCount() const;
72 std::string getDebugStageName(int index) const;
74 PointSet* getDebugStage(const std::string& stageName) const;
75
77 PointSet* reuseStage(const std::string& stageName, const std::string& cacheKey);
79 bool cacheStage(const std::string& stageName, const std::string& cacheKey, PointSet* points);
81 int getStageCacheHitCount() const;
83 int getStageCacheMissCount() const;
84
86 void trace(const std::string& stageName, int inputCount, int outputCount, float milliseconds);
88 bool beginTrace(const std::string& stageName, int inputCount);
90 bool endTrace(int outputCount);
92 int getOpenTraceCount() const;
94 int getTraceCount() const;
96 std::string getTraceName(int index) const;
98 int getTraceInputCount(int index) const;
100 int getTraceOutputCount(int index) const;
102 float getTraceMilliseconds(int index) const;
103
105 void fail(const std::string& error);
107 void abort();
108
109private:
110 friend class Procgen;
111 void close();
112
113 std::string name_;
114 uint32_t seed_ = 1;
115 bool active_ = true;
116 bool cacheHit_ = false;
117 std::string error_;
118 std::string buildKey_;
119 std::unordered_map<std::string, PointSet> outputs_;
120 std::vector<std::string> outputOrder_;
121 std::unordered_map<std::string, PointSet> debugStages_;
122 std::vector<std::string> debugStageOrder_;
123 std::unordered_map<std::string, ProcgenCachedStage> stageCache_;
124 int stageCacheHits_ = 0;
125 int stageCacheMisses_ = 0;
126 std::vector<ProcgenStageMetric> traces_;
127 std::vector<ProcgenOpenTrace> openTraces_;
128};
129
132 uint32_t seed = 1;
133 uint64_t revision = 0;
134 std::string buildKey;
135 std::unordered_map<std::string, PointSet> outputs;
136 std::vector<std::string> outputOrder;
137 std::unordered_map<std::string, PointSet> debugStages;
138 std::vector<std::string> debugStageOrder;
139 std::unordered_map<std::string, ProcgenCachedStage> stageCache;
142 std::vector<ProcgenStageMetric> traces;
143};
144
145} // namespace eve::procgen
Trace trace
Definition Agent.cpp:49
#define EVENGINE_API_DOMAINS
Definition Export.h:110
JobScope scope
double & milliseconds
Definition OnnxGpgpu.cpp:19
std::string error
Definition Package.cpp:60
std::uint32_t seed
Definition PointSet.cpp:807
std::shared_ptr< const std::vector< glm::vec2 > > points
uint32_t index
Script-friendly collection of attributed 3D samples.
Definition PointSet.h:59
Staging area for one atomic rebuild of a named procedural system.
Procedural generation module. Phase A: runtime maps (semantic Grid2D → TileLayer)....
Definition Procgen.h:146
Result< int > publish(Heightmap &target, std::vector< float > candidate)
Publish.
One committed PointSet cache entry for a named script pipeline stage.
One currently running automatic stage timer.
One named diagnostic step recorded by a script-first generation transaction.
Immutable committed snapshot retained by Procgen across script reloads.
std::unordered_map< std::string, PointSet > debugStages
std::vector< std::string > debugStageOrder
std::unordered_map< std::string, ProcgenCachedStage > stageCache
std::unordered_map< std::string, PointSet > outputs
std::vector< std::string > outputOrder
std::vector< ProcgenStageMetric > traces