Skip to content

Releases: Devsh-Graphics-Programming/Nabla

Fix a few Examples

01 Jun 15:52
64da18c
Compare
Choose a tag to compare
Fix a few Examples Pre-release
Pre-release

Examples 01,02,05,06,07,09,10,29,33,34,35,38,55,61-UI,both 62 are tested and known to work.

ImGUI and Built-in Resources Rework

27 May 19:14
51405b6
Compare
Choose a tag to compare
Pre-release

Changelog

New Features

ImGUI Integration

First draft, no bindless and single drawcall yet :D

Built-in Resource Library creation CMake Utility

All built-in resources now work as a "special" file archive to integrate better with Nabla's virtual file system.

The CMake utility to make a "builtin resource library" will package any resources you want into a special CArchive : nbl::system::IFileArchive in your own namespace. This means that now examples and executables using Nabla can package their own shaders, images, etc. that need to be shipped with the EXE into the EXE itself using the exact same mechanism Nabla uses internally.

We haven't upgraded all examples to use that though, yet...

Resource Aliases

You can now access the same builtin resource (as long as its embedded, if its not embedded then its not built-in and ergo still on your filesystem and you need a symlink) via multiple paths.

Mounting Directories as Archives

The CMountDirectoryArchive lets you "pretend" that a given absolute directory path is available virtually in the Nabla filesystem with a different prefix path.

Beware: The content listing is not cached, so it might slow down the filesystem significantly when you mount it. Will fix in some future release.

Vulkan Synchronization Validation Support

Added Vulkan Synchronization Validation enable option when creating the IAPIConnection.

Fixes

Made IFileArchive::getItemList() threadsafe and efficient

Before it was just efficient, by returning a reference to a vector. Now a refcounted reference (a shared pointer) to a constant vector created on the heap is returned so that multiple users in multiple threads can share the memory and benefit from stable iterators, in the event some other invocation of getItemList() returning a different listing, they'll just see the old stale data as opposed to crashing.

This is to support Read/Write Archives in the future, but that feature needs resizing of the pool allocator for the garbage collected IFile views.

Better DLL builds (less weird cases of missing symbols when using in the field)

Most Clang compilation issues hammered out

Async I/O Reworked and Fixed

22 Mar 07:03
Compare
Choose a tag to compare
Pre-release

Changelog

Fixes

nbl::system::IAsyncQueueDispatcher design failure and deadlocks

Done as part of #476

Next Release

Fixes

Built-in Resources Compilation failure and rework

#477 by @AnastaZIuk

Compilation on GCC and Clang on Linux

To be addressed by: https://github.com/Devsh-Graphics-Programming/Nabla/pulls/pollend

DXC doesn't compile on Linux

Probably @AnastaZIuk will do this

Future Releases

Fixes

Swapchain Manager

The way we deal with resizes is very disorganized and could improve.

Double Convolution and Image Filter rework

Done as part of #435

Less verbose CommonAPI

Basically a refactor

Ability to build everything as a shared lib on Linux

See #474

Pure Features

X11/XCB Windowing and UI on Linux

Basically non-headless Vulkan mode for Linux #462

Bring back CUDA and OptiX interop

Would be nice to get old missing features back.

Vulkan Working and Operational

10 Mar 08:37
14cf8e7
Compare
Choose a tag to compare
Pre-release

Things left to hammer out

Bugs

nbl::system::IAsyncQueueDispatcher design failure and deadlocks

Being addressed in https://github.com/Devsh-Graphics-Programming/Nabla/compare/async_queues?expand=1

Destructors of certain objects are not threadsafe

Issue #472

Built-in Resources Compilation failure and rework

TODO by @AnastaZIuk

DXC doesn't compile on Linux

Need access to HLSL on Linux

Features

Compilation under GCC and Clang on Linux

To be addressed by: https://github.com/Devsh-Graphics-Programming/Nabla/pulls/pollend

X11/XCB Windowing and UI on Linux

Basically non-headless Vulkan mode for Linux #462

Swapchain Manager

The way we deal with resizes is very disorganized and could improve.

Less verbose CommonAPI

Basically a refactor

Ability to build everything as a shared lib on Linux

See #474

Bring back CUDA and OptiX interop

Would be nice to get old missing features back.

Recruitment Task Starting Point

16 Mar 13:42
32ccd78
Compare
Choose a tag to compare
Pre-release

Many examples validated and fixed up.

Path Tracer v0.1.2-alpha

Pre-release

Features:

  • Better failure logging
  • Log resource sizes
  • New camera controls (LM-Drag look around, RM-Drag move around, MouseWheel Zoom)
  • Multiple render views in one scene
  • GLSL raytracing VM compiles asynchronously in a thread
  • Output to EXR
  • Commandline operation
  • stop at sample count

Bugfixes:

  • Works on Intel HD Graphics!
  • Fix 4k rendering (release OpenCL resources)
  • Fix mixture BSDF Material Compiler AST node
  • Allow for 6k rendering on 8GB GPUs

Path Tracer v0.1.1

23 Jul 02:55
30af492
Compare
Choose a tag to compare
Path Tracer v0.1.1 Pre-release
Pre-release

Same as before, just added Normal Map support and fixed some Virtual Texturing bugs.

Path Tracer v0.1

02 Jul 01:51
Compare
Choose a tag to compare
Path Tracer v0.1 Pre-release
Pre-release

You can try it out on any recent Nvidia GPU with scenes from the following resource:
https://benedikt-bitterli.me/resources/

OptiX_AI_denoiser_standalone_v2.1

Pre-release

Added a better way to control the bloom flare size.

Also fixed a few argument parsing bugs

OptiX_AI_denoiser_standalone_v2.0

19 Apr 16:43
043aa92
Compare
Choose a tag to compare
Pre-release

Reimplemented the denoiser to use tiles for denoising. Also added FFT convolution bloom from any HDR kernel in an .exr file.

Made new parameters required, make sure to study new usage.