メインコンテンツまでスキップ

CookとGenerateとDirty

前回 PDG で処理を実行する基本を書きましたが、
Processor を使用して WorkItem を作り、実行するのは「Generate」と「Cook」という 2 段階が存在しています。

Generate

PDG では、Processor が WorkItem を作ることを「Generate」と呼びます。

ノードを作成した段階では、ノードはこのように〇が表示されていません。

このノードを右クリックすると「Generate Node」があるので実行します。

実行すると、このように灰色の〇が ItemCount で指定した数だけ作成されます。

これは WorkItem が作成されて実行待ち状態になっていて、
TaskGraphTable の State を見ると「Uncooked」になっています。

TOPs の中では各所で「Generate」というキーワードが出てきますが(Generate When 等)
WorkItem を生成することを指しています。

Cook

WorkItem を生成するのを「Generate」と呼ぶのに対して、作成した WorkItem を実行することを Cook と呼びます。

ノードを右クリックすると、その中に「Cook Node」があります。
これを実行すると、

実際に処理が実行されます。
Cook され、問題なく完了すると WorkItem はグリーン(Cooked)になります。

Dirty

もう一度 Cook をしようとしても、すでに実行済の場合はすでに実行済なので再実行されません。
再実行したい場合は、パラメーターを変更して実行するか、
再実行したいノードに「Dirty フラグ」を入れる必要があります。

Dirty This Node を実行すると、

Generate 前の状態に戻ります。
この状態に戻ると、再度 Generate、Cook を実行することができます。

Generate をしないでも、Task を実行するときに Generate は自動で実行されます。
しかし、Generate と Cook が別の処理であるというのを理解してい置くのは 今後様々な処理をするときに重要になってきます。

参考