Dispatcher-Pipeline: verify the expansion of prerequisites
- fix a bug in the MockDispatcher, when duplicating the ExitNodes. A vector-ctor with curly braces will be interpreted as std::initializer_list - add visualisation of the contents appearing at the end of the pipeline *** something still broken here, increments don't happen as expected
This commit is contained in:
parent
542017aa65
commit
08dfe1007c
6 changed files with 285 additions and 65 deletions
|
|
@ -282,15 +282,14 @@ namespace engine {
|
|||
{
|
||||
size_t portIDX = SRC::dispatcher->resolveModelPort(port);
|
||||
return buildPipeline (
|
||||
this->transform([portIDX](PipeFrameTick& core) -> TicketDepend
|
||||
{
|
||||
FrameCoord frame; ///////////////////////////////////////////OOO need a better ctor for FrameCoord
|
||||
frame.absoluteNominalTime = core.currPoint;
|
||||
frame.modelPortIDX = portIDX;
|
||||
return {nullptr
|
||||
,& core.dispatcher->getJobTicketFor(frame)
|
||||
};
|
||||
}));
|
||||
SRC::transform(
|
||||
[portIDX](PipeFrameTick& core) -> TicketDepend
|
||||
{
|
||||
FrameCoord frame{core.currPoint, portIDX};
|
||||
return {nullptr
|
||||
,& core.dispatcher->getJobTicketFor(frame)
|
||||
};
|
||||
}));
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -303,16 +302,17 @@ namespace engine {
|
|||
expandPrerequisites()
|
||||
{
|
||||
return buildPipeline (
|
||||
this->expandAll([](TicketDepend& currentLevel)
|
||||
{
|
||||
JobTicket* parent = currentLevel.second;
|
||||
return lib::transformIterator (parent->getPrerequisites()
|
||||
,[&parent](JobTicket& prereqTicket)
|
||||
{ // parent shifted up to first pos
|
||||
return TicketDepend{parent, &prereqTicket};
|
||||
}
|
||||
);
|
||||
}));
|
||||
SRC::expandAll(
|
||||
[](TicketDepend& currentLevel)
|
||||
{
|
||||
JobTicket* parent = currentLevel.second;
|
||||
return lib::transformIterator (parent->getPrerequisites()
|
||||
,[&parent](JobTicket& prereqTicket)
|
||||
{ // parent shifted up to first pos
|
||||
return TicketDepend{parent, &prereqTicket};
|
||||
}
|
||||
);
|
||||
}));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -323,10 +323,11 @@ namespace engine {
|
|||
feedTo (play::DataSink sink)
|
||||
{
|
||||
return terminatePipeline (
|
||||
this->transform([sink](TicketDepend& currentLevel)
|
||||
{
|
||||
return currentLevel.second; ///////////////////////////////OOO construct a JobPlanning here
|
||||
}));
|
||||
SRC::transform(
|
||||
[sink](TicketDepend& currentLevel)
|
||||
{
|
||||
return currentLevel.second; ///////////////////////////////OOO construct a JobPlanning here
|
||||
}));
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ namespace engine {
|
|||
|
||||
using mobject::ModelPort;
|
||||
using lib::time::FrameCnt;
|
||||
using lib::time::TimeValue;
|
||||
using lib::time::TimeVar;
|
||||
using lib::time::Time;
|
||||
|
||||
|
|
@ -81,6 +82,14 @@ namespace engine {
|
|||
, modelPortIDX{0}
|
||||
{ }
|
||||
|
||||
explicit
|
||||
FrameCoord (TimeValue nominalTime, size_t portIDX =0)
|
||||
: absoluteNominalTime{nominalTime}
|
||||
, absoluteFrameNumber{std::numeric_limits<FrameCnt>::max()}
|
||||
, realTimeDeadline{Time::NEVER}
|
||||
, modelPortIDX{portIDX}
|
||||
{ }
|
||||
|
||||
// using default copy operations
|
||||
|
||||
/** @remarks sometimes we use NIL frame coordinate records
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@
|
|||
|
||||
#include "lib/format-cout.hpp"///////////////////////TODO
|
||||
#include "lib/iter-tree-explorer.hpp"
|
||||
#include "lib/format-string.hpp"
|
||||
#include "lib/format-util.hpp"
|
||||
#include "lib/util.hpp"
|
||||
|
||||
|
|
@ -41,6 +42,7 @@ using lib::treeExplore;
|
|||
using lib::time::PQuant;
|
||||
using lib::time::FrameRate;
|
||||
using util::isnil;
|
||||
using util::_Fmt;
|
||||
|
||||
|
||||
namespace steam {
|
||||
|
|
@ -75,8 +77,10 @@ namespace test {
|
|||
* - invoke the dispatcher to retrieve the top-level JobTicket
|
||||
* - expander function to explore prerequisite JobTickets
|
||||
* - integration: generate a complete sequence of (dummy)Jobs
|
||||
* - scaffolding and mocking used for this test
|
||||
*
|
||||
* - scaffolding and mocking used for this test
|
||||
* @remark the »pipeline« is implemented as »Lumiera Forward Iterator«
|
||||
* and thus forms a chain of on-demand processing. At the output side,
|
||||
* fully defined render Jobs can be retrieved, ready for scheduling.
|
||||
* @todo WIP-WIP 4/2023
|
||||
*
|
||||
* @see DispatcherInterface_test
|
||||
|
|
@ -106,6 +110,7 @@ namespace test {
|
|||
Time nominalTime = lib::test::randTime();
|
||||
int additionalKey = rand() % 5000;
|
||||
|
||||
// (1) mocked render Job
|
||||
MockJob mockJob{nominalTime, additionalKey};
|
||||
mockJob.triggerJob();
|
||||
CHECK (MockJob::was_invoked (mockJob));
|
||||
|
|
@ -113,7 +118,7 @@ namespace test {
|
|||
CHECK (nominalTime == MockJob::invocationNominalTime (mockJob) );
|
||||
CHECK (additionalKey == MockJob::invocationAdditionalKey(mockJob));
|
||||
|
||||
// Build a simple Segment at [10s ... 20s[
|
||||
// (2) Build a mocked Segment at [10s ... 20s[
|
||||
MockSegmentation mockSegs{MakeRec()
|
||||
.attrib ("start", Time{0,10} // start time (inclusive) of the Segment at 10sec
|
||||
,"after", Time{0,20} // the Segment ends *before* 20sec
|
||||
|
|
@ -140,6 +145,7 @@ namespace test {
|
|||
CHECK (123 == MockJob::invocationAdditionalKey (jobM)); // verify each job was invoked and linked to the correct spec,
|
||||
CHECK (555 == MockJob::invocationAdditionalKey (jobP)); // indicating that in practice it will activate the proper render node
|
||||
|
||||
// (3) demonstrate mocked frame dispatcher...
|
||||
coord.modelPortIDX = 1;
|
||||
coord.absoluteNominalTime = Time{0,30};
|
||||
MockDispatcher dispatcher; // a complete dispatcher backed by a mock Segment for the whole timeline
|
||||
|
|
@ -189,10 +195,10 @@ namespace test {
|
|||
void
|
||||
accessTopLevelJobTicket()
|
||||
{
|
||||
play::Timings timings (FrameRate::PAL);
|
||||
MockDispatcher dispatcher;
|
||||
auto [port,sink] = dispatcher.getDummyConnection(0);
|
||||
|
||||
play::Timings timings (FrameRate::PAL);
|
||||
auto [port,sink] = dispatcher.getDummyConnection(0);
|
||||
auto pipeline = dispatcher.forCalcStream (timings)
|
||||
.timeRange(Time{200,0}, Time{300,0})
|
||||
.pullFrom (port);
|
||||
|
|
@ -201,8 +207,7 @@ namespace test {
|
|||
CHECK (nullptr == pipeline->first); // is a top-level ticket
|
||||
JobTicket const& ticket = *pipeline->second;
|
||||
|
||||
FrameCoord dummy;
|
||||
dummy.absoluteNominalTime = Time::ZERO; // actual time point is irrelevant here
|
||||
FrameCoord dummy{Time::ZERO}; // actual time point is irrelevant here
|
||||
Job job = ticket.createJobFor(dummy);
|
||||
CHECK (dispatcher.verify(job, port, sink));
|
||||
}
|
||||
|
|
@ -212,7 +217,38 @@ namespace test {
|
|||
void
|
||||
exploreJobTickets()
|
||||
{
|
||||
UNIMPLEMENTED ("exploration function");
|
||||
MockDispatcher dispatcher{MakeRec() // define a single segment for the complete time axis
|
||||
.attrib("mark", 11) // the »master job« for each frame has pipeline-ID ≔ 11
|
||||
.scope(MakeRec()
|
||||
.attrib("mark",22) // add a »prerequisite job« with pipeline-ID ≔ 22
|
||||
.genNode())
|
||||
.genNode()};
|
||||
|
||||
play::Timings timings (FrameRate::PAL);
|
||||
auto [port,sink] = dispatcher.getDummyConnection(0);
|
||||
auto pipeline = dispatcher.forCalcStream (timings)
|
||||
.timeRange(Time{200,0}, Time{300,0})
|
||||
.pullFrom (port)
|
||||
.expandPrerequisites();
|
||||
|
||||
// the first element is identical to previous test
|
||||
CHECK (not isnil (pipeline));
|
||||
CHECK (nullptr == pipeline->first);
|
||||
Job job = pipeline->second->createJobFor(FrameCoord{});
|
||||
CHECK (11 == job.parameter.invoKey.part.a);
|
||||
|
||||
auto visualise = [](auto& pipeline) -> string
|
||||
{
|
||||
FrameCoord frame{pipeline.currPoint}; // can access the embedded PipeFrameTick core to get "currPoint" (nominal time)
|
||||
Job job = pipeline->second->createJobFor(frame); // looking always at the second element, which is the current JobTicket
|
||||
TimeValue nominalTime{job.parameter.nominalTime}; // job parameter holds the microseconds (gavl_time_t)
|
||||
int32_t mark = job.parameter.invoKey.part.a; // the MockDispatcher places the given "mark" here
|
||||
return _Fmt{"J(%d|%s)"} % mark % nominalTime;
|
||||
};
|
||||
CHECK (visualise(pipeline) == "J(11|200ms)"_expect); // first job in pipeline is at t=200ms and has mark=11 (it's the master Job for this frame)
|
||||
|
||||
CHECK (materialise (pipeline.transform (visualise))
|
||||
== "J(11|200ms)-J(22|200ms)-J(11|240ms)-J(22|240ms)-J(11|280ms)-J(22|280ms)"_expect);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -268,9 +268,9 @@ namespace test {
|
|||
|
||||
Segmentation::adaptSpecification ([times](Spec const& spec)
|
||||
{
|
||||
return Spec{ExitNodes{times, spec[0]}};
|
||||
});
|
||||
}
|
||||
return Spec{ExitNodes(times, spec[0])};
|
||||
}); // vector with <times> copies of spec[0]
|
||||
} // (Warning: use parens, not braces for this ctor...)
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -88,8 +88,7 @@ namespace test {
|
|||
|
||||
JobTicket const& ticket = seg.jobTicket(0);
|
||||
|
||||
FrameCoord coord;
|
||||
coord.absoluteNominalTime = Time(0,15);
|
||||
FrameCoord coord{Time(0,15)};
|
||||
Job job = ticket.createJobFor(coord);
|
||||
CHECK (MockJobTicket::isAssociated (job, ticket));
|
||||
|
||||
|
|
@ -128,8 +127,7 @@ namespace test {
|
|||
void
|
||||
verify_MockJobTicket()
|
||||
{
|
||||
FrameCoord coord;
|
||||
coord.absoluteNominalTime = lib::test::randTime();
|
||||
FrameCoord coord{lib::test::randTime()};
|
||||
|
||||
// build a render job to do nothing....
|
||||
Job nopJob = JobTicket::NOP.createJobFor(coord);
|
||||
|
|
@ -158,9 +156,8 @@ namespace test {
|
|||
void
|
||||
verify_MockSegmentation()
|
||||
{
|
||||
FrameCoord coord;
|
||||
Time someTime = lib::test::randTime();
|
||||
coord.absoluteNominalTime = someTime;
|
||||
FrameCoord coord{someTime};
|
||||
//
|
||||
//-----------------------------------------------------------------/// Empty default Segmentation
|
||||
{
|
||||
|
|
@ -392,8 +389,7 @@ namespace test {
|
|||
void
|
||||
verify_MockDispatcherSetup()
|
||||
{
|
||||
FrameCoord frame;
|
||||
frame.absoluteNominalTime = Time{0,30};
|
||||
FrameCoord frame{Time{0,30}};
|
||||
{
|
||||
MockDispatcher dispatcher;
|
||||
// automatically generates some fake connection points...
|
||||
|
|
|
|||
|
|
@ -64554,6 +64554,21 @@
|
|||
<node CREATED="1686440291217" ID="ID_1760718510" MODIFIED="1686440311118" TEXT="wie Allo; aber liefert smart-Ptr/Handle per Value "/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1686696361018" ID="ID_320473769" MODIFIED="1686696804492" TEXT="generischen Rahmen + front-End schaffen">
|
||||
<linktarget COLOR="#5954b6" DESTINATION="ID_320473769" ENDARROW="Default" ENDINCLINATION="-1037;63;" ID="Arrow_ID_34332665" SOURCE="ID_725756209" STARTARROW="None" STARTINCLINATION="-1213;-50;"/>
|
||||
<linktarget COLOR="#5954b6" DESTINATION="ID_320473769" ENDARROW="Default" ENDINCLINATION="-929;56;" ID="Arrow_ID_593145833" SOURCE="ID_1712895163" STARTARROW="None" STARTINCLINATION="-1213;-50;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1686696687820" ID="ID_576907632" MODIFIED="1686696698610" TEXT="Entwurf: AllocatorHandle">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node CREATED="1686696703507" ID="ID_1801575044" MODIFIED="1686696716990" TEXT="entspricht dem API-Schema/Konzept"/>
|
||||
<node COLOR="#338800" CREATED="1686696718121" ID="ID_1035772269" MODIFIED="1686696767814" TEXT="vorläufig implementiert durch std::list mit Inline-Buffer">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1686696768847" ID="ID_48162464" MODIFIED="1686696788657" TEXT="das gleiche Aufruf-Pattern in AllocationCluster integrieren">
|
||||
<icon BUILTIN="hourglass"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1482524641484" ID="ID_1651495185" MODIFIED="1557498707236" TEXT="Architektur">
|
||||
|
|
@ -68800,6 +68815,23 @@
|
|||
<linktarget COLOR="#e0804f" DESTINATION="ID_1313231227" ENDARROW="Default" ENDINCLINATION="2513;164;" ID="Arrow_ID_861540006" SOURCE="ID_439004499" STARTARROW="None" STARTINCLINATION="676;-84;"/>
|
||||
<icon BUILTIN="help"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1686695888671" ID="ID_1061886265" MODIFIED="1686696070777" TEXT="muß Zugang zum Dispatcher und ModelPort-Mapping vermitteln">
|
||||
<linktarget COLOR="#b35d7b" DESTINATION="ID_1061886265" ENDARROW="Default" ENDINCLINATION="-1354;59;" ID="Arrow_ID_1911280206" SOURCE="ID_1778082418" STARTARROW="None" STARTINCLINATION="-1217;-45;"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1686587670595" ID="ID_1397178542" MODIFIED="1686587735758" TEXT="RenderEnvironmentClosure">
|
||||
<icon BUILTIN="info"/>
|
||||
<node CREATED="1686587706724" ID="ID_1590315006" MODIFIED="1686587714337" TEXT="kennt die konkreten Timings"/>
|
||||
<node CREATED="1686587714829" ID="ID_1834326796" MODIFIED="1686587726016" TEXT="kennt sinnvollerweise den ModelPort"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1686695997437" ID="ID_1676301176" MODIFIED="1686696013892" TEXT="muß bereits implizit auf eine Timeline festgelegt sein">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1686587807222" ID="ID_408686784" MODIFIED="1686696248703" TEXT="Dispatcher wird im CalcStream-ctor aufgerufen">
|
||||
<linktarget COLOR="#7e59a0" DESTINATION="ID_408686784" ENDARROW="Default" ENDINCLINATION="531;627;" ID="Arrow_ID_1115341840" SOURCE="ID_1518154187" STARTARROW="None" STARTINCLINATION="2212;-102;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1685235060310" ID="ID_756189610" MODIFIED="1685235066850" TEXT="Steuerung der Timings">
|
||||
|
|
@ -69661,9 +69693,9 @@
|
|||
<linktarget COLOR="#5e5972" DESTINATION="ID_839385817" ENDARROW="Default" ENDINCLINATION="-60;-5;" ID="Arrow_ID_1889540359" SOURCE="ID_947997771" STARTARROW="None" STARTINCLINATION="-23;5;"/>
|
||||
<node CREATED="1681521333950" ID="ID_1882410873" MODIFIED="1681521341316" TEXT="ist ein passiver Bauplan"/>
|
||||
<node CREATED="1681521341799" ID="ID_1831867258" MODIFIED="1681521349882" TEXT="wird on-demand konkretisiert"/>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1681521357484" ID="ID_633522131" MODIFIED="1685051080939" TEXT="kolaboriert mit einem aktiven ExplorationState">
|
||||
<node COLOR="#5b280f" CREATED="1681521357484" ID="ID_633522131" MODIFIED="1686697191588" TEXT="kolaboriert mit einem aktiven ExplorationState">
|
||||
<arrowlink COLOR="#fc295f" DESTINATION="ID_1306786593" ENDARROW="Default" ENDINCLINATION="-46;56;" ID="Arrow_ID_1518460249" STARTARROW="None" STARTINCLINATION="93;-5;"/>
|
||||
<icon BUILTIN="help"/>
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -69724,6 +69756,10 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1681168963297" ID="ID_16461379" MODIFIED="1681168972656" TEXT="warum wird der hier explizit referenziert?">
|
||||
<icon BUILTIN="help"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1686696297995" ID="ID_1712895163" MODIFIED="1686696804491" TEXT="könnte ersetzt werdem durch geplantes front-End (AllocatorHandle)">
|
||||
<arrowlink COLOR="#5954b6" DESTINATION="ID_320473769" ENDARROW="Default" ENDINCLINATION="-929;56;" ID="Arrow_ID_593145833" STARTARROW="None" STARTINCLINATION="-1213;-50;"/>
|
||||
<icon BUILTIN="hourglass"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1685402933522" ID="ID_517929511" MODIFIED="1685406668551" TEXT="TimeAnchor">
|
||||
|
|
@ -69772,10 +69808,10 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
<node CREATED="1681169265752" ID="ID_388188594" MODIFIED="1681169268100" TEXT="JobTicket">
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1681169270184" ID="ID_778864690" MODIFIED="1681169283728" TEXT="die schon gecodete Logik sieht sehr nach Skizze aus">
|
||||
<node COLOR="#435e98" CREATED="1681169270184" ID="ID_778864690" MODIFIED="1686697119512" TEXT="die schon gecodete Logik sieht sehr nach Skizze aus">
|
||||
<linktarget COLOR="#cc608f" DESTINATION="ID_778864690" ENDARROW="Default" ENDINCLINATION="-105;0;" ID="Arrow_ID_1647546023" SOURCE="ID_380471864" STARTARROW="None" STARTINCLINATION="-62;-87;"/>
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1681169286078" ID="ID_514995150" MODIFIED="1681169634256" TEXT="Datenstrukturen konsistent?">
|
||||
<node COLOR="#5b280f" CREATED="1681169286078" ID="ID_514995150" MODIFIED="1686697084458" TEXT="Datenstrukturen konsistent?">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
|
|
@ -69783,7 +69819,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<body>
|
||||
<ul>
|
||||
<li>
|
||||
requirement_ als (single)linked-List <i>RLY?</i>
|
||||
Prerequisites und Channel-Tabelle als (single)linked-List <i>RLY?</i>
|
||||
</li>
|
||||
<li>
|
||||
SubTicketStack wirklich schon gut durchdacht? Funktionsweise?
|
||||
|
|
@ -69792,17 +69828,41 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="help"/>
|
||||
<node CREATED="1686696984126" ID="ID_1975204240" MODIFIED="1686697044147" TEXT="für die Prerequisites: ja ist sinnvoll">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
die werden nämlich nur einfach traversiert, und dahinter verbergen sich verschachtelte JobTicket, die allesamt im gleichen Speicherblock (im AllocationCluster) liegen
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1681169607062" ID="ID_62995786" MODIFIED="1681169631536" TEXT="Auswertungs-Logik mit pullNext() / push()">
|
||||
<node COLOR="#338800" CREATED="1686697046607" ID="ID_1765761108" MODIFIED="1686697074312" TEXT="die Channel-Tabelle fällt aus logischen Gründen weg">
|
||||
<arrowlink COLOR="#32bc16" DESTINATION="ID_804638831" ENDARROW="Default" ENDINCLINATION="194;0;" ID="Arrow_ID_1177586994" STARTARROW="None" STARTINCLINATION="13;81;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#5b280f" CREATED="1681169607062" ID="ID_62995786" MODIFIED="1686697111394" TEXT="Auswertungs-Logik mit pullNext() / push()">
|
||||
<font NAME="SansSerif" SIZE="12"/>
|
||||
<icon BUILTIN="help"/>
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1686697094440" ID="ID_1061633626" MODIFIED="1686697105959" TEXT="Logik inzwischen nahezu zu 100% neu gecodet">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1684869532824" ID="ID_1031809806" MODIFIED="1684869549968" TEXT="Datenstrukturen „begradigen“">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1684869450278" ID="ID_804638831" MODIFIED="1684889723346" TEXT="Channel-Parameter zurückbauen">
|
||||
<node COLOR="#338800" CREATED="1684869450278" ID="ID_804638831" MODIFIED="1686697068025" TEXT="Channel-Parameter zurückbauen">
|
||||
<arrowlink COLOR="#daffc5" DESTINATION="ID_122410804" ENDARROW="Default" ENDINCLINATION="-352;-925;" ID="Arrow_ID_194808318" STARTARROW="None" STARTINCLINATION="544;39;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<linktarget COLOR="#32bc16" DESTINATION="ID_804638831" ENDARROW="Default" ENDINCLINATION="194;0;" ID="Arrow_ID_1177586994" SOURCE="ID_1765761108" STARTARROW="None" STARTINCLINATION="13;81;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1686696897576" ID="ID_218942560" MODIFIED="1686696913065" TEXT="ExplorationState komplett überflüssig">
|
||||
<icon BUILTIN="flag-pink"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -70095,6 +70155,21 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1686695464553" ID="ID_260036671" MODIFIED="1686695470854" TEXT="size_t resolveModelPort (ModelPort)">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1686695480435" ID="ID_1246751606" MODIFIED="1686695551021" TEXT="„irgendwo dahinter“ muß es eine Mapping-Tabelle geben">
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
<node CREATED="1686695530345" ID="ID_1488205205" MODIFIED="1686695546201" TEXT="ModelPorts werden vom Build-Prozeß aufgesammelt">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1686695555061" ID="ID_11476315" MODIFIED="1686695585744" TEXT="vorläufig: billige Implementierung im MockDispatcher (DummyPlayConnection)">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1686695587015" ID="ID_963018599" MODIFIED="1686695612277" TEXT="»PlaybackVerticalSlice« : es muß einen Mock-Build geben">
|
||||
<icon BUILTIN="hourglass"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1681742238869" ID="ID_1876795011" MODIFIED="1681742244980" TEXT="Planungs-Pipeline aufbauen">
|
||||
|
|
@ -74155,7 +74230,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1681742836996" ID="ID_1790705283" MODIFIED="1684878198471" TEXT="invoke the dispatcher to retrieve the top-level JobTicket">
|
||||
<node COLOR="#435e98" CREATED="1681742836996" FOLDED="true" ID="ID_1790705283" MODIFIED="1686696098642" TEXT="invoke the dispatcher to retrieve the top-level JobTicket">
|
||||
<icon BUILTIN="full-3"/>
|
||||
<node COLOR="#338800" CREATED="1685843183070" ID="ID_1520386382" MODIFIED="1685925294619" TEXT="Lösung für schichtweises Testen der Pipeline finden">
|
||||
<linktarget COLOR="#f62658" DESTINATION="ID_1520386382" ENDARROW="Default" ENDINCLINATION="147;-261;" ID="Arrow_ID_81911203" SOURCE="ID_164064059" STARTARROW="None" STARTINCLINATION="-591;27;"/>
|
||||
|
|
@ -74214,7 +74289,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="messagebox_warning"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1685979177023" ID="ID_886135870" MODIFIED="1686582622037" TEXT="Mock-Lösung">
|
||||
<node COLOR="#338800" CREATED="1685979177023" FOLDED="true" ID="ID_886135870" MODIFIED="1686582622037" TEXT="Mock-Lösung">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1685979197228" ID="ID_545092486" MODIFIED="1686498877227" TEXT="Thema: ModelPort">
|
||||
<arrowlink COLOR="#6290c0" DESTINATION="ID_377967489" ENDARROW="Default" ENDINCLINATION="1458;-612;" ID="Arrow_ID_1683217879" STARTARROW="None" STARTINCLINATION="36;5;"/>
|
||||
|
|
@ -74560,7 +74635,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1685988152809" ID="ID_255556137" MODIFIED="1686604197744" TEXT="API erweitern : portNum">
|
||||
<node COLOR="#338800" CREATED="1685988152809" FOLDED="true" ID="ID_255556137" MODIFIED="1686604197744" TEXT="API erweitern : portNum">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1685990098487" ID="ID_829030768" MODIFIED="1686619889283" TEXT="grundsätzlich: YAGNI">
|
||||
<linktarget COLOR="#67a7cd" DESTINATION="ID_829030768" ENDARROW="Default" ENDINCLINATION="22;176;" ID="Arrow_ID_1621721947" SOURCE="ID_1835927835" STARTARROW="None" STARTINCLINATION="-485;0;"/>
|
||||
|
|
@ -75026,13 +75101,6 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</html></richcontent>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1686587381975" ID="ID_1778082418" MODIFIED="1686587406618" TEXT="muß aber per Dispatcher oder RenderEnvironmentClosure vermittelt werden">
|
||||
<icon BUILTIN="yes"/>
|
||||
<node CREATED="1686587670595" ID="ID_1397178542" MODIFIED="1686587735758" TEXT="RenderEnvironmentClosure">
|
||||
<icon BUILTIN="info"/>
|
||||
<node CREATED="1686587706724" ID="ID_1590315006" MODIFIED="1686587714337" TEXT="kennt die konkreten Timings"/>
|
||||
<node CREATED="1686587714829" ID="ID_1834326796" MODIFIED="1686587726016" TEXT="kennt sinnvollerweise den ModelPort"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1686587745207" ID="ID_125177626" MODIFIED="1686617224688" TEXT="benötigt wird die Übersetzung im Dispatcher / PipeineBuilder">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1686587899493" ID="ID_216367008" MODIFIED="1686617257686" TEXT="MockDispatcher muß zudem Segmentation vorbereiten">
|
||||
|
|
@ -75053,9 +75121,10 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1686587807222" ID="ID_408686784" MODIFIED="1686587887739" TEXT="und dieser wird im CalcStream-ctor aufgerufen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1686587381975" ID="ID_1778082418" MODIFIED="1686696074027" TEXT="muß aber per Dispatcher oder RenderEnvironmentClosure vermittelt werden">
|
||||
<arrowlink COLOR="#b35d7b" DESTINATION="ID_1061886265" ENDARROW="Default" ENDINCLINATION="-1354;59;" ID="Arrow_ID_1911280206" STARTARROW="None" STARTINCLINATION="-1217;-45;"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
<icon BUILTIN="hourglass"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -75069,7 +75138,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1681742836996" ID="ID_1224963303" MODIFIED="1684878201314" TEXT="expander function to explore prerequisite JobTickets">
|
||||
<node COLOR="#435e98" CREATED="1681742836996" ID="ID_1224963303" MODIFIED="1686698178114" TEXT="expander function to explore prerequisite JobTickets">
|
||||
<icon BUILTIN="full-4"/>
|
||||
<node COLOR="#338800" CREATED="1685803059992" ID="ID_1436607523" MODIFIED="1685925254772" TEXT="expander-Funktor(einfach)">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
|
|
@ -75094,7 +75163,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1685803493398" ID="ID_312364874" MODIFIED="1685803517871" TEXT="⟹ Folge schrittweise verschobener Paare"/>
|
||||
<node COLOR="#5b280f" CREATED="1685803519291" ID="ID_1625457703" MODIFIED="1685925038510" TEXT="⟹ neue Idee: künstlichen Root einführen">
|
||||
<node COLOR="#5b280f" CREATED="1685803519291" FOLDED="true" ID="ID_1625457703" MODIFIED="1685925038510" TEXT="⟹ neue Idee: künstlichen Root einführen">
|
||||
<icon BUILTIN="idea"/>
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
<node COLOR="#5b280f" CREATED="1685803556486" ID="ID_9551953" MODIFIED="1685925058966" TEXT="der muß vom Basis-Iterator-Level künstlich eingeführt werden">
|
||||
|
|
@ -75162,6 +75231,91 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1686698185293" ID="ID_611682817" MODIFIED="1686698192373" TEXT="Verifikation im Test">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1686705330560" ID="ID_603570215" MODIFIED="1686705437819" TEXT="analog zu vorherigem Testfall + expandPrerequisites()">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1686705344942" ID="ID_1723569587" MODIFIED="1686707637095" TEXT="erst mal erstes Element der Pipeline verifizieren">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#435e98" CREATED="1686705447273" ID="ID_221817969" MODIFIED="1686707595983" TEXT="mark kommt nicht an">
|
||||
<icon BUILTIN="broken-line"/>
|
||||
<node COLOR="#435e98" CREATED="1686705467174" ID="ID_1522933004" MODIFIED="1686708560481" TEXT="Debugger">
|
||||
<icon BUILTIN="info"/>
|
||||
<node CREATED="1686705473382" ID="ID_96197356" MODIFIED="1686705488951" TEXT="schon im Dispatcher steckt eine falsche Spec"/>
|
||||
<node CREATED="1686705489536" ID="ID_1332854132" MODIFIED="1686705514221" TEXT="die 1. aufgedoppelte ExitNode hat pipeline-ID == 2"/>
|
||||
<node CREATED="1686705514739" ID="ID_588643481" MODIFIED="1686705525626" TEXT="die 2. aufgedoppelte ExitNode ist wie erwartet"/>
|
||||
<node CREATED="1686705529934" ID="ID_1632731907" MODIFIED="1686705535953" TEXT="in Einzelschritte zerlegen">
|
||||
<node CREATED="1686705564953" ID="ID_711721855" MODIFIED="1686705598323" TEXT="Oh-Oh : das hat bisher nur zufällig funktioniert">
|
||||
<icon BUILTIN="smiley-oh"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1686705610559" ID="ID_239110834" MODIFIED="1686705625441" TEXT="ExitNodes dingens{times, dings}">
|
||||
<icon BUILTIN="broken-line"/>
|
||||
<node CREATED="1686705626841" ID="ID_560123463" MODIFIED="1686705648264" TEXT="die VER****te std::initializer_list mal wieder">
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
<node CREATED="1686705649990" ID="ID_1216105715" MODIFIED="1686705665128" TEXT="das baut einen Vector mit (rein zufällig) zwei Elementen"/>
|
||||
<node CREATED="1686705665908" ID="ID_558118178" MODIFIED="1686705688868" TEXT="und die erste ExitNode wird mit Seed == 2 gebaut (der times-Parameter)"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1686707572008" ID="ID_794052549" MODIFIED="1686707589325" TEXT="Fix: runde Klammern verwenden für Vector-ctor">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1686707605322" ID="ID_808486766" MODIFIED="1686707627529" TEXT="convenience-Ctors für FrameCoord">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1686707628165" ID="ID_1904306767" MODIFIED="1686707629880" TEXT="tut">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1686705365836" ID="ID_138010755" MODIFIED="1686707642210" TEXT="Visualisierung für das jeweils aktuelle JobTicket">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
also stets das 2.Element im Tupel. Bin nämlich zu faul, hier auch noch das Tupel irgendwie zu rendern. Das mach ich dann im nächsten Testfall...
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#338800" CREATED="1686708389268" ID="ID_285309447" MODIFIED="1686708455385" TEXT="grundsätzlich kommen die Daten jetzt wie erwartet an">
|
||||
<icon BUILTIN="ksmiletris"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1686708410704" ID="ID_441152759" MODIFIED="1686708443003" TEXT="Koordination der Gesamt-Pipeline funktioniert nicht richtig">
|
||||
<icon BUILTIN="broken-line"/>
|
||||
<node CREATED="1686708460080" ID="ID_990579031" MODIFIED="1686708540153">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
<font color="#801111" face="Monospaced" size="2">FAIL___expectation___________ </font>
|
||||
</p>
|
||||
<p>
|
||||
<font color="#801111" face="Monospaced" size="2">expect:J(11|200ms)-J(22|200ms)-J(11|240ms)-J(22|240ms)-J(11|280ms)-J(22|280ms) </font>
|
||||
</p>
|
||||
<p>
|
||||
<font color="#801111" face="Monospaced" size="2">actual:J(11|200ms)-J(22|</font><font color="#ff0000" face="Monospaced" size="2">240</font><font color="#801111" face="Monospaced" size="2">ms)-J(11|240ms)-J(22|</font><font color="#ff0000" face="Monospaced" size="2">280</font><font color="#801111" face="Monospaced" size="2">ms)-J(11|280ms)-J(22|</font><font color="#ff0000" face="Monospaced" size="2">320</font><font color="#801111" face="Monospaced" size="2">ms) </font>
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="info"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1686708564668" ID="ID_1705252197" MODIFIED="1686708592362" TEXT="schaltet da der Tick-Generator zu früh weiter?">
|
||||
<icon BUILTIN="help"/>
|
||||
<node CREATED="1686708691354" ID="ID_429578844" MODIFIED="1686708711789" TEXT="weil das expand() in die Iterate-Operation eingehängt ist..."/>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1686708741452" ID="ID_1456716715" MODIFIED="1686708761451" TEXT="aber warum schaltet dann der nächste Wert von der Basissequenz nicht weiter?">
|
||||
<icon BUILTIN="help"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1681742836996" ID="ID_1332543018" MODIFIED="1684878204163" TEXT="integration: generate a complete sequence of (dummy)Jobs">
|
||||
<arrowlink COLOR="#4d3a6e" DESTINATION="ID_92268538" ENDARROW="Default" ENDINCLINATION="184;0;" ID="Arrow_ID_1841184971" STARTARROW="None" STARTINCLINATION="146;7;"/>
|
||||
|
|
@ -75208,6 +75362,13 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1686696155270" ID="ID_1449641019" MODIFIED="1686696177741" TEXT="muß effektiv beim Start des Play-Prozesses erstellt werden">
|
||||
<icon BUILTIN="info"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1686696187981" ID="ID_1518154187" MODIFIED="1686696256320" TEXT="wird dann in den CalcStream geschoben">
|
||||
<arrowlink COLOR="#7e59a0" DESTINATION="ID_408686784" ENDARROW="Default" ENDINCLINATION="531;627;" ID="Arrow_ID_1115341840" STARTARROW="None" STARTINCLINATION="2212;-102;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1684984505425" ID="ID_92268538" MODIFIED="1684984529415" TEXT="Job-Erzeugung festlegen">
|
||||
<linktarget COLOR="#4d3a6e" DESTINATION="ID_92268538" ENDARROW="Default" ENDINCLINATION="184;0;" ID="Arrow_ID_1841184971" SOURCE="ID_1332543018" STARTARROW="None" STARTINCLINATION="146;7;"/>
|
||||
|
|
@ -76109,6 +76270,23 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1683809266764" ID="ID_742096528" LINK="#ID_945659088" MODIFIED="1683809302469" TEXT="innerhalb einer Timeline gilt die Segmentation für alle Ports gleichermaßen"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1686696552906" ID="ID_1183618451" MODIFIED="1686696573197" TEXT="Verbindung zur Speicherverwaltung">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1686696297995" ID="ID_725756209" MODIFIED="1686696584128">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
geplant: generisches front-End für <i>Custom Allocator</i>
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<arrowlink COLOR="#5954b6" DESTINATION="ID_320473769" ENDARROW="Default" ENDINCLINATION="-1037;63;" ID="Arrow_ID_34332665" STARTARROW="None" STARTINCLINATION="-1213;-50;"/>
|
||||
<icon BUILTIN="hourglass"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1683762860166" ID="ID_1202392530" MODIFIED="1683762863249" TEXT="Konzepte"/>
|
||||
</node>
|
||||
|
|
|
|||
Loading…
Reference in a new issue