Difference between revisions of "UM:GPUPreviewCaching"

From DigitalVision
Jump to: navigation, search
 
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 should use the GPU. More complex shapes may require caching.
+
* ''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 can be used to determine best caching strategy when we use mattes.
+
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 11:32, 30 July 2017

Darrow-up.png     Previous Next

GPU Preview and Cache Management
From Release : 2017.1
GPU Preview

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.

GPU Usage

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
Max GPU Layers

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).

Max GPU Layers
Gpu-caches-prefs-max-gpu-layers.png
How many CC Layers (including Master) we can preview using the GPU before requiring a cache to be generated.

Default : 8

The default setting has proved to be reasonable in practice for most graphics cards in production use. However, you might need to experiment.

Preferences

Caching preferences are set in the Rendering tab of the main application preferences :

Gpu-caches-prefs.png

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

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.

Step Layers Example


Step Layers : ON
Max GPU Layers 4

NOTE : The Master layer is always counted as one of the layers in Max GPU Layers.

Gpu-step-example-1.png
1
Gpu-step-example-2anno.png
2
Gpu-step-example-3.png
3
Gpu-step-example-4.png
4

In [1] we have three CC layers plus the Master layer. All four are processed on the GPU. No caching is done.

In [2], we add another CC layer such that we now have five CC layers in total.

This is one more than our Max GPU Layers (set as 4) so a cache is saved at this point.

Add more CC and FX layers [3].

Note we have a cache at CC layer 2 and have added three more layers. With the Master layer, this is four layers. Again, per our Max GPU Layers setting (4), we can process these four on the GPU without caching.

In [4] we add another CC layer.

This takes our CC layers post-cache to five, one more than our Max GPU Layers. So a cache is saved at this point.

The caches are only saved every Max GPU Layers - 1 (hence the "step" in Step GPU layers).

Note that we will only have one cache written for all Layers (CC and FX) but the cache position changes.

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.
Caches

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.

Cache Stages

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.

Main screen with Cache tab settings shown


  • 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.).
Cache Stages

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.

Project Stages

The Project Stages selectors are specific to the whole project.

Gpu-caches-tab-project-stages.png

Each button (Source, Input FX, Layer, Output) lets you select whether to save a cache at that stage.

Clip Stages

The Clip Stages selectors are specific to the each clip only.

Gpu-caches-tab-clip-stages.png

Note that the Revert and Apply buttons only appear if you make changes.

Gpu-caches-tab-clip-stages-override-button.png 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.

Revert / Apply

Gpu-caches-tab-clip-stages-revert-apply-buttons.png

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

Router Caches

Gpu-cache-router.png

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

Gpu-cache-router-buttons.png

Force 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.

Dynamic 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.

A layer with a Router assigned cache will display a router icon :

Gpu-caching-router-icon-cached.png

Clean Up

The Clean Up section lets you selectively remove caches using a variety of selectors such as :

  • Cache stage
  • Resolution
  • Scale
  • Age

Gpu-caches-tab-cleanup.png

Note that Clean Up was previously accessed through a button in the Library.

Gpu-caches-tab-cleanup-button.png Press Clean Up to perform the cache clean-up operation.
Filters

Various filters are predefined and let you choose a selection of caches to remove.

Gpu-caches-tab-cleanup-filter-by-stage-dropdown.png By Stage
Note that some selectors operate on multiple stages.
Input FX
Output
Input FX, Layer etc.
Gpu-caches-tab-cleanup-filter-by-location-dropdown.png By Location
In all compositions
Current frame
In marked region etc.
Gpu-caches-tab-cleanup-resolution-drop-down.png By Resolution
Select caches at specific source resolutions
Gpu-caches-tab-cleanup-scale-drop-down.png By Scale
Select caches at specific proxy scales (e.g. 1:1, 3:1 etc.)
Gpu-caches-tab-cleanup-by-age.png By Age
Select caches by their age in hours or days.
Gpu-caches-tab-cleanup-all-stages-button.png Clean up all caches in all stages.
Gpu-caches-tab-cleanup-all-stages-except-final-button.png Clean up all caches except those in the final stage. Note this is the last cache, not necessarily the Output stage.
Gpu-caches-tab-cleanup-thumbnails-only-button.png Clean up cached thumbnails only

Each selection will calculate and display the disk space released by this clean-up operation :

Gpu-caching-cleanup-space-released.png

Audio Cache

An audio cache is also available.

Any space used will be displayed and you can press the Clean Up button to delete the caches.

Gpu-caches-tab-cleanup-audio.png

Darrow-up.png     Previous Next