Changeset 57cd51e in Lumiera
- Timestamp:
-
2026-04-19T16:02:58Z
(4 weeks ago)
- Author:
- Ichthyostega <prg@…>
- Branches:
- dev/play
- Children:
- 606d98b
- Parents:
- 1601838
- git-author:
- Ichthyostega <prg@…> (19/04/26 16:02:38)
- git-committer:
- Ichthyostega <prg@…> (19/04/26 16:02:58)
- Message:
-
BufferProvider: draft setup for engine-wide coordination hub
What I am building step by step right now is the first draft
of a production-grade render buffer management scheme.
For this I need suitable implementations of BufferStag (and BufferStore)
These will include a LocalSlice to hold thread-local »satelitte services«,
which in turn need a connection to some central coordination hub.
The thread-local instances can access the hub via our lib::Depend (I have just
verified that this works as intended, with on-demand creation of the
central instance on first access from some thread. This is important,
since very likely we need to install a dedicated and speficically wired
service instance, which must happen prior to first dependency-request
via lib::Depend. And since the worker-threads are created by the Engine,
we get ample opportunity to do so before starting those threads.
Included in this changeset is a first rough draft of the central registry
EngineBufferMetadata — I have modelled it analogous to the SimpleBufferStateRegistry,
which is the test-level implementation of the BufferStage API.
However, we do not want to expose direct buffer allocation operations
on the central hub, and thus I have left out the respecive parts of the API.
Furthermore, I have added an abandon() operation, without there beeing
a need for such an operation right now. But since this operation is tricky
and potentially dangerous, I prefer implementing it the correct way,
since I have a clear understanding what this entails at the moment.
-
(No files)
-