Search Issue Tracker

By Design

Votes

0

Found in [Package]

9.0.0 - preview.14

Issue ID

1252458

Regression

No

[URP] Material.FindPass() called from OnEnabled does not return correct information about the shader when entering Play Mode

Package: Scriptable Render Pipeline Universal

-

How to reproduce:
1. Open user-submitted project (FindPass.zip)
2. Open the SampleScene
3. Enter Play Mode and check the Console window

Expected result: the Console outputs '1 5'
Actual result: the Console outputs '-1 1', if the TestFindPassOnLoad Component is disabled and then reenabled, it prints '1 5' correctly

Reproducible with: 2018.4.24f1, 2019.4.0f1, 2020.1.0b12, 2020.2.0a13

Reproducible with package versions: 6.9.0, 9.0.0 - preview.14

Notes:
Tested with URP Lit and Unlit Shaders
Does not reproduce with HDRP or the default Render Pipeline

  1. Resolution Note:

    At the time of query no render pipeline is active, so it's checking the passes of the fallback shader (Hidden/Universal Render Pipeline/FallbackError), which has a single pass without a name.
    https://docs.unity3d.com/ScriptReference/Shader-globalRenderPipeline.html can be used to check if URP is active.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.