REFERENCE
Performance
Runtime switches, feature cost, pipeline stripping, and variants.
PACKAGE VERSION 1.1.0On this page
Runtime and build behaviorRuntime and build behavior#
CrowPSX uses runtime material switches for PBR map layout, smoothness/roughness response, detail maps, grunge, and emission. This keeps the Surface PBR, Nature PBR, and Vertex Painting PBR feature matrices compact while preserving the same inspector controls and independent painted-layer workflows. Matching PBR shaders reuse their Default shader's ShadowCaster and lightweight Meta support passes. Unity's required Built-in Render Pipeline lighting, shadow, fog, primary-pass instancing, and lightmapping variants remain available; Forward Add omits instancing variants because Unity's Built-in forward renderer does not instance additional passes.
Disabled features avoid their major texture or lighting work. This includes grunge, AO, parallax, direct and indirect lighting, direct specular, reflection probes, emission, and optional cloud self-shading. Packed PBR reads Metallic, AO, and surface response together, while vertex-painted shaders skip texture families and parallax activation belonging to zero-weight layers. Grunge is evaluated once and shared across its surface responses. Forward Add omits unused lightmap, indirect-lighting, emission, and debug data. Light Probe Proxy Volume support follows Unity's Graphics Tier built-in define instead of adding a duplicate Forward Base permutation, and particle Forward Base passes omit unused lightmap and secondary vertex-light combinations.
Because every lit shader carries both a Universal and a Built-in SubShader, CrowPSX strips the passes belonging to the pipeline a build is not using. ForwardBase and ForwardAdd are Built-in only and go from an SRP build; the ScriptableRenderPipeline passes go from a Built-in build. Those forward passes are where the variant count lives, so this is most of the saving. ShadowCaster and Meta passes are never stripped, because both pipelines use them under the same pass type. Add the CROWPSX_DISABLE_VARIANT_STRIPPING scripting define to compile the stripper out.
Depth-volume decals use their regular pass for HDR emission in Normal, Premultiplied, and additive-family modes. The independent additive emission pass is enabled only when a Multiply decal has non-zero HDR Emission Strength. In the skybox, disabling Cloud Self Shading removes its additional cloud-density read.