Render Order

The settings in this section influence the decision which job is send to a client first.

There are multiple priority levels in Royal Render.

You can view the priority of a job if you select jobs and clients in rrControl and execute Debug Menu/ Show "Send job to Client?" decision.


Level 2. Exclusive Priority

Projects with Exclusive Priority will be send first, no matter the jobs priority itself.

You can limit the number of clients. If this project/user/app has reached this many clients, then it does not have any further Exclusive Priority on the other clients.

But this is not a limitation, on all further clients the other settings like Averaging or the jobs priority take effect. 

So this project/user/app can get more clients.


Level 3. Privileged clients


You have a setting in the client config to privilege a client for job types.



"Privileged" and "Job Priority" explained as real-world scenario:

Multiple customer/clients are asking your company to do some animation.

One client is Disney, the other client the bakery around the corner.

The bakery tells you the commercial is very urgent and wants to have it done next week.

Disney is your privileged client, therefore you take their project.
Alghough the commercial has a very high priority for the bakery.



Privilege jobs of artist/user logged in

If you enable this setting, then you automatically add the name of the user logged in on a workstation to the privileged jobs of that client.

This mean as long as user X is logged in on the client, the client will take jobs of user X first.


Abort jobs on privileged clients

If you have set a project/user/app as privileged in the configuration of the client, then a client will take this kind of job first.

But only the next time the client ask for a job.

If you enable this setting, then the rrServer will abort any non-privileged jobs on that client if you send a new privileged job.





Level 4.+5. Distribute Clients, Average Level A + B

You can average all clients between projects, users or render applications.

Each project/user/app will get the same amount of clients.

You can set priority limits for the averaging, an upper and a lower limit.

Upper Priority    81-99

If you have a very important job that should take all clients, give this job a priority higher than the upper limit. 

Averaging Priority 21-80

If jobs have their priority inside this range, then the clients are averaged between the project/user/app.

As long as they are in this range, a project/user/app can set any priority.

This priority will only have an effect between jobs of this project/user/app.

For example Project A has set all jobs to priority 75, Project B has set all jobs to priority 50. Both projects get the same amount of client as all jobs are in the averaging priority range.

Lower Priority   0-20

These are jobs that are not important. E.g. if an artists wants to do some personal tests.

If he would have set the jobs priority inside the Averaging Priority range then we would get the same amount of clients as the other projects.

But as this is an unimportant job that should render after all other projects have rendered their jobs.



If jobs are equal after level 5


After all clients have been averaged between projects/users/apps, 

you can decide how clients should be distributed between the jobs of one project/user/app.

First In - First Out

The first job that you have send gets all clients

Average between jobs

If you have multiple jobs with the same priority, then all jobs get the same amount of clients.



Reduction factor if a job crashed (all clients of the job):

If a job crashed on any client, it will get a slightly lower priority for each crash.

This affects all clients that are assigned to the job


Reduction factor if a job crashed (only for the client that crashed):

If a job crashed on client X, then the job will get a slightly lower priority if client X asks for a job.



Render order modifier


Av. level A/B Allow Server to abort clients to average them every

The server can only influence the client averaging if a client asks for a job.

This means the client has to finish its current segment of frames it got.


Example without abort: Project A has high render times, 5h per frame. The farm is empty.

The project has send a job in the morning. All clients take this job and get 2 frames to render.

After lunch Project B sends some jobs. But all clients are busy rendering 2 frames in 10h. 

They will not ask for a new job before they are not finished with these 2 frames.

Project B does not get any client until the evening.

With abort:

Same example as above, but you have set the abort to every 3 hours.

Project Bs jobs have been send after lunch, so the next 3 hour step is at 15:00. 

At 15:00 the server recognizes that Project B should have the same amount of clients as Project A.

The server aborts half of the clients. (You loose some render time on these clients)

The free clients ask for a new job and get the job of Project B.


Avoid high render times:

As you can see very high render times are not very good for averaging. 

As you either loose render time or the other projects have to wait long.

You might want to use the Tile Frame job option if you have very high render times.



Priority boost of Preview Render status

If a job is in Preview state, then it has a slightly higher priority.

This is required as the artist should get some previews of all jobs very fast before all jobs render.

See Preview Render for more information


Priority boost of pre/ post/ finished scripts

If a job is in and of the script states (pre, post or finished) state, then it has a slightly higher priority.

The script execution is usually fast and should be done right after e.g. a job was approved.



Get job settings based on job files

Get Company Project name from


Usually you have multiple XSI databases + maya projects + compositing files +...+...+... that rely to one of your projects at your company.


And usally you have a folder structure on your fileserver which reflects the project names.

E.g.:

//fileserver/projects/018_Commercial_NewShoes/...

//fileserver/projects/019_Commercial_Chocolate/...

//fileserver/projects/MyAnimShort/...


Use this config setting to tell RR how to find your company project name.


This Name is needed if you want to use the History Database.



Get Sequence - Shot - Version from


The rrSubmitter is able to read the sequence, shot and version from your scene file.

Each part has three settings.

  1. A start string
    The sequence name that the rrSubmitter should read starts directly after this string
    If nothing is set, it starts with the first letter of the scene file name.
  2. An optional length value ###
    The length of the sequence name.
    If nothing is set, the sequence name stops at setting 3. or at the next point . or underscore _
  3. An optional end string
    The sequence name ends before this string
    If nothing is set, the sequence name stops at the next point . or underscore _





Examples:

sA043_sh34_v54.scn

Sequence= A43 , Shot=34, Version=54

Sequence:

  1. s

Shot:

  1. _sh

Version:

  1. _v

MAN_TR7_0270_light_CHR_np_v0011.Alpha.1001.exr

Sequence= 7 , Shot=0270, Version=0011

Sequence:

  1. _TR

Shot:

  1. _

Version:

  1. _v

A043sh34_v54.scn

Sequence= A43 , Shot=34, Version=54

Sequence:

  1. (nothing)

Shot:

  1. sh

Version:

  1. _v




Enable wait for approval

The job approval can be used differently:


1. No effect on RR behaviour (default) 


You can decide how you want to use the job approval. Some are setting a job to approved if the preview frames are ok, some artists set a job to approved if all frames are done and checked. 

2. "Approve after preview" enabled


If your company has set this configuration, then a job is disabled after it has rendered the preview frames. The job will not start rendering all frames if you do not approve it. 

3." Approve after render" enabled

If your company has set this configuration, then a job is disabled after it has rendered all frames AND the post-script was executed. After you have approved the job, it will start done- scripts (e.g. copy all frames on your Avid) and sets the job to finished. 



Sequence Divide

If you have a lot of jobs to render, then it is better that the rrServer send larger chunks to the clients.

If you do not have many jobs or just want that the first job in the queue finished faster, then change this setting.

Behavior of the job setting "Do not check for frames" 

This changes the behavior of the job setting "Do not check for frames".


Delete Jobs

The server will automatically delete jobs based on these settings.

History Database


All jobs that are finished and then deleted will be exported into the History Database.

You can view render times, frame ranges and all other information about a job.

And you can also resubmit a job. 


Misc

Start to render in the middle of a sequence ( highly recommended)

After the preview render, the server will send 1-2 packets of frames from the middle of the seqeunce to the clients first. This results in a better "average frame time" and has therefore positive effects on the total render time displayed. It has also an positive effect on on the automatic Sequence Divide Min/Max function of the server.


Wait X seconds between sending jobs

If a lot of clients get a job at the same time, then it could happen that your fileserver and/or network is on the limit.There have even been cases in which the fileserver crashed if you had 40 clients reading the same 200 textures at the same time.With this delay you can prevent clients from starting jobs at the same time.After a client got a job, the server waits until the next client can get a job.

If you do not have any problems, then you can keep this value at the default of 0.



Deassign client after x crashes

The server will automatically deassign a clients from a job if it crashed to often.

If the crashes of all clients are higher than the job setting "Max Crashes" then the complete job is disabled.



Deassign client after x times a limit was reached

The server will automatically deassign a clients from a job if it has reached a limit to often.

Limits are reached if either

  • a client renders more time than job setting "Max Render time".
  • the job takes more memory than the machine has. The clients aborts the job because of its config setting "Abort if system memory gets low".

If the number of limits reached of all clients are higher than the job setting "Max Limits"  then the complete job is disabled.


rrJob Data Location

The job data contains

  • Preview Images
  • rrViewer caches
  • Frames rendered table
  • Render log files
  • Framebar image
  • Stats image