Search Issue Tracker

Active

Under Consideration for 1.0.X

Votes

0

Found in [Package]

1.0.1

Issue ID

PROFB-326

Regression

No

Project Auditor - “Shader: Not compatible with SRP batcher” is not correctly judged

Package: Project Auditor

-

Taken from: https://discussions.unity.com/t/introducing-unity-project-auditor-a-tool-to-help-you-optimize-your-unity-projects/1597047/101

I found a bug in which “Shader: Not compatible with SRP batcher” is not correctly judged.
(This is a shader that is supposed to be SRP batcher compatible, but for some reason it is listed.)

Using the latest Project Auditor 1.0.1,
I modified the Analyze method in ShaderAnalyzer.cs as follows, and I would like to report that the correct judgment is now performed.
However, the Analyze time will be long, so it will probably not be able to be put in the repository as it is. If there are people who are having trouble, please try using it.

{code:java}
public override IEnumerable<ReportItem> Analyze(ShaderAnalysisContext context)
{
if (!IsSrpBatchingEnabled)
{
yield break;
}

if (context.Shader.name.StartsWith("Hidden/"))
{
yield break;
}

var srpCompatibilityCheckMaterial = new Material(context.Shader);
srpCompatibilityCheckMaterial.SetPass(0);

var subShaderIndex = ShaderUtilProxy.GetShaderActiveSubshaderIndex(context.Shader);
var isSrpBatchingCompatible = ShaderUtilProxy.GetSRPBatcherCompatibilityCode(context.Shader, subShaderIndex) == 0;

GameObject.DestroyImmediate(srpCompatibilityCheckMaterial);

if (!isSrpBatchingCompatible && IsSrpBatchingEnabled)
{
yield return context.CreateIssue(IssueCategory.AssetIssue, k_SrpBatcherDescriptor.Id, context.Shader.name)
.WithLocation(context.AssetPath);
}
}
{code}

*Steps to reproduce:*
#  
#  
#  

\\
*Actual results:* 

*Expected results:* 

\\
*Reproducible with versions:* 

*Not reproducible with versions:* 

*Can’t test with versions:* 

\\
*Tested on (OS):* 

\\
*Notes:*
*  

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.