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);
}
}