Jump to content

ROP dependencies


Recommended Posts

 cache1    cache2  cache3  cache4
    \      /          \     /
      merge            merge
        |              /
      batch +---------+
        \   |  .
         prepost

This will make cache3 and cache4 dependent on the entire frame range of cache1 and cache2. If the frame ranges of cache1 and cache2 are smaller than the range you're rendering, you can set their frame mode to be "Frame Range (strict)" and no frames outside the range you specify will be rendered.

For example, this will produce the following for frames 1-10 (-f 1 10 1) when interleaved (-I). -p prints the results rather than executing the ROPs.

/ -> render -I -p -f 1 10 1 /obj/ropnet1/prepost1
1 [ ] cache1    1 2 3 4 5 6 7 8 9 10 
2 [ ] cache2    1 2 3 4 5 6 7 8 9 10 
3 [ 1 2 ] cache3        1
4 [ 1 2 ] cache4        1
5 [ 1 2 ] cache3        2
6 [ 1 2 ] cache4        2
7 [ 1 2 ] cache3        3
8 [ 1 2 ] cache4        3
9 [ 1 2 ] cache3        4
10 [ 1 2 ] cache4       4
11 [ 1 2 ] cache3       5
12 [ 1 2 ] cache4       5
13 [ 1 2 ] cache3       6
14 [ 1 2 ] cache4       6
15 [ 1 2 ] cache3       7
16 [ 1 2 ] cache4       7
17 [ 1 2 ] cache3       8
18 [ 1 2 ] cache4       8
19 [ 1 2 ] cache3       9
20 [ 1 2 ] cache4       9
21 [ 1 2 ] cache3       10
22 [ 1 2 ] cache4       10

The first number is the ID of the job, the numbers in square brackets are the job IDs they are dependent on, and the last number is the frame to be rendered.

If you need cache2 to be dependent on cache1 instead, remove the merge and wire cache1 as the input of cache 2:

   cache1
     |
   cache2
     |
   batch   +---- etc. 
     \    |
      prepost

Think of merge as allowing its inputs to render in parallel (no dependencies), while making a ROP an input a second ROP implies serial rendering.

Link to comment
Share on other sites

Thanks so much for the awesome detailed reply Mark!

I've tried it out and it works like how you have mentioned.

One small question left though: Using your method, is it possible to get cache1 and cache2 to run frame by frame? Right now they have to run node by node because of the batch node below, it seems.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...