General
This version contains a large cleanup of all the cruft the api has accumulated over the last two years.
It has a lot of breaking changes. From this version onwards, breaking changes will not be done until early 2027, anything that will be removed will be deprecated first.
[Core]
- fixed bug shader resource object lifetime management (could lead to leaks in specific cases)
- fixed inconsistent to_string results for the default cases, now "UNKNOWN" is used for all as a default fallback
- fixed missing dll export markings for multiple to_string functions
- fixed c++ compliance of resource id casting by making them all std layout compatible
- fixed issues in examples on linux by @expenses
- fixed dll builds on MSVC by @Xaryen
- fixed compilation on clang/msvc (msvc's stl does not implement certain std lib features when using clang :/)
- [BREAKING CHANGE] removed all deprecated api
- [BREAKING CHANGE] removed dead wait_stages parameter in SubmitInfo
- [BREAKING CHANGE] rename daxa_dvc_submit to daxa_dvc_submit_commands
- [BREAKING CHANGE] renamed and reordered parameters in copy commands for more consistency (buffer vs src_buffer etc.)
- [BREAKING CHANGE] renamed daxa_dvc_present to daxa_dvc_present_frame
- [BREAKING CHANGE] renamed DAXA_ACCESS_DRAW_INDIRECT_READ to DAXA_ACCESS_INDIRECT_COMMAND_READ
- [BREAKING CHANGE] renamed queue family to queue type to be more distinct from the vulkan queue families
- [BREAKING CHANGE] renamed allocate_info to memory_flags, as this parameter no longer stores anything else than mem flags
- [BREAKING CHANGE] added draw mesh tasks info parameter struct for consistency
- [BREAKING CHANGE] removed image concurrency modes, all images now use concurrent across all queues always
- [BREAKING CHANGE] removed all throwing within c++ wrapper, now uses std::abort instead
- [BREAKING CHANGE] removed swapchain surface and format selector callback
- [BREAKING CHANGE] reworked wsi handle integration of the swapchain
- added new swapchain query functions daxa_dvc_report_supported_present_modes, daxa_dvc_report_supported_image_formats, daxa_dvc_choose_swapchain_surface_format
[TaskGraph]
- fully removed MK1 code, tg now exclusively uses the new backend
- fixed for dangling pointer in taskgraph by @lukasino1214
- fixed error message strings getting corrupted
- fixed crashes in tg debug ui
- fixed occasional transient resource naming corruption
- fixed incorrect task access const values by @laurelkeys
- [BREAKING CHANGE] removed all deprecated api
- [BREAKING CHANGE] renamed TaskStage to TaskStages to better reflect that the variable can store a set of stages
- [BREAKING CHANGE] renamed use_persistent_* to register_*
- [BREAKING CHANGE] added return values to register_* calls, returning a valid view to that resource local to the taskgraph
- [BREAKING CHANGE] persistent resources are now referred to as external resources
- [BREAKING CHANGE] replaced all external resource create infos for greater simplicity
- [BREAKING CHANGE] greatly simplified tracking state of external resources
- [BREAKING CHANGE] removed multi resource support within a single external resource
- [BREAKING CHANGE] removed array resource attachments
- [BREAKING CHANGE] removed struct like task definitions
- [BREAKING CHANGE] renamed SAMPLED to SAMPLE everywhere for consitency
- [BREAKING CHANGE] removed jit_compile_permutations, permutation_condition_count and record_debug_information, as they were all dead and unused options of TG
- added new convenience functions to external resource types (set and get id functions)
- added new lifetime option to task graph resources, they can now be transient/persistent/double buffered. This allows tg to manage temporal resources such as denoiser history images
- added a large set of new task builder functions to allow for attachment modifications as well as more convenient task construction
- added missing convenience constants for TaskAccessConsts
- reworked how samples access is treated in the api, is now a modifier to read access
- improved compile times by adjusting template logic for task construction
[ImGui]
- [BREAKING CHANGE] moved record function to use parameter struct for consistency