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)

Note: See TracChangeset for help on using the changeset viewer.