# Creating custom shaders that support GPU instancing in the Built-In Render Pipeline

> Resources for writing HLSL shaders or Surface Shaders in the Built-In Render Pipeline that support GPU instancing.

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

Resources for writing HLSL shaders or Surface Shaders in the Built-In Render Pipeline that support GPU instancing.

| **Page**                                                                                                                                                                     | **Description**                                                                                  |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
| [GPU instancing](/engine/6000.5/manual/analysis/graphics-performance-profiling/birp/gpu-instancing-shader/birp.md)                                                           | Learn about GPU Instancing in the Built-In Render Pipeline.                                      |
| [Add per-instance properties to GPU instancing shaders](/engine/6000.5/manual/analysis/graphics-performance-profiling/birp/gpu-instancing-shader/per-instance-properties.md) | Add per-instanced properties such as color to HLSL shaders and Surface Shaders.                  |
| [Examples of GPU instancing shaders](/engine/6000.5/manual/analysis/graphics-performance-profiling/birp/gpu-instancing-shader/samples.md)                                    | Examples of an HLSL shader and a Surface Shader that support GPU instancing.                     |
| [Prevent Unity stripping GPU instancing shaders](/engine/6000.5/manual/analysis/graphics-performance-profiling/birp/gpu-instancing-shader/strip-variants.md)                 | Disable stripping of instanced shaders in the **Project Settings** window.                       |
| [GPU instancing shader reference](/engine/6000.5/manual/analysis/graphics-performance-profiling/birp/gpu-instancing-shader/birp-shader-modifications.md)                     | Explore the built-in defines and macros you can use to support GPU Instancing in custom shaders. |

## Additional resources

* [GPU instancing](/engine/6000.5/manual/analysis/graphics-performance-profiling/reduce-draw-calls/gpuinstancing.md)
* [Graphics performance and profiling](/engine/6000.5/manual/analysis/graphics-performance-profiling.md)
