Copyright © 2026 Unity Technologies
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.
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); } }
Steps to reproduce:
Actual results:
Expected results:
Reproducible with versions:
Not reproducible with versions:
Can’t test with versions:
Tested on (OS):
Notes:
Issues you vote on will appear here