Full changelog:
- [Doc] Add docstring for AutoDiff part (#2630) (by ljcc0930)
- [vulkan] Move SPIR-V type capabilities into VulkanCapabilities & fix compilation errors (#2628) (by Yu Chang)
- [vulkan] Use native struct types when supported & fix performance (#2621) (by Bob Cao)
- [vulkan] Dynamically load Vulkan (#2623) (by Dunfan Lu)
- [vulkan] Fix vulkan rand (#2622) (by Dunfan Lu)
- [benchmark] Add query_kernel_profiler_() and benchmark/misc for performance monitoring (#2601) (by rocket)
- [vulkan] Detect Vulkan / SPIR-V version & enabling required features (#2615) (by Bob Cao)
- [vulkan] Add SPIRV-Headers as a submodule (#2608) (by Ye Kuang)
- [ci] Prevent clang OOM (#2620) (by Ye Kuang)
- [IR] Init GlobalTensorElementExpression and PtrOffsetStmt (#2543) (by squarefk)
- [Lang] [refactor] Move SNode property calculation from materialization time to construction time (#2600) (by Yi Xu)
- [Doc] Add python docstring in misc/util.py (#2599) (by rocket)
- [Doc] Fix typo of PR #2586 (#2613) (by ljcc0930)
- [vulkan] Draft: Remove shaderc on Windows & Add spirv-tools's optimization (#2605) (by Bob Cao)
- [Lang] Support to destroy a SnodeTree and manage the memory (#2583) (by ljss)
- [Refactor] Split transformer.py into StmtBuilder and ExprBuilder (Stage 1) (#2495) (by xumingkuan)
- [Doc] Add Python docstring for some operators (#2586) (by ljss)
- [Doc] Doc string for common_ops.py (#2611) (by ljcc0930)
- [Doc] Fix return type of Python Docstring in ops.py (#2609) (by Rachel Gu)
- [Doc] Add Python docstrings for several APIs (#2606) (by Ye Kuang)
- [doc] Add python docstring for gui.py (#2604) (by Jiasheng Zhang)
- [Doc] Add Python docstring for functions in matrix.py, impl.py, util.py and ops.py (#2602) (by Mingrui Zhang)
- [opengl] Work group reduction (#2595) (by Bob Cao)
- [bug] [vulkan] Fix bugs in SPIR-V codegen exposed under Linux (#2603) (by Yu Chang)
- [Docs] Add docs for Expr class and functions in linalg.py (#2597) (by squarefk)
- [Refactor] Added axes() function in impl.py (#2594) (by cruedo)
- [ci] Fix one tiny bug (#2598) (by Jiasheng Zhang)
- [ci] Fix appveyor with new building procedure (#2596) (by Jiasheng Zhang)
- [Doc] Add Python docstring in several places (#2592) (by Yi Xu)
- [Doc] Add Python Docstring in ops.py (#2593) (by Rachel Gu)
- [Doc] Add Python docstring for Matrix class (#2587) (by FantasyVR)
- [bug] recursively include examples in distribution script (#2591) (by Andrew Sun)
- [Vulkan] Add SPIR-V codegen on Vulkan backend (#2582) (by Yu Chang)
- [Doc] Add python docstring for misc.image class (#2589) (by Yidong Ma)
- [Misc] Ignore the warning when first time finalizing ti.root(). (#2584) (by ljcc0930)
- [ci] Correct windows build and test in CI (#2576) (by Jiasheng Zhang)
- [refactor] Correct a few indices->axes renamings (#2577) (by Ye Kuang)
- [Doc] Add Python docstring for SNode (#2580) (by Ye Kuang)
- [opengl] Use OpenGL window visible hint instead of hiding after creation (#2581) (by Bob Cao)
- [Refactor] Renamed ti.Index to ti.Axis (#2560) (by cruedo)
- [Perf] Reduce GL backend's overhead (driver overhead & copy overhead) (#2532) (by Bob Cao)
- [IR] Update CHI example to match SNode API (#2574) (by bx2k)
- [Lang] Change the data layout for vector fields with that needs grad (#2575) (by Dunfan Lu)
- [Vulkan] Add Vulkan to Taichi (#2573) (by Ye Kuang)
- [IR] Support "packed" mode where shape will not be padded to a power of two (#2541) (by Yi Xu)
- [vulkan] Split into managed and reference devices (#2570) (by Ye Kuang)
- [Metal] Change Aot module for handling template arguments (#2529) (by Rachel Gu)
- [refactor] Cleaned taichi/core/settings related import (#2567) (by Jiasheng Zhang)
- [vulkan] Add Vulkan launcher (#2562) (by Ye Kuang)
- [Bug] Fix racing in llvm bc generation. (#2569) (by Ailing)
- [ci] Quick fix: bugs in upload.py (#2568) (by Jiasheng Zhang)
- [ci] Allow build specific commit when uploading, used new building procedure. (#2563) (by Jiasheng Zhang)
- [vulkan] Add GLSL-based codegen for Vulkan (#2557) (by Ye Kuang)