Skip to content

Restyled Feat/0.7.1 replaced - #271

Merged
Agrael1 merged 6 commits into
feat/0.7.1-replacedfrom
restyled/feat/0.7.1-replaced
Sep 13, 2026
Merged

Agrael1 merged 6 commits into
feat/0.7.1-replacedfrom
restyled/feat/0.7.1-replaced

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

Automated style fixes for #269, created by Restyled.

To see which restylers made changes, view the Commits tab.

To incorporate these changes, merge this Pull Request into the original. We
recommend using the Squash or Rebase strategies.

NOTE: As work continues on the original Pull Request, this process will
re-run and update (force-push) this Pull Request with updated style fixes as
necessary. If the style is fixed manually at any point (i.e. this process finds
no fixes to make), this Pull Request will be closed automatically.

@github-actions
github-actions Bot requested a review from Agrael1 September 13, 2026 17:10
@Agrael1
Agrael1 merged commit 0d69fb8 into feat/0.7.1-replaced Sep 13, 2026
@Agrael1
Agrael1 deleted the restyled/feat/0.7.1-replaced branch September 13, 2026 17:11
Agrael1 added a commit that referenced this pull request Sep 13, 2026
* Switch to std::format, remove fmtlib and wis::format

Replaced all uses of wis::format and fmtlib with C++20 std::format and related functions. Removed the custom format.hpp header and all references to it. Updated CMake and Conan configuration to drop fmtlib dependency. Codebase now requires a C++20 compiler with std::format support. Minor code cleanups and function signature formatting improvements included.

* Add optional DirectX 12 Agility SDK support via CMake

Introduce WISDOM_USE_AGILITY_SDK CMake option to enable building with the DirectX 12 Agility SDK for access to newer DX12 features on older Windows versions. Refactor dependency logic to conditionally fetch and deploy Agility SDK or DirectX-Headers as needed. Update DX12Allocator linkage and macro definitions accordingly. Replace legacy Agility deployment functions with a unified install function. Update documentation and source includes to reflect these changes.

* Split NuGet/ZIP packaging; add Agility SDK validation

Refactored packaging to produce separate NuGet (without Agility SDK) and ZIP (with Agility SDK) artifacts using distinct build/install roots. Updated CI to validate package contents, ensuring correct inclusion/exclusion of Agility SDK files. Improved CMake install logic for headers, clarified multi-config scripts, and refactored Agility SDK export macros. Enabled unity builds for Linux and made minor CMake target property adjustments.

* Refactor Agility SDK integration and CMake helpers

- Move NuGet/CMake Agility helpers to functions.cmake (Windows only)
- Add wis_load_agility_sdk(), wis_patch_agility_executable(), and wis_install_agility_win32() for automated Agility SDK setup and symbol export
- Update CMakeLists.txt to use new helpers and add WISDOM_DOWNLOAD_DXC option
- Improve Conan packaging: version from file, header_only option, better component handling
- Update documentation for new Agility SDK usage paths and helpers
- Remove manual WISDOM_EXPORT_AGILITY_SYMBOLS() macro from entry_main.cpp
- General cleanup and modernization of Agility SDK handling for all build systems

* Overhaul packaging: CPack, NuGet, ZIP, DXC, integration tests

Major refactor of packaging and deployment:
- Switch to CPack for both NuGet and ZIP generation, with generator-specific logic and improved metadata.
- Remove legacy nuget.cmake; add scripts for NuGet layout and DLL placement.
- Refactor DXC handling: new CMake functions for DXC download/discovery, only included in ZIP; NuGet depends on Microsoft.Direct3D.DXC.
- Update CI to build, package, and integration-test both formats.
- Add PowerShell scripts and sample projects for automated ZIP/NuGet integration testing.
- Update wisdom.targets and add nuget.config for correct MSBuild/NuGet integration.
- Introduce wis::in_place for in-place construction, update C++ API.
- Modernize packaging scripts and update .gitignore for new artifacts and tests.

* Refactor API, add Conan support, improve docs & scripts

- Reformatted C/C++ API functions for consistency and readability
- Replaced `supported_initial_transitions` with `gpu_upload_heap_budget` in `WisDeviceMemoryProperties` (API change)
- Added Conan integration and option to manage dependencies via CMake
- Introduced PowerShell scripts for automated build and test on Windows
- Improved code formatting and generator logic for large file sets
- Fixed and clarified documentation comments throughout the codebase
- Miscellaneous bug fixes, error handling, and style improvements

* Remove gpu_upload_heap_budget from device properties

Removed gpu_upload_heap_budget from WisDeviceMemoryProperties and DeviceMemoryProperties in both C and C++ APIs. Updated all related code, documentation, and XML definitions to eliminate references to this field. Clarified documentation for gpu_upload_supported and host_image_copy_supported. Made minor code formatting improvements.

* Refactor dependency management: add Conan/CPM toggle

Refactor CMake dependency management to support toggling between Conan and CPM via WISDOM_USE_CONAN. Move Conan logic from CMakeLists.txt to deps.cmake and update Vulkan/DirectX 12 memory allocator targets to match Conan package names. Improve find_package integration and error handling for missing dependencies. Update conanfile.py to always require Vulkan Memory Allocator.

* Improve Conan/CMake integration and dependency handling

- Enhance NuGet discovery and fallback in functions.cmake
- Rename DX12Allocator to D3D12MemoryAllocator in wisdom.targets
- Remove header_only option; default to shared build in conanfile.py
- Add d3d12-memory-allocator as a Windows dependency
- Always enable WISDOM_USE_CONAN in CMake toolchain
- Refactor package_info for correct targets and dependencies
- Add Conan integration test scripts and minimal test project
- Add CMakeUserPresets.json for Conan/CMake workflows
- Improve documentation in address_mode_enum.h
- Fix wisdom-platform-shared linkage for shared builds

* Add Raytracing extension with DX12/Vulkan support

Introduced a new Raytracing extension for Wisdom, providing C and C++ APIs for both DirectX 12 and Vulkan backends. Added CMake options and build logic for static/shared/header-only builds. Implemented platform-specific initialization, destruction, and support-checking functions. Generated and documented new API headers. Added tests for extension lifecycle and support detection. Updated build scripts and XML registry to integrate the new extension. Ensured proper resource management and handle validity.

* Add acceleration structure API for DX12 and Vulkan

Introduce AccelerationStructure handle, descriptor, and level types for raytracing. Implement creation, destruction, and GPU address query functions for both DX12 and Vulkan backends. Update buffer and pipeline handle sizes, add resource management logic, and extend codegen XML and documentation. Provide C++ wrappers and a new test for acceleration structure creation and address retrieval.

* Add cross-API query for BLAS memory requirements

Introduced enums and structs for geometry and allocation description. Added wisRaytracingExtensionGetBottomLevelStructureInfo to query acceleration structure and scratch buffer sizes for DX12 and Vulkan. Updated C/C++ APIs, backend implementations, and tests to use the new mechanism. Improved documentation and defined alignment constants. Updated XML registry and codegen for new API.

* Refactor AS ownership: caller manages buffer/device lifetime

Update DX12 and Vulkan acceleration structure ownership model:
- Acceleration structures no longer hold references to buffers/devices.
- Remove resource/buffer control block fields and ref counting.
- Update docs to clarify caller's responsibility for resource lifetime.
- Adjust XML handle sizes for Vulkan buffer.
- Simplify destruction logic and resource management.

* Add top-level AS allocation info query to API

Introduce WisTopLevelStructureBuildDesc and the IndirectInput flag. Implement wisRaytracingExtensionGetTopLevelStructureInfo for DX12 and Vulkan backends. Update docs, XML, and tests to support querying allocation info for top-level acceleration structures. Adjust bottom-level build logic for indirect input and ensure C/C++ API consistency.

* swapchain rt

* Add Video extension with DX12/Vulkan support and codegen

Introduced a new Video extension with CMake integration, C/C++ API headers, and backend implementations for DirectX 12 and Vulkan. Updated the code generator to support handle constructors with custom parameters from XML, enabling automatic generation of extension handle constructors. Added XML spec files for the Video extension, new headers for enums and handles, and backend-specific implementation files. Improved code generation for function parameters and enhanced parsing of <init> blocks in handle definitions. Comprehensive documentation was added for all new types and functions.

* Add extensible video decode capability query API

Replaces the old boolean "Supported" check with wisVideoDecodingExtensionQueryCodecCaps, enabling detailed queries for codec profiles, bit depths, chroma subsampling, and max resolution. Introduces new enums and structs for codec capabilities, updates C/C++ APIs, and implements backend support for DX12 and Vulkan. Updates documentation, codegen, and sample app to use the new API. Adds helper files for Vulkan function loading and enum conversion.

* Add video format & profile support, refactor codec desc

- Add NV12, P010, P012, P016 formats and 16-bit bit depth support
- Refactor WisVideoCodecDesc: use data_format, add width/height
- Expand H.265 profiles (Main12, Main16), renumber profiles
- Update DX12/Vulkan backends for new formats and profiles
- Improve DX12 Agility SDK handling in CMake/build scripts
- Update example app and docs for new API and formats
- Minor cleanups and improved error handling throughout

* Add video format validation to Vulkan decoding extension

Enhances the Vulkan video decoding extension by adding support for querying and validating video format compatibility. Introduces format mapping utilities, integrates format checks into codec capability queries, and improves error handling for unsupported formats and profiles.

* Refactor QueryCodecCaps to return Result only

Refactored the QueryCodecCaps function in both C and C++ APIs for DX12 and Vulkan to return only a Result type, removing all usage of the VideoDecodeInfo structure. Updated function signatures, documentation, and XML metadata accordingly. Added resolution bounds checking in the Vulkan implementation. Adjusted example usage to match the new API.

* Add cross-platform video decoder creation API

Introduces a unified API for creating and managing hardware-accelerated video decoders in the Wisdom video module, supporting both DX12 and Vulkan. Adds the WisVideoDecoderDesc structure, new decoder handle types, and functions for decoder creation and destruction. Updates C/C++ APIs, documentation, and registry. Refactors out the old WisVideoDecodeInfo. Implements backend logic for both DX12 and Vulkan, and updates sample usage and wrappers for type safety and RAII.

* Refactor video API: rename fields, add video decode test

Refactor video decoding API for clarity and consistency:
- Rename data_format to image_format in all APIs and docs
- Replace max_width/max_height with width/height in decoder desc
- Update DX12/Vulkan backends and headers for new field names
- Add comprehensive video decoding capability test (video.cpp)
- Update CMake/test infra to include new test
- Simplify test logging callbacks and improve error handling
- Update XML API descriptions for renamed fields
- Refactor Vulkan backend result handling for clarity

These changes improve API usability, consistency, and test coverage.

* Refactor Vulkan video decoder resource management

Introduce VKVideoDecodingControlBlock for improved resource tracking and lifetime management. Increase WisVKVideoDecoder handle size from 3 to 4. Add vkBindVideoSessionMemoryKHR to VKVideoTable and update initialization. Implement batch memory allocation and binding with VMA, ensuring proper cleanup. Update destruction logic for extension and decoder to release resources and references. Enhance VKScopeGuard with a Release method. Update documentation and XML handle definitions to match new handle size.

* Add video decode command list API for DX12 and Vulkan

Introduce WisVideoDecodeCommandList and WisVideoDecoderParameters handles for both DX12 and Vulkan backends. Add API functions for creating, beginning, ending, and destroying video decode command lists and decoder parameters. Extend the C++ API with RAII wrappers and methods for these resources. Implement backend logic for command list management. Update documentation, code registry, and build files to support the new functionality.

* - Introduce AV1 enums and structs for profiles, levels, frame types, color config, loop filter, quantization, segmentation, tile info, CDEF, restoration, global motion, film grain, sequence header, and decode info
- Add std_video_av1.xml registry and integrate into video.xml
- Add VideoDecodeInputDesc variant for bitstream input
- Implement DecodeFrame method for VideoDecodeCommandList (DX12/Vulkan)
- Update C/C++ API headers to expose new AV1 types and functions
- Implement backend support for DecodeFrame (DX12: DecodeFrame1, Vulkan: vkCmdDecodeVideoKHR)
- Integrate libavif for AVIF sample handling in examples
- Add AVIF demuxer and sample loading to example app
- Enhance codegen for bitfields and string enums
- Update documentation and references for new AV1 features

* Add VideoDecoderParameters API for explicit codec params

Introduce VideoDecoderParameters handle and wisVideoDecoderCreateParameters function for explicit management of codec-specific parameter sets (e.g., AV1 sequence headers). Update DecodeFrame APIs to require decoder parameters, and implement backend support for DX12 and Vulkan. Update documentation, XML, and codegen to reflect the new workflow. This decouples parameter management from frame decoding, improving extensibility and hardware decode support.

* Replace libavif with mBMFF for AVIF parsing

Switch AVIF parsing from libavif to mBMFF, updating CMake and source code accordingly. Remove avif_demux.hpp and migrate demuxing logic to entry_main.cpp using mBMFF. Add functions to extract AV1 sequence headers and build decoder parameters. Update Vulkan video decoder to set pNext and codec type correctly. Update avif_sample.avif to match new parsing logic.

* Added H265 parsing
Video now requires support for both maintenance 1 and 2
Removed static session parameters.
Implemented DecodeFrame partioally
Implemented InsertBarrier for video command list

* Fixed header only build
Refactored Video Example

* Added Command list view and submit

* Added Decoding parameters

* Added video flags for buffer and texture

* Added slicing of the video

* Fixed memory binding to video session and leak of it

* Added NAL unit size parsing (QnD)

* fixed NAL parsing error

* Changed the query for alignment

* Fixed empty reference info and width + height problem

* Added back decoder params

* All the errors are gon. Access violation still exists

* all errors gon

* Added mutable video formats and removed sampled usage from video formats

* Device removal on submission

* The decoding doesn't work, releasig 0.7.1 without video/raytracing

* Removed unfinished extensions for 0.7.1 release

* update the restyled workflow

* Restyled Feat/0.7.1 replaced (#270)

* Restyled by astyle

* Restyled by autopep8

* Restyled by black

* Restyled by clang-format

* Restyled by cmake-format

* Restyled by isort

* Restyled by prettier-json

* Restyled by pyment

* Restyled by reorder-python-imports

* Restyled by whitespace

* Restyled by yapf

---------

Co-authored-by: Restyled.io <commits@restyled.io>

* Restyled Feat/0.7.1 replaced (#271)

* Restyled by astyle

* Restyled by black

* Restyled by clang-format

* Restyled by isort

* Restyled by reorder-python-imports

* Restyled by yapf

---------

Co-authored-by: Restyled.io <commits@restyled.io>

* Updated the NuGet release workflow
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants