LUMIERA.clone/tests/47engine.tests
Ichthyostega 33c8f1c5b1 Invocation: investigate forwarding an output data block
This investigation started out as solving an already solved problem...
I'll continue this as a design exercise non the less.

__Some explanation__: To achieve the goal of invoking a Node end-to-end,
the gap between the `Port` API, the `ProcNode` API and the `RenderInvocation` must be closed.
This leads to questions of API design: ''what core operation should the `ProcNode` API expose?''
 * is `ProcNode` just a forwarding / delegating container and becoming redundant?
 * or does the API rather move in the direction of an ''Exit Node''?

This leads to the question how the opened `OutputSlot` can be exposed as a `BuffHandle`
to allow to set off the recursive Node invocation. As it turns out, the onerous for this step
lies on the actual `OutputSlot` implementation, since the API and output protocol already requires
to expose a `BuffHandle`. Yet there is no "real" implementation available, just a Mock setup based
on `DiagnosticBufferProvider`, which obviously can just be passed-through.

Which leaves me with mixed feelings. For one it is conveninent to skip this topic for now,
but on the other hand the design of `BufferProvider` does not seem well suited for such an proxying task.
Thus I decided to explore this aspect in the form of a prototyping test....
2024-12-23 02:31:29 +01:00

80 lines
1.5 KiB
Text

TESTING "Component Test Suite: Render Engine parts" ./test-suite --group=engine
TEST "Test support: dummy frames" TestFrame_test <<END
return: 0
END
TEST "Test support: dummy buffer provider" TrackingHeapBlockProvider_test <<END
return: 0
END
TEST "Buffer provider diagnostics" BufferProviderProtocol_test <<END
return: 0
END
TEST "Bbuffer metadata type keys" BufferMetadataKey_test <<END
return: 0
END
TEST "Buffer metadata and state transitions" BufferMetadata_test <<END
return: 0
END
PLANNED "Proxy Buffer-provider" BufferProxyProvider_test <<END
return: 0
END
PLANNED "Engine Interface basics" EngineInterface_test <<END
END
PLANNED "Engine calculation streams" CalcStream_test <<END
END
TEST "Frame Dispatcher Interface" DispatcherInterface_test <<END
END
TEST "Render job properties" JobHash_test <<END
return: 0
END
TEST "Render job planning calculation" JobPlanning_test <<END
out-lit: Frame #5 @ ∆200ms
out-lit: real-time-origin : 0:05:00.000
out-lit: total latency : ≺30ms≻
out-lit: deadline : 0:05:00.170
out-lit: Prerequisite......
out-lit: master deadline : 0:05:00.160
out-lit: latency : ≺60ms≻
out-lit: prereq deadline : 0:05:00.100
return: 0
END
TEST "Render job planning pipeline setup" JobPlanningPipeline_test <<END
return: 0
END
TEST "Mock support for render job planning" MockSupport_test <<END
return: 0
END
PLANNED "scheduler interface" SchedulerInterface_test <<END
END
TEST "Step timing basics" Timings_test <<END
END