Release notes#

Being an experimental research framework, Dr.Jit does not strictly follow the Semantic Versioning convention. That said, we will strive to document breaking API changes in the release notes below.

Dr.Jit 0.4.3#

August 29, 2023

  • Fix nested recorded virtual function calls [7e8c13c]

  • Fix dr.gather/dr.scatter operations on quaternion types [9a7ac4e]

  • Fix gradient propagations on “special” types (quaternions, matrices, complex numbers) [fe624de]

  • Add support for JIT types in dr.transform_decompose and dr.transform_compose [1244530]

  • Various minor bug fixes

Dr.Jit 0.4.2#

April 25, 2023

  • Fix dlpack conversions [16b3882]

  • Fix virtual function call recursions [49ea1e0]

  • Various fixes to quaternions handling [8bbf831] .. [02e5b47]

  • Various minor bugs, memory leaks and undefined behaviour fixes

Dr.Jit 0.4.1#

February 22, 2023

  • Add a Kahan-style error-compensating atomic scatter-accumulation operation [c7225f6] .. [462dbd2]

  • Fix dr.whos() [02f7162]

  • Internal changes to virtual function calls (only devirtualize literals) [462dbd2]

  • Various minor bug fixes

Dr.Jit 0.4.0#

January 6, 2023

  • Various bug fixes and stability improvements

  • Internal refactorings (merge in/external reference counting, new variable types) [d5f4e65]

  • Improvements to code generation consistency [1af8233]

  • Fix a bug which would ocassionally produce invalid PTX/LLVM [9eb0649]

  • Improved atomic scatter-reduce operation [9eb0649]

  • Add dr.switch() and dr.dispatch [53bcbf9]

  • Support for LLVM’s ORCv2 JIT [fd36850]

  • Various internal refactorings (node-based IR, code generation) [bfab9ac] .. [d55d395]

Dr.Jit 0.3.2#

November 25, 2022

  • Fixed a regression related to type incompatibilities introduced by changes to dr.detach() [668081c]

Dr.Jit 0.3.1#

November 24, 2022

  • Fixed a regression in the C++ implementation of dr::schedule() [5e9da65]

  • Generalized dr::detach() to arbitrary mappings and sequences, related adaptations to dr.wrap_ad() [e0aeb45]

Dr.Jit 0.3.0#

November 23, 2022

  • Update Dr.Jit Core (various performance and stability improvements)

  • Allow functions in dr.wrap_ad to return nested data structures [2d4910b]

  • Fix matrix stride computation [c7451c]

  • Fix dr.tile and dr.repeat for Bool types [c15a71d]

  • Support list/dict arguments in dr.wrap_ad [9f711c5]

  • Add 3D variant for dr::meshgrid in C++ [ed3d046]

  • Fix dr.unravel for Tensor inputs [578b0dd]

  • Add dr::suspend_grad and dr::resume_grad C++ routines [112c294]

  • Various Python type information (stub generation) improvements [b102b3c]

Dr.Jit 0.2.2#

September 12, 2022

  • Add bindings for dr.llvm_version() [07e9da8]

  • Fix dr.make_opaque for diff TensorXf [f6bde89]

  • Change behavior of dr.diff_array_t to always return a type [e0172fc]

  • Compilation fixes for stub files generation [bf770d4]

  • Add missing operations on Tensor types [15d490c]

  • Fix dr.shape for ragged arrays [a026b56]

  • Add the dr.wrap_ad() function decorator for interoperability between AD-aware frameworks (e.g. Dr.Jit and PyTorch) [4a1528e]

  • dr.device handles the case where the input was allocated by another framework [9e993a6]

Dr.Jit 0.2.1#

July 20, 2022

  • Fix upsampling of multichannel textures [53dd605]

Dr.Jit 0.2.0#

July 19, 2022

  • Change cubic texture gradient and hessian functions to also return the texture values [1d50efe]

  • Add support for non-array types in dr.CustomOp inputs

  • Various minor fixes in C++ test suite [dcaf69a]

Dr.Jit 0.1.0#

July 18, 2022

  • Initial release