Skip to content

Latest commit

 

History

History
559 lines (427 loc) · 16.4 KB

CHANGELOG.md

File metadata and controls

559 lines (427 loc) · 16.4 KB

Changelog

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.

[0.11.0] - 2024-02-27

Added

  • Autosave feature keeps current report persistent upon closing Project Auditor
  • Summary UI shows a report's display name with star indicator for an unsaved report
  • Requester when a report is unsaved and user clicks "New Analysis" button
  • Display/Ignore All buttons
  • Copy-to-Clipboard buttons to Details and Recommendations
  • Vertical scrollbar to Details and Recommendations
  • CompilationMode selection to Welcome page
  • Shader view reports total property count and texture property count for Unity 2019.3 and above
  • Compute shader variant view reports kernel thread count for Unity 2021.2 and above
  • View-specific descriptions
  • AudioClip diagnostics
  • Material list view in shader module
  • AnimatorController reporting
  • AnimationClip reporting
  • Avatar reporting
  • AvatarMask reporting
  • Domain Reload Roslyn analyzer
  • New Area category for IterationTime issues
  • Code/Domain Reload view, showing any issues raised by the Domain Reload Roslyn analyzer
  • Domain Reload diagnostic issues in the Settings view if Domain Reload is enabled
  • Diagnostics for unsupported APIs on WebGL target
  • Diagnostic for Static Batching being enabled whilst Entities Graphics is installed
  • Support for cancelling analysis

Changed

  • UI redesign of Summary showing issue breakdown, list of top ten issues, and buttons to jump to additional insights/views
  • Improved issue description and suggestion strings, to make them clearer and more consistent
  • Solid Color Texture analyzer now works for all texture types (2D, 2DArray, 3D, Cube) in Unity 2019.2 and above
  • Upgrade com.unity.nuget.mono-cecil to 1.11.4
  • Visualization of the Horizontal Stacked Bar and Legend Item
  • Improved AudioClip asset table
  • Clear table selection on unmuting issues
  • Move some data that should be user-configurable to UserPreferences
  • Report serialization files changed so that saved JSON is <= half the size it was before
  • Configuration is now handled via a ProjectAuditorSettings class/asset
  • Refactored and documented public API to allow CI/CD integration
  • Refactored, exposed and documented API to allow the creation of custom ModuleAnalyzers
  • Table views automatically resize columns to fit the data being displayed
  • Almost complete rewrite of the package documentation

Removed

  • Actions section and Mute/Unmute buttons
  • Settings from ProjectAuditorConfig
  • Support for Unity 2018 and 2019.
  • BuildReports are no longer saved into the project's Assets folder, and are instead cached in callbacks or read directly from the Library folder.

Fixed

  • Analysis never completes if an exception is thrown
  • Compilation if both URP and HDRP are installed
  • UI default column sorting
  • UI sorting criteria persistence after domain reload
  • Config changes not saved to corresponding asset
  • Ignoring texture streaming issues
  • Texture size reporting on Unity 2022.2 and above is now accurate
  • Unusually-formatted compiler warnings (such as the one generated by including mcs.rsp in the project) no longer cause all code compilation and analysis to silently fail.

[0.10.0] - 2023-05-03

Changed

  • Bumped analytics events version number from v1 to v2
  • Made many APIs internal rather than public
  • Added properly-formatted comments to enable API documentation for all remaining public types and methods
  • Changes to documentation in .md files to ensure standards compliance
  • Ignore SpriteAtlas test failures

Removed

  • Automated tests from package

[0.9.4-preview] - 2023-03-27

Added

  • SRP Asset Settings analyzer
  • Shader SRP Batcher analyzer
  • Solid Color Texture analyzer
  • Texture anisotropic level analyzer
  • Universal Render Pipeline analyzer

Changed

  • CHANGELOG.md format to ensure it adheres to Unity standards
  • Asset diagnostics IDs.

[0.9.3-preview.3] - 2023-02-28

Fixed

  • Lines and bars drawing
  • Missing "Read/Write" diagnostic recommendations

[0.9.3-preview.2] - 2023-02-21

Added

  • Texture mipmaps streaming analyzer

Fixed

  • View switching cancellation

[0.9.3-preview.1] - 2023-02-14

Added

  • Percentage formatting support
  • Individual asset size percentage to Build Report
  • Test utility classes to package

[0.9.2-preview] - 2023-02-07

Added

  • Added Fog shader variant stripping analyzer
  • Added IL2CPP Compiler Configuration analyzer

Fixed

  • Backwards compatibility
  • Reporting of shader variants if not compiled for analysis platform
  • Displaying of large values of total shader variants
  • Copy to Clipboard support of issue property
  • Table sorting

[0.9.1-preview] - 2023-01-24

Added

  • UnityEngine.Object.FindObjectOfType usage detection
  • Settings asset for configuring analyzers
  • Severity information to diagnostics UI

Fixed

  • Names of build-generated assets in Build Report
  • Parsing of unnamed shader passes in Unity 2021.2.14+
  • UnityEngine.AudioSettings speaker mode diagnostic

[0.9.0-preview] - 2022-12-01

Added

  • Diagnostic area Quality, Support and Requirement
  • documentation support to descriptor
  • Issue fixer support to descriptor
  • Package diagnostics
  • On-demand Texture, AudioClip, Mesh modules
  • Compute Shader Variants support

Fixed

  • Over-reporting of built shader variants count
  • Export of filtered/selected non-diagnostic issues
  • Build Report object name
  • Text alignment and wrapping issues
  • Build report steps text wrapping
  • Diagnostics critical property persistence after domain reload
  • Improved text search to match custom properties

[0.8.4-preview] - 2022-09-27

Added

  • Packages module to report installed packages and dependencies

Fixed

  • Analysis platform on incremental audit
  • Compilation error due to newer com.unity.nuget.mono-cecil

[0.8.3-preview] - 2022-09-05

Added

  • HTML export support
  • Packages module as Experimental
  • params array allocation diagnostic

Fixed

  • NullReferenceException on Draw2D shader not being found

[0.8.2-preview] - 2022-07-25

Added

  • User preferences
  • Group size/time properties
  • Support for analyzing all compiled Editor assemblies
  • Platform selection to Home screen

Changed

  • Descriptor ID type from int to string

Fixed

  • Diagnostic Rules serialization
  • Home page NullReferenceException on Build
  • NullReferenceException on export of non-diagnostic issues
  • Improved issue creation code-readability by using ProjectIssueBuilder

[0.8.1-preview] - 2022-06-24

Added

  • ProjectAuditorConfig option to enable/disable Roslyn analyzers
  • ProjectAuditorParams option for compiling selected assemblies
  • Discard button to toolbar
  • Modules selection to Home screen
  • Support for reporting precompiled assemblies

Changed

  • Renamed asynchronous ProjectAuditor.Audit to AuditAsync

Fixed

  • Compatibility with Unity 2022
  • Improved code analysis performance by caching "resolved" types

[0.8.0-preview] - 2022-05-20

Added

  • ProjectAuditor.NumCategories API
  • Module-specific incremental analysis support
  • Support to disable a module by default
  • 'Clear Selection' and 'Filter by Description' options to context menu
  • SavePath to configuration asset
  • Graphics Tier information to reported Shader Variants
  • Diagnostic message formatting support
  • Dependencies panel to assembly view
  • ImporterType to Build File properties

Changed

  • Default compilation mode to Non-Development
  • Replaced AnalyzeEditorCode with CompilationMode setting

Fixed

  • Reporting of assemblies not compiled due to dependencies
  • Improved code diagnostic messages
  • Improved UI groups to support arbitrary grouping criteria

Removed

  • Removed the need to have a Descriptor associated with non-diagnostic issues

[0.7.6-preview] - 2022-04-22

Fixed

  • Build Report analysis 'Illegal characters in path' exception
  • Shaders analysis 'Illegal characters in path' exception
  • Compilation warnings
  • Export of variants with no keywords

[0.7.5-preview] - 2022-04-20

Added

Changed

  • Optimized call tree building and visualization

[0.7.4-preview] - 2022-03-25

Added

  • OnRenderObject and OnWillRenderObject to list of MonoBehavior critical contexts
  • Compilation Time property to Assemblies view
  • Public API to get float/double custom property
  • Context menu item to open selected issue

Changed

  • Optimized viewing and sorting UI performance

Fixed

  • Closure allocation diagnostic message
  • Sorting of call hierarchy nodes

[0.7.3-preview] - 2022-03-01

Added

  • UnityEngine.Object.name code diagnostic
  • Severity filters support

Fixed

  • Unreported assemblies that failed to compile
  • View switching if any module is unsupported
  • Database of API usage descriptors

Removed

  • Redundant API usage descriptors

[0.7.2-preview] - 2022-01-21

Added

  • Shader Size, Source Asset and Always Included info to Shaders view
  • Shader Severity column to indicate any compiler message
  • Stage, Pass Type and Platform Keywords to Shader Variants view
  • Shader Variants view right scrollable panels
  • Shader Compiler Messages reporting

Fixed

  • Usage of deprecated shader API
  • Shader compilation log parsing in 2021 or newer
  • Cleanup of Shader Variants builds data in 2021 or newer

[0.7.1-preview] - 2021-12-15

Added

  • Option to enable creation of BuildReport asset after each build

Fixed

  • UWP compilation issues
  • ArgumentException on table Page Up/Down
  • InvalidOperationException due failure to resolve asmdef
  • NullReferenceException due to null compiler message
  • NullReferenceException on empty table
  • ShaderCompilerData parsing in 2021.2.0a16 or newer
  • Disabling of unsupported modules
  • Unreported output files from the same source asset
  • Automatic creation of last BuildReport asset after build

[0.7.0-preview] - 2021-11-29

Added

  • Documentation pages
  • UI Button to open documentation page based on active view
  • BuildReport Viewer UI
  • Runtime Type property to BuildReport size items
  • OnAnimatorIK and OnAnimatorMove to MonoBehaviour hot-paths

Fixed

  • NullReferenceException on projects with multiple dll with same name
  • Variants view ShaderRequirements information
  • Window opening after each build

[0.6.6-preview] - 2021-10-14

Fixed

  • ProjectReport.ExportToCSV filtering

[0.6.5-preview] - 2021-08-04

Fixed

  • Mono.Cecil package dependency

[0.6.4-preview] - 2021-07-26

Added

  • ProjectReport.ExportToCSV to public API

Fixed

  • "No graphic device is available" error in batchmode

[0.6.3-preview] - 2021-07-05

Fixed

  • NullReferenceException when searching Call Tree on Resources view
  • OverflowException on reporting build sizes
  • Player.log parsing if a shader name contains commas
  • Persistent "Analysis in progress..." message

[0.6.2-preview] - 2021-05-25

Added

  • Assemblies view (experimental)
  • Build Report Steps view
  • Overview stats to Build Report Size view

Fixed

  • Detection of HDRP mixed LitShaderMode

[0.6.1-preview] - 2021-05-11

Added

  • HDRP settings analyzer

Fixed

  • Build Report Build Name
  • Empty MonoBehaviour event detection
  • Graphics Tier Settings misreporting
  • Failed/cancelled report loading from file
  • Improved Shader Variants analysis workflow

[0.6.0-preview] - 2021-04-26

Added

  • Build Report support
  • Compiler Messages support
  • Generic types instantiation analysis
  • Summary view
  • Save&Load support
  • Log Shader Compilation option to Shader Variants view
  • Shaders view shortcut to Shader Variants view

Changed

  • Compilation pipeline to use AssemblyBuilder
  • Shader Variants Window to simple view

Fixed

  • Shader Variants persistence in UI after Domain Reload
  • Shader Variants Compiled column initial state
  • Code Diagnostics view sorting
  • Improved main documentation page

[0.5.0-preview] - 2021-03-11

Added

  • System.DateTime.Now usage detection
  • Descriptor's minimum/maximum version
  • Splash-screen setting detection
  • Zoom slider

Changed

  • Replaced tabs-like view selection with toolbar dropdown list
  • Changed Export feature to be view-specific

Removed

  • experimental label from Allocation issues

Fixed

  • Reporting of issues affecting multiple areas
  • Background analysis that results in code issues with empty filenames
  • Android player.log parsing
  • GraphicsSettings.logWhenShaderIsCompiled compilation error on early 2018.4.x releases
  • Reduced UI managed allocations

[0.4.2-preview] - 2021-02-01

Added

  • SRP Batcher column to Shader tab
  • Support for parsing Player.log to identify which shader variants are compiled (or not-compiled) at runtime
  • Shader errors/warnings reporting via Shader 'severity' icon
  • Shader Requirements column to Shader tab

Fixed

  • Detection of API calls using a derived type
  • Reporting of Editor Default Resources shaders
  • ReflectionTypeLoadException
  • Exception when switching focus from Area/Assembly window
  • NullReferenceException on invalid shader or vfx shader
  • NullReferenceException when building AssetBundles
  • Shader variants reporting due to OnPreprocessBuild callback default order

[0.4.1-preview] - 2020-12-14

Added

  • Support for analyzing Editor only code-paths
  • reuseCollisionCallbacks physics API diagnostic

Changed

  • Improved Shaders auditing to report both shaders and variants in their respective tables

Fixed

  • Assembly-CSharp-firstpass asmdef warning
  • Backwards compatibility

[0.4.0-preview] - 2020-11-24

Added

  • Shader variants auditing
  • "Collapse/Expand All" buttons

Changed

  • Refactoring and code quality improvements

[0.3.1-preview] - 2020-10-23

Added

  • Dependencies view to Assets tab
  • Double-click on an asset selects it in the Project Window
  • CI information to documentation

Changed

  • Move call tree to the bottom of the window
  • Case-sensitive string search to be optional

Fixed

  • Page up/down key bug fixes
  • Unity 2017 compatibility
  • Default selected assemblies
  • Area names filtering
  • Call-tree serialization

[0.3.0-preview] - 2020-10-07

Added

  • Auditing of assets in Resources folders
  • Shader warmup issues

Changed

  • Reorganized UI filters and mute/unmute buttons in separate foldouts
  • Better names for project settings issues

Fixed

  • Issues sorting within a group
  • ExportToCSV improvements

[0.2.1-preview] - 2020-05-22

Changed

  • Improved text search UX
  • Improved test coverage
  • Updated documentation

Fixed

  • Background assembly analysis
  • Lost issue location after domain reload
  • Tree view selection when background analysis is enabled
  • Yamato configuration

[0.2.0-preview] - 2020-04-27

Added

  • Boxing allocation analyzer
  • Empty MonoBehaviour method analyzer
  • GameObject.tag issue type to built-in analyzer
  • StaticBatchingAndHybridPackage analyzer
  • Object.Instantiate and GameObject.AddComponent issue types to built-in analyzer
  • String.Concat issue type to built-in analyzer
  • "experimental" allocation analyzer
  • Performance critical context analysis
  • Detect MonoBehaviour.Update/LateUpdate/FixedUpdate as perf critical contexts
  • Detect ComponentSystem/JobComponentSystem.OnUpdate as perf critical contexts
  • Critical-only UI filter
  • Profiler markers
  • Background analysis support

Changed

  • Optimized UI refresh performance and Assembly analysis

[0.1.0-preview] - 2019-11-20

Added

  • Config asset support
  • Mute/Unmute buttons
  • Assembly column

Changed

  • Replaced Filters checkboxes with Popups

[0.0.4-preview] - 2019-10-11

Added

  • Calling Method information
  • Grouped view to Script issues

Removed

  • "Resolved" checkboxes

Fixed

  • Lots of bug fixes

[0.0.3-preview] - 2019-09-04

Added

  • Progress bar
  • Package whitelist
  • Tooltips

Fixed

  • Unity 2017.x backwards compatibility

[0.0.2-preview] - 2019-08-22

First usable version

Replaced placeholder database with real issues to look for. This version also allows the user to Resolve issues.

[0.0.1-preview] - 2019-07-23

This is the first release of Project Auditor

Proof of concept, mostly developed during Hackweek 2019.