Conversation
226c899 to
d437dda
Compare
Mostly non-functional refactor, replacing nvpro_core with vulkan_objects This commit ports the entire application to the modern vulkan_objects stack, removing many nvpro_core utilities and ecosystem dependencies in favor of explicit, RAII-based Vulkan primitives, layered utilities and features with clearer separation of concerns. Core architecture changes - Replaced nvvkhl::Application with layered utilities - The main loop is visible in main() using e.g. vko::simple::Swapchain and vko::glfw::* - Vulkan SDK dependency removed, now handled by vulkan_objects - No global Vulkan symbols/functions Memory, buffers, and images - Replaced nvvk::ResourceAllocator, MemAllocator, and StagingMemoryManager - Now using vko::vma::Allocator + vko::StagingStream - Buffers migrated to vko::DeviceBuffer / vko::BoundBuffer - Images/textures migrated to vko::BoundImage and vko::ViewedImage - Staging via vko::upload() and vko::download() Pipelines, descriptors, and ray tracing - Replaced nvvk::DescriptorSetContainer with: vko::BindingsAndFlags, vko::SingleDescriptorSet, vko::WriteDescriptorSetBuilder - Graphics, compute, and ray tracing pipelines rebuilt using vko RAII wrappers - Shader Binding Tables migrated to vko::simple::ShaderBindingTables - Existing ray tracing acceleration structure utilities ported to use vko helpers Command buffers, queues, and synchronization - Most visible vulkan calls are now vkCmd*, which are on the vko::Device function table - Timeline semaphore based submission via vko queue wrapper, which adds the concept of an explicit submit promise - New memory barrier and debug label calls UI, tooling, and utilities - Direct ImGui + ImPlot integration (no nvvkhl elements) - Just using std::print() instead of LOGE etc. - Command-line parsing with Taywee/args - File utilities replaced with std::filesystem Legacy isolation - Introduced nvpro_core_legacy_static for unavoidable leftovers: - DDS/KTX texture loading - Tonemapper postprocess - ImGui icon font Build & tooling - CMake mostly using FetchContent - Removed nvpro_core build logic and custom macros - Vulkan SDK no longer required
moved recreatingswapchain
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Mostly non-functional refactor, replacing nvpro_core with vulkan_objects
This commit ports the entire application to the modern vulkan_objects
stack, removing many nvpro_core utilities and ecosystem dependencies in
favor of explicit, RAII-based Vulkan primitives, layered utilities and
features with clearer separation of concerns.
Core architecture changes
vko::simple::Swapchain and vko::glfw::*
Memory, buffers, and images
StagingMemoryManager
Pipelines, descriptors, and ray tracing
Replaced nvvk::DescriptorSetContainer with:
vko::BindingsAndFlags, vko::SingleDescriptorSet,
vko::WriteDescriptorSetBuilder
Graphics, compute, and ray tracing pipelines rebuilt using vko
RAII wrappers
Shader Binding Tables migrated to vko::simple::ShaderBindingTables
Existing ray tracing acceleration structure utilities ported to use
vko helpers
Command buffers, queues, and synchronization
vko::Device function table
which adds the concept of an explicit submit promise
UI, tooling, and utilities
Legacy isolation
Build & tooling