Version: Unity 6 (6000.0)
Language : English
Example of changing per-instance data at runtime in the Built-In Render Pipeline
GPU instancing shader reference for the Built-In Render Pipeline

Prevent Unity stripping GPU instancing shaders in the Built-In Render Pipeline

Unity generates Surface shadersA program that runs on the GPU. More info
See in Glossary
with instancing variants by default, unless you specify noinstancing in the #pragma directive. Unity ignores uses of #pragma multi_compile_instancing in a surface shaderA streamlined way of writing shaders for the Built-in Render Pipeline. More info
See in Glossary
.

Unity’s Standard and StandardSpecular shaders have instancing support by default, but with no per-instance properties other than the transform.

If your sceneA Scene contains the environments and menus of your game. Think of each unique Scene file as a unique level. In each Scene, you place your environments, obstacles, and decorations, essentially designing and building your game in pieces. More info
See in Glossary
contains no GameObjectsThe fundamental object in Unity scenes, which can represent characters, props, scenery, cameras, waypoints, and more. A GameObject’s functionality is defined by the Components attached to it. More info
See in Glossary
with GPU instancing enabled, then Unity strips instancing shader variants. To override the stripping behaviour:

  1. Open Project Settings (menu: Edit > Project Settings).
  2. Go to Graphics.
  3. In the Shader Stripping section, set Instancing Variants to Keep All.
Example of changing per-instance data at runtime in the Built-In Render Pipeline
GPU instancing shader reference for the Built-In Render Pipeline