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....
80 lines
1.5 KiB
Text
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
|