Skip to content

Conversation

@areidmeyer
Copy link
Collaborator

No description provided.

Signed-off-by: Andrew Reidmeyer <[email protected]>
Signed-off-by: Andrew Reidmeyer <[email protected]>
Signed-off-by: Andrew Reidmeyer <[email protected]>
Signed-off-by: Andrew Reidmeyer <[email protected]>
Signed-off-by: Andrew Reidmeyer <[email protected]>
Signed-off-by: Andrew Reidmeyer <[email protected]>
Signed-off-by: Andrew Reidmeyer <[email protected]>
Signed-off-by: Andrew Reidmeyer <[email protected]>
Signed-off-by: Andrew Reidmeyer <[email protected]>
Signed-off-by: Andrew Reidmeyer <[email protected]>
Signed-off-by: Andrew Reidmeyer <[email protected]>
Signed-off-by: Andrew Reidmeyer <[email protected]>
Signed-off-by: Andrew Reidmeyer <[email protected]>
@areidmeyer areidmeyer marked this pull request as ready for review December 8, 2025 15:47
Signed-off-by: Andrew Reidmeyer <[email protected]>
Signed-off-by: Andrew Reidmeyer <[email protected]>
Signed-off-by: Andrew Reidmeyer <[email protected]>
areidmeyer and others added 4 commits December 8, 2025 22:28
@phapalova phapalova requested a review from Copilot December 11, 2025 09:32
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds support for Vulkan Buffer Device Address (BDA) and sparse buffer binding features to enable more efficient memory management for large GPU buffers.

Key Changes:

  • Enables VK_KHR_BUFFER_DEVICE_ADDRESS extension and sparse binding features
  • Implements buffer device address retrieval for structured buffers
  • Adds sparse buffer support for buffers exceeding 1GB threshold
  • Refactors shader code to use device address pointers instead of direct buffer bindings
  • Implements chunked upload/readback for large buffers exceeding 1GB

Reviewed changes

Copilot reviewed 20 out of 20 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
vulkan/PublicDeviceVulkan.cpp Registers the new get_buffer_device_address interface function
vulkan/LoaderVulkan.h Adds sparse binding features and buffer device address extension declarations
vulkan/DeviceVulkan.h Updates Buffer struct to support multiple memory handles, sparse bindings, and buffer addresses
vulkan/DeviceVulkan.cpp Enables sparse binding and sparse residency buffer features
vulkan/DeviceUtilsVulkan.cpp Enables VK_KHR_BUFFER_DEVICE_ADDRESS device extension
vulkan/ComputePipelineVulkan.cpp Uncomments warning flag assignment for grid dimension warnings
vulkan/BufferVulkan.cpp Implements sparse buffer creation, binding, and device address retrieval logic
raster/shaders/raster2d_common.slang Adds device address pointer fields and pointer load/store helper functions
raster/shaders/gaussian_*.slang Converts buffer accesses to use device address pointers
raster/Raster2D.cpp Populates buffer device addresses in constants and handles dynamic intersection buffer sizing
raster/Raster.h Adds max_isects_count tracking field
raster/ParallelPrimitives.cpp Updates radix sort to support separate buffer size from actual element count
raster/Common.h Implements chunked buffer upload/readback for buffers exceeding 1GB
nanovdb_editor/putil/ParallelPrimitives.h Adds buffer_key_count parameter to radix sort function signatures
nanovdb_editor/putil/Compute.h Declares get_buffer_device_address interface function
Comments suppressed due to low confidence (1)

raster/ParallelPrimitives.cpp:1

  • The parameter name max_isects_count in the function call is misleading. It represents the buffer capacity, not the maximum intersection count. Consider renaming to buffer_capacity or buffer_size_in_elements for clarity.
// Copyright Contributors to the OpenVDB Project

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

…f it fixes tests on ARM lavapipe

Signed-off-by: Petra Hapalova <[email protected]>
Signed-off-by: Petra Hapalova <[email protected]>
@phapalova
Copy link
Collaborator

/run-all

@github-actions
Copy link

🚀 Triggered workflows on branch areidmeyer/buffer_device_address

build-and-test.yml (run pending)
build-and-test-python.yml (run pending)
codestyle.yml (run pending)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants