All notable changes to this package will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Added Fog shader variant stripping analyzer
- Add IL2CPP Compiler Configuration analyzer
- Fixed backwards compatibility
- Fixed reporting of shader variants if not compiled for analysis platform
- Fixed displaying of large values of total shader variants
- Fixed Copy to Clipboard support of issue property
- Fixed table sorting
- Added UnityEngine.Object.FindObjectOfType usage detection
- Added Settings asset for configuring analyzers
- Added Severity information to diagnostics UI
- Fixed names of build-generated assets in Build Report
- Fixed parsing of unnamed shader passes in Unity 2021.2.14+
- Fixed UnityEngine.AudioSettings speaker mode diagnostic
- Added diagnostic area Quality, Support and Requirement
- Added documentation support to descriptor
- Added issue fixer support to descriptor
- Added package diagnostics
- Added on-demand Texture, AudioClip, Mesh modules
- Added Compute Shader Variants support
- Fixed over-reporting of built shader variants count
- Fixed export of filtered/selected non-diagnostic issues
- Fixed Build Report object name
- Fixed text alignment and wrapping issues
- Fixed build report steps text wrapping
- Fixed diagnostics critical property persistence after domain reload
- Improved text search to match custom properties
- Added Packages module to report installed packages and dependencies
- Fixed analysis platform on incremental audit
- Fixed compilation error due to newer com.unity.nuget.mono-cecil
- Added HTML export support
- Added Packages module as Experimental
- Added params array allocation diagnostic
- Fixed NullReferenceException on Draw2D shader not being found
- Added user preferences
- Added group size/time properties
- Added support for analyzing all compiled Editor assemblies
- Added platform selection to Home screen
- Changed descriptor ID type from int to string
- Fixed Diagnostic Rules serialization
- Fixed Home page NullReferenceException on Build
- Fixed NullReferenceException on export of non-diagnostic issues
- Improved issue creation code-readability by using ProjectIssueBuilder
- Added ProjectAuditorConfig option to enable/disable Roslyn analyzers
- Added ProjectAuditorParams option for compiling selected assemblies
- Added discard button to toolbar
- Added modules selection to Home screen
- Added support for reporting precompiled assemblies
- Fixed compatibility with Unity 2022
- Improved code analysis performance by caching "resolved" types
- Renamed asynchronous ProjectAuditor.Audit to AuditAsync
- Added ProjectAuditor.NumCategories API
- Added module-specific incremental analysis support
- Added support to disable a module by default
- Added 'Clear Selection' and 'Filter by Description' options to context menu
- Added SavePath to configuration asset
- Added Graphics Tier information to reported Shader Variants
- Added diagnostic message formatting support
- Added dependencies panel to assembly view
- Added ImporterType to Build File properties
- Changed default compilation mode to Non-Development
- Fixed reporting of assemblies not compiled due to dependencies
- Improved code diagnostic messages
- Improved UI groups to support arbitrary grouping criteria
- Replaced AnalyzeEditorCode with CompilationMode setting
- Removed the need to have a Descriptor associated with non-diagnostic issues
- Fixed Build Report analysis 'Illegal characters in path' exception
- Fixed Shaders analysis 'Illegal characters in path' exception
- Fixed compilation warnings
- Fixed export of variants with no keywords
- Added groups support to Shaders view
- Added support for exporting Shader Variants as Shader Variant Collection
- Optimized call tree building and visualization
- Added OnRenderObject and OnWillRenderObject to list of MonoBehavior critical contexts
- Added Compilation Time property to Assemblies view
- Added public API to get float/double custom property
- Added context menu item to open selected issue
- Fixed closure allocation diagnostic message
- Fixed sorting of call hierarchy nodes
- Optimized viewing and sorting UI performance
- Added UnityEngine.Object.name code diagnostic
- Added Severity filters support
- Fixed unreported assemblies that failed to compile
- Fixed view switching if any module is unsupported
- Fixed database of API usage descriptors
- Removed redundant API usage descriptors
- Added shader Size, Source Asset and Always Included info to Shaders view
- Added shader Severity column to indicate any compiler message
- Added Stage, Pass Type and Platform Keywords to Shader Variants view
- Added Shader Variants view right scrollable panels
- Added Shader Compiler Messages reporting
- Fixed usage of deprecated shader API
- Fixed shader compilation log parsing in 2021 or newer
- Fixed cleanup of Shader Variants builds data in 2021 or newer
- Added option to enable creation of BuildReport asset after each build
- Fixed UWP compilation issues
- Fixed ArgumentException on table Page Up/Down
- Fixed InvalidOperationException due failure to resolve asmdef
- Fixed NullReferenceException due to null compiler message
- Fixed NullReferenceException on empty table
- Fixed ShaderCompilerData parsing in 2021.2.0a16 or newer
- Fixed disabling of unsupported modules
- Fixed unreported output files from the same source asset
- Fixed automatic creation of last BuildReport asset after build
- Added Documentation pages
- Added UI Button to open documentation page based on active view
- Added BuildReport Viewer UI
- Added Runtime Type property to BuildReport size items
- Added OnAnimatorIK and OnAnimatorMove to MonoBehaviour hot-paths
- Fixed NullReferenceException on projects with multiple dll with same name
- Fixed Variants view ShaderRequirements information
- Fixed window opening after each build
- Fixed ProjectReport.ExportToCSV filtering
- Fixed Mono.Cecil package dependency
- Added ProjectReport.ExportToCSV to public API
- Fixed "No graphic device is available" error in batchmode
- Fixed NullReferenceException when searching Call Tree on Resources view
- Fixed OverflowException on reporting build sizes
- Fixed Player.log parsing if a shader name contains commas
- Fixed persistent "Analysis in progress..." message
- Added Assemblies view (experimental)
- Added Build Report Steps view
- Added overview stats to Build Report Size view
- Fixed detection of HDRP mixed LitShaderMode
- Added HDRP settings analyzer
- Fixed Build Report Build Name
- Fixed empty MonoBehaviour event detection
- Fixed Graphics Tier Settings misreporting
- Fixed failed/cancelled report loading from file
- Improved Shader Variants analysis workflow
- Added Build Report support
- Added Compiler Messages support
- Added Generic types instantiation analysis
- Added Summary view
- Added Save&Load support
- Added Log Shader Compilation option to Shader Variants view
- Added Shaders view shortcut to Shader Variants view
- Changed compilation pipeline to use AssemblyBuilder
- Changed Shader Variants Window to simple view
- Fixed Shader Variants persistence in UI after Domain Reload
- Fixed Shader Variants Compiled column initial state
- Fixed Code Diagnostics view sorting
- Improved main documentation page
- Fixed reporting of issues affecting multiple areas
- Fixed background analysis that results in code issues with empty filenames
- Fixed Android player.log parsing
- Fixed GraphicsSettings.logWhenShaderIsCompiled compilation error on early 2018.4.x releases
- Added System.DateTime.Now usage detection
- Added descriptor's minimum/maximum version
- Added splash-screen setting detection
- Added zoom slider
- Reduced UI managed allocations
- Replaced tabs-like view selection with toolbar dropdown list
- Removed experimental label from Allocation issues
- Changed Export feature to be view-specific
- Fixed detection of API calls using a derived type
- Fixed reporting of Editor Default Resources shaders
- Fixed ReflectionTypeLoadException
- Added SRP Batcher column to Shader tab
- Added support for parsing Player.log to identify which shader variants are compiled (or not-compiled) at runtime
- Added Shader errors/warnings reporting via Shader 'severity' icon
- Added Shader Requirements column to Shader tab
- Fixed exception when switching focus from Area/Assembly window
- Fixed NullReferenceException on invalid shader or vfx shader
- Fixed NullReferenceException when building AssetBundles
- Fixed shader variants reporting due to OnPreprocessBuild callback default order
- Improved Shaders auditing to report both shaders and variants in their respective tables
- Added support for analyzing Editor only code-paths
- Added reuseCollisionCallbacks physics API diagnostic
- Fixed Assembly-CSharp-firstpass asmdef warning
- Fixed backwards compatibility
- Added Shader variants auditing
- Added "Collapse/Expand All" buttons
- Refactoring and code quality improvements
- Page up/down key bug fixes
- Added dependencies view to Assets tab
- Move call tree to the bottom of the window
- Double-click on an asset selects it in the Project Window
- Fixed Unity 2017 compatibility
- Fixed default selected assemblies
- Fixed Area names filtering
- Changed case-sensitive string search to be optional
- Added CI information to documentation
- Fixed call-tree serialization
- Added auditing of assets in Resources folders
- Added shader warmup issues
- Reorganized UI filters and mute/unmute buttons in separate foldouts
- Fixed issues sorting within a group
- ExportToCSV improvements
- Better names for project settings issues
- Improved text search UX
- Improved test coverage
- Fixed background assembly analysis
- Fixed lost issue location after domain reload
- Fix tree view selection when background analysis is enabled
- Fixed Yamato configuration
- Updated documentation
- Added Boxing allocation analyzer
- Added Empty MonoBehaviour method analyzer
- Added GameObject.tag issue type to built-in analyzer
- Added StaticBatchingAndHybridPackage analyzer
- Added Object.Instantiate and GameObject.AddComponent issue types to built-in analyzer
- Added String.Concat issue type to built-in analyzer
- Added "experimental" allocation analyzer
- Added performance critical context analysis
- Detect MonoBehaviour.Update/LateUpdate/FixedUpdate as perf critical contexts
- Detect ComponentSystem/JobComponentSystem.OnUpdate as perf critical contexts
- Added critical-only UI filter
- Optimized UI refresh performance and Assembly analysis
- Added profiler markers
- Added background analysis support
- Added Config asset support
- Added Mute/Unmute buttons
- Replaced Filters checkboxes with Popups
- Added Assembly column
- Added Calling Method information
- Added Grouped view to Script issues
- Removed "Resolved" checkboxes
- Lots of bug fixes
- Fixed Unity 2017.x backwards compatibility
- Added Progress bar
- Added Package whitelist
- Added Tooltips
Replaced placeholder database with real issues to look for. This version also allows the user to Resolve issues.
Proof of concept, mostly developed during Hackweek 2019.