Calculate initial buffer size based on network node count.
177{
179 return 0;
180 }
181
182 size_t node_count =
network->get_node_count();
183 if (node_count == 0) {
185 "NodeNetwork has zero nodes. Buffer will be created with minimum size.");
186 return 4096;
187 }
188
189 size_t base_size = 0;
190
191 if (
auto* operator_ptr =
network->get_operator()) {
192 if (auto graphics_op = dynamic_cast<Nodes::Network::GraphicsOperator*>(operator_ptr)) {
193 size_t vertex_count = graphics_op->get_vertex_count();
194 auto layout = graphics_op->get_vertex_layout();
195
196 if (vertex_count > 0 && layout.stride_bytes > 0) {
197 base_size = vertex_count * layout.stride_bytes;
198
200 "Network geometry buffer sizing: {} vertices × {} bytes = {} bytes (operator: {})",
201 vertex_count, layout.stride_bytes, base_size, operator_ptr->get_type_name());
202 }
203 }
204 }
205
206 if (base_size == 0) {
207 size_t vertex_size = sizeof(Kakshya::PointVertex);
208 base_size = node_count * vertex_size;
209
211 "Network geometry buffer fallback sizing: {} nodes × {} bytes = {} bytes",
212 node_count, vertex_size, base_size);
213 }
214
215 auto allocated_size = static_cast<size_t>(
216 static_cast<float>(base_size) * over_allocate_factor);
217
218 if (over_allocate_factor > 1.0F) {
220 "Over-allocated by {}x: {} → {} bytes",
221 over_allocate_factor, base_size, allocated_size);
222 }
223
224 return allocated_size;
225}
#define MF_WARN(comp, ctx,...)
#define MF_DEBUG(comp, ctx,...)
Core::GlobalNetworkConfig network
@ BufferManagement
Buffer Management (Buffers::BufferManager, creating buffers)
@ Buffers
Buffers, Managers, processors and processing chains.