# ZWrite command in ShaderLab reference

> Reference for the ZWrite command in ShaderLab.

> **Important:**
>
> The Built-In Render Pipeline is deprecated and will be made obsolete in a future release.
>
> It remains supported, including bug fixes and maintenance, through the full Unity 6.7 LTS lifecycle.
>
> For more information on migration, refer to [Migrating from the Built-In Render Pipeline to the Universal Render Pipeline](/engine/6000.5/manual/render-pipelines/universal-render-pipeline/introduction/installing-and-configuring-urp/upgrading-from-birp.md.md) and [Render pipeline feature comparison](/engine/6000.5/manual/render-pipelines/choose-a-render-pipeline/feature-comparison.md.md).

Sets whether the depth buffer contents are updated during rendering. Normally, ZWrite is enabled for opaque objects and disabled for semi-transparent ones.

Disabling ZWrite can lead to incorrect depth ordering. In this case, you need to sort geometry on the CPU.

## Render pipeline compatibility

| **Feature name** | **Universal Render Pipeline (URP)** | **High Definition Render Pipeline (HDRP)** | **Custom SRP** | **Built-in Render Pipeline** |
| ---------------- | ----------------------------------- | ------------------------------------------ | -------------- | ---------------------------- |
| **ZWrite**       | Yes                                 | Yes                                        | Yes            | Yes                          |

## Syntax

This command makes a change to the render state. Use it in a `Pass` block to set the render state for that Pass, or use it in a `SubShader` block to set the render state for all Passes in that SubShader.

| **Signature**   | **Example syntax** | **Function**                                     |
| --------------- | ------------------ | ------------------------------------------------ |
| ZWrite \[state] | ZWrite Off         | Enables or disables writing to the depth buffer. |

## Parameters

| **Parameter** | **Value** | **Function**                          |
| ------------- | --------- | ------------------------------------- |
| state         | On        | Enables writing to the depth buffer.  |
|               | Off       | Disables writing to the depth buffer. |

## Additional resources

* [Set the depth bias in a shader](/engine/6000.5/manual/materials-and-shaders/shaders/writing-custom/shader-writing/sl/writing-shader-render-state-commands/set-depth-bias.md)
* [Set the depth clip mode in a shader](/engine/6000.5/manual/materials-and-shaders/shaders/writing-custom/shader-writing/sl/writing-shader-render-state-commands/set-zclip.md)
* [Set the depth testing mode in a shader](/engine/6000.5/manual/materials-and-shaders/shaders/writing-custom/shader-writing/sl/writing-shader-render-state-commands/set-ztest.md)
