From d4f0f1cbb533386e54ef6cbcd51e379cd4e01688 Mon Sep 17 00:00:00 2001 From: Oleksandr Kokoshyn Date: Mon, 8 Nov 2021 02:06:11 +0100 Subject: [PATCH 1/2] Backport of #6232: Edited the Depth Priming MVP docs. --- .../Images/urp-assets/urp-universal-renderer.png | 4 ++-- .../Documentation~/urp-universal-renderer.md | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/com.unity.render-pipelines.universal/Documentation~/Images/urp-assets/urp-universal-renderer.png b/com.unity.render-pipelines.universal/Documentation~/Images/urp-assets/urp-universal-renderer.png index 941f46321b8..cfa600ae350 100644 --- a/com.unity.render-pipelines.universal/Documentation~/Images/urp-assets/urp-universal-renderer.png +++ b/com.unity.render-pipelines.universal/Documentation~/Images/urp-assets/urp-universal-renderer.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:387f9cb1bda7e08c8701580ad48be3d1b7d77bba0491e4ff90e384117df5c6e4 -size 34153 +oid sha256:112050e64fb21d6a560e5e5b06285a070293c15dc77de345fb20e72c61d8e34d +size 35676 diff --git a/com.unity.render-pipelines.universal/Documentation~/urp-universal-renderer.md b/com.unity.render-pipelines.universal/Documentation~/urp-universal-renderer.md index c9788a983e0..8d49d57e13d 100644 --- a/com.unity.render-pipelines.universal/Documentation~/urp-universal-renderer.md +++ b/com.unity.render-pipelines.universal/Documentation~/urp-universal-renderer.md @@ -56,9 +56,8 @@ This section contains properties related to rendering. | Property | Description | |:-|:-| | **Rendering Path** | Select the Rendering Path.
Options: | -|   **Depth Priming Mode** | Specifies when to perform depth priming. Depth priming is an optimization method that checks for pixels URP doesn't need to render during a [Base Camera's](camera-types-and-render-type.md#base-camera) opaque render pass. It uses the depth buffer generated in a depth prepass. The options are:
• **Disabled**: URP doesn't perform depth priming.
• **Auto**: URP performs depth priming for render passes that require a depth prepass.
• **Forced**: URP always performs depth priming. To do this, it also performs a depth prepass for every render pass.

this property only appears if you set **Rendering Path** to **Forward** | -|   **Accurate G-buffer normals** | Indicates whether to use a more resource-intensive normal encoding/decoding method to improve visual quality.

This property only appears if you set **Rendering Path** to **Deferred**. | -| **Copy Depth Mode** | Specifies the stage in the render pipeline at which to copy the scene depth to a depth texture. The options are:
• **After Opaques**: URP copies the scene depth after the opaques render pass.
• **After Transparents**: URP copies the scene depth after the transparents render pass.

**Note**: On mobile devices, the **After Transparents** option can lead to a significant improvement in memory bandwidth. | +|   **Depth Priming Mode** | This property determines when Unity performs depth priming.
Depth Priming can improve GPU frame timings by reducing the number of pixel shader executions. The performance improvement depends on the amount of overlapping pixels and the complexity of the pixel shaders that Unity can skip by using depth priming.
The feature has an upfront memory and performance cost. The feature uses a depth prepass to determine which pixel shader invocations Unity can skip, and the feature adds the depth prepass if it's not available yet.
The options are:
• **Disabled**: Unity does not perform depth priming.
• **Auto**: If there is a Render Pass that requires a depth prepass, Unity performs the depth prepass and depth priming.
• **Forced**: Unity always performs depth priming. To do this, Unity also performs a depth prepass for every render pass. **NOTE**: depth priming is disabled at runtime on certain hardware (Tile Based Deferred Rendering) regardless of this setting.

On Android, iOS, and Apple TV, Unity performs depth priming only in the Forced mode. On tiled GPUs, which are common to those platforms, depth priming might reduce performance when combined with MSAA.

This property is available only if **Rendering Path** is set to **Forward** | +|   **Accurate G-buffer normals** | Indicates whether to use a more resource-intensive normal encoding/decoding method to improve visual quality.

This property is available only if **Rendering Path** is set to **Deferred**. | ### Native RenderPass From 099ef13fa8ecad32a934987da8c41fc341c5acdc Mon Sep 17 00:00:00 2001 From: Oleksandr Kokoshyn Date: Thu, 25 Nov 2021 14:25:49 +0100 Subject: [PATCH 2/2] Implemented the comment from Manuele (opaque pass). --- .../Documentation~/urp-universal-renderer.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/com.unity.render-pipelines.universal/Documentation~/urp-universal-renderer.md b/com.unity.render-pipelines.universal/Documentation~/urp-universal-renderer.md index 8d49d57e13d..be93ebda494 100644 --- a/com.unity.render-pipelines.universal/Documentation~/urp-universal-renderer.md +++ b/com.unity.render-pipelines.universal/Documentation~/urp-universal-renderer.md @@ -56,7 +56,7 @@ This section contains properties related to rendering. | Property | Description | |:-|:-| | **Rendering Path** | Select the Rendering Path.
Options: | -|   **Depth Priming Mode** | This property determines when Unity performs depth priming.
Depth Priming can improve GPU frame timings by reducing the number of pixel shader executions. The performance improvement depends on the amount of overlapping pixels and the complexity of the pixel shaders that Unity can skip by using depth priming.
The feature has an upfront memory and performance cost. The feature uses a depth prepass to determine which pixel shader invocations Unity can skip, and the feature adds the depth prepass if it's not available yet.
The options are:
• **Disabled**: Unity does not perform depth priming.
• **Auto**: If there is a Render Pass that requires a depth prepass, Unity performs the depth prepass and depth priming.
• **Forced**: Unity always performs depth priming. To do this, Unity also performs a depth prepass for every render pass. **NOTE**: depth priming is disabled at runtime on certain hardware (Tile Based Deferred Rendering) regardless of this setting.

On Android, iOS, and Apple TV, Unity performs depth priming only in the Forced mode. On tiled GPUs, which are common to those platforms, depth priming might reduce performance when combined with MSAA.

This property is available only if **Rendering Path** is set to **Forward** | +|   **Depth Priming Mode** | This property determines when Unity performs depth priming.
Depth Priming can improve GPU frame timings by reducing the number of pixel shader executions. The performance improvement depends on the amount of overlapping pixels in the opaque pass and the complexity of the pixel shaders that Unity can skip by using depth priming.
The feature has an upfront memory and performance cost. The feature uses a depth prepass to determine which pixel shader invocations Unity can skip, and the feature adds the depth prepass if it's not available yet.
The options are:
• **Disabled**: Unity does not perform depth priming.
• **Auto**: If there is a Render Pass that requires a depth prepass, Unity performs the depth prepass and depth priming.
• **Forced**: Unity always performs depth priming. To do this, Unity also performs a depth prepass for every render pass. **NOTE**: depth priming is disabled at runtime on certain hardware (Tile Based Deferred Rendering) regardless of this setting.

On Android, iOS, and Apple TV, Unity performs depth priming only in the Forced mode. On tiled GPUs, which are common to those platforms, depth priming might reduce performance when combined with MSAA.

This property is available only if **Rendering Path** is set to **Forward** | |   **Accurate G-buffer normals** | Indicates whether to use a more resource-intensive normal encoding/decoding method to improve visual quality.

This property is available only if **Rendering Path** is set to **Deferred**. | ### Native RenderPass