Difference between revisions of "UM:GPUPreviewCaching"
Line 24: | Line 24: | ||
* ''DVO Effects'' do not use the GPU. | * ''DVO Effects'' do not use the GPU. | ||
* ''OFX Plugins'' do not use the GPU (unless they use the GPU internally e.g. Sapphire). | * ''OFX Plugins'' do not use the GPU (unless they use the GPU internally e.g. Sapphire). | ||
+ | * ''Dissolves, Composite effects and Dynamics'' will require CPU caching. | ||
* ''Interlaced'' material will use the GPU but ''blurs'' and ''Pan & Scan'' will cause a CPU cache to be required. | * ''Interlaced'' material will use the GPU but ''blurs'' and ''Pan & Scan'' will cause a CPU cache to be required. | ||
− | * ''Shapes'' up to a certain complexity | + | * ''Shapes'' up to a certain complexity will be realtime. Complex animated shapes may require caching for realtime playback. See Preferences - ''Use Timings'' for information |
− | * ''Keyers'', like Shapes, should use the GPU up to a certain complexity before caching is required. | + | * ''Keyers'', like Shapes, should use the GPU up to a certain complexity before caching is required. See Preferences - ''Use Timings'' for information |
** Note that using the ''Despeckle'' filter may cause earlier CPU caching to occur. | ** Note that using the ''Despeckle'' filter may cause earlier CPU caching to occur. | ||
* ''Matte Paint'' | * ''Matte Paint'' | ||
Line 63: | Line 64: | ||
|align="right" valign="top"|Use Timings | |align="right" valign="top"|Use Timings | ||
|'''On''' / Off<br/> | |'''On''' / Off<br/> | ||
− | By default we calculate and store various timings whenever we create a '''matte''' in a ''Layer'' (e.g. via a shape or a key). These timings | + | By default we calculate and store various timings whenever we create a '''matte''' in a ''Layer'' (e.g. via a shape or a key). These timings are used to automatically add Dynamic caches when we use mattes. |
|} | |} | ||
Line 69: | Line 70: | ||
''Step Layers'' describes the point at which dynamic cache layers are created. The number of layers set in the ''Max GPU Layers'' setting will be used as an increment. | ''Step Layers'' describes the point at which dynamic cache layers are created. The number of layers set in the ''Max GPU Layers'' setting will be used as an increment. | ||
− | For example, a setting of 4 will create a dynamic cache layer every 3 layers (one of the four layers is always the master layer) | + | For example, a setting of 4 will create a dynamic cache layer every 3 layers (one of the four layers is always the master layer, even if there are no effects active) |
When '''enabled''' (default): | When '''enabled''' (default): |
Latest revision as of 12:32, 30 July 2017
From Release : | 2017.1 |
Starting in version 2017.1, more use is made of the Graphics Processing Unit (GPU) hardware on your graphics card for rendering effects "on-the-fly" in real time (where possible). To support this, the effect caching and clean-up functionality has also been extended.
The GPU is used for displaying and previewing shot playback and effects on screen. The CPU will be used for any renders that are saved to disk (including any caches) and any output to tape.
We use the GPU preview for :
- CC Layers (including the Master layer)
- FX Layers
However, some processing paths may need extra work and impact realtime behaviour, and hence caching requirements :
- DVO Effects do not use the GPU.
- OFX Plugins do not use the GPU (unless they use the GPU internally e.g. Sapphire).
- Dissolves, Composite effects and Dynamics will require CPU caching.
- Interlaced material will use the GPU but blurs and Pan & Scan will cause a CPU cache to be required.
- Shapes up to a certain complexity will be realtime. Complex animated shapes may require caching for realtime playback. See Preferences - Use Timings for information
- Keyers, like Shapes, should use the GPU up to a certain complexity before caching is required. See Preferences - Use Timings for information
- Note that using the Despeckle filter may cause earlier CPU caching to occur.
- Matte Paint
Depending on graphics hardware used, there will be a limit on how many CC Layers are possible to preview in realtime using the GPU before a cache is required. This limit is specified via the Max GPU Layers setting, available in the project preferences (Render tab) and inside the project itself (Cache tab).
Caching preferences are set in the Rendering tab of the main application preferences :
The following GPU specific cache preferences are available :
Max GPU Layers | Numeric (default is 8) This sets the total number of CC Layers we will preview on the GPU for display before we write a cache to disk. |
Step Layers | On / Off Step Layers controls the point a cache is created as we add CC Layers to our render stack. See below. |
Use Timings | On / Off By default we calculate and store various timings whenever we create a matte in a Layer (e.g. via a shape or a key). These timings are used to automatically add Dynamic caches when we use mattes. |
Step Layers describes the point at which dynamic cache layers are created. The number of layers set in the Max GPU Layers setting will be used as an increment. For example, a setting of 4 will create a dynamic cache layer every 3 layers (one of the four layers is always the master layer, even if there are no effects active)
When enabled (default):
- We generate and write a cache for a CC or FX Layer when we reach the Max GPU Layers preview limit.
- Once this cache is written, the next cache is only generated once the Max GPU Layer number is reached again. The cache will then step by this number.
- A user can force a Dynamic Cache to be created if the user activates the Dynamic Cache function (see Router below). This will reset the amount of GPU preview layers available back to the set amount.
- When the next cache is generated, it will replace the previous cache in the stack.
- The cache is generated on the layer closest to the end of the rendering stack.
Note that the Master layer is also a GPU processed layer (as before) and always counted for Max GPU Layers. This means that setting the Step Layers to one will make the application behave as it did before the new GPU Preview and Caching work was added.
With :
Step Layers : | OFF |
- We generate and write a cache for a CC Layer when we hit the Max GPU Layers limit set (as above).
- This cache is regenerated every time we add another layer (no waiting for Max GPU Layers).
- The first cache is generated on the first layer (Base) and moves up one layer every time we add another layer.
Caching is the process of calculating and saving the result of one or more render stages to disk. This reduces the amount of processing we need to do further down the render pipeline and makes it easier to playback our material in realtime. Realtime playback from this point is now reliant only on disk performance and is independent of the number or complexity of any effects we use.
Note that a cache (saved to disk) is always generated using the CPU.
From original disk or tape based source material to final output to disk or tape, the application has a well defined rendering pipeline composed of various stages. Caches can be generated at each stage to improve interactivity and playback performance if needed.
The following types of caches are used :
Source | Source material can be cloned and cached as DPX or EXR depending on the media setting (via Properties of clip in Library) or if using a Half project.
Clones can be generated using the proxy function on the project page, or by setting the Create Clone option in the media properties. The Source button in the Project Stages setting will override any source cache creation, this includes material that has Create Clone set. |
Input FX | The Input FX layer can contain one or more effects that each operate on the whole image. A single cache is generated for all effects. |
Layer | A Layer cache includes CC Layers and FX layers. The CC Layers have finer cache controls and include isolation tools like shapes and a keyer. A single cache is generated for all layers unless Force Cache is enabled on an individual effect later (inside the Router). |
Paint | A cache generated for any paint effect used e.g. Dust+Fix, Matte Paint etc. |
Output | A cache generated at the Master layer stage for each output format in the project. |
The Cache Output button on the Project Screen has been removed and is replaced with the Output cache stage button in the Caches tab inside the project (see below).
The main project desktop includes a Caches tab containing settings for setting up caching and various cache management tools.
- Cache setup involves specifying the stages where we want caches written.
This can be defined for the project as a whole, or on a shot by shot basis. - You can also set the Max GPU Layers here (also for project as a whole, or on a shot by shot basis).
- Various selectors are available for cache management (clean-up) operations (by stage, resolution, age etc.).
Caches can be written at various stages in the application render pipeline. You can choose what stages generate caches here :
- On a project level or
- On a per clip level
The Stages (Source, Input FX, Layer, Output) are as defined above in the Cache Stages section above.
The Project Stages selectors are specific to the whole project.
Each button (Source, Input FX, Layer, Output) lets you select whether to save a cache at that stage.
The Clip Stages selectors are specific to the each clip only.
Note that the Revert and Apply buttons only appear if you make changes.
Enable Override Project to turn this on for the currently active clip. |
The Stages available and Max GPU Layers are as per Project Stages above but specific to the active clip only.
No Source stage is available per clip because a Source can be shared by multiple clips.
The Revert and Apply buttons appear if you make changes to the Stages we cache.
- Apply - press Apply to save the changes and apply them
- Revert - press Revert to reset any changes you have made
The Router is available in every CC and FX Layer and lets you create two types of cache for the layer.
In the Router controls, use buttons :
- Force Cache
- Dynamic Cache
This forces the creation of a Layer cache on this layer. It will remain on this layer until cleared (via the Clear Cache button). This is useful for processing intensive effects that you want to explicitly cache.
This forces the creation of a dynamic cache on this layer. It will remain on this layer unless superseded by a cache created further down the effects pipeline. If a cache is required and created later, the cache created on this layer will be deleted and overwritten with any later cache created (essentially, the cache "moves").
- Keyboard : Alt + Insert
- Precision Panel : Ctrl + Render
- This is also mappable on the Tangent Panels.
The Clean Up section lets you selectively remove caches using a variety of selectors such as :
- Cache stage
- Resolution
- Scale
- Age
Note that Clean Up was previously accessed through a button in the Library.
Press Clean Up to perform the cache clean-up operation. |
Various filters are predefined and let you choose a selection of caches to remove.
By Stage Note that some selectors operate on multiple stages. Input FX Output Input FX, Layer etc. | |
By Location In all compositions Current frame In marked region etc. | |
By Resolution Select caches at specific source resolutions | |
By Scale Select caches at specific proxy scales (e.g. 1:1, 3:1 etc.) | |
By Age Select caches by their age in hours or days. | |
Clean up all caches in all stages. | |
Clean up all caches except those in the final stage. Note this is the last cache, not necessarily the Output stage. | |
Clean up cached thumbnails only |
An audio cache is also available.
Any space used will be displayed and you can press the Clean Up button to delete the caches.