[PR1] Introduced batch versions of ray_fire() and point_in_volume() with GPRT backend#195
Open
Waqar-ukaea wants to merge 66 commits intoxdg-org:mainfrom
Open
[PR1] Introduced batch versions of ray_fire() and point_in_volume() with GPRT backend#195Waqar-ukaea wants to merge 66 commits intoxdg-org:mainfrom
Waqar-ukaea wants to merge 66 commits intoxdg-org:mainfrom
Conversation
…constants across all rays
…irectly via an "external" compute shader
Added a code path that involves populating GPRT rays via a callback and firing against these pre-populated rays with `xdg::ray_fire_prepared()`
…er access behind XDG_ENABLE_GPRT
e0fc13b to
9bed03d
Compare
9bed03d to
9eaaae1
Compare
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.
Summary
This PR adds core XDG support for batched GPRT ray queries, enabling both
ray_fire()andpoint_in_volume()to run over many rays efficiently.With this PR there are now two query paths to GPRT ray tracing:
Public API Changes
GPRTRayTracer(new / overridden)Point-in-volume
point_in_volume(...)— batched PIV over points (optional directions and exclude list).Ray fire
ray_fire(...)— batched ray fire over origins/directions (with distance limit, orientation, optional exclude list).Buffer / workflow plumbing
check_rayhit_buffer_capacity(...)— ensure device buffers can accommodateNrays.GPRT backend accessors
context()— access the underlying GPRT context. Currently required since GPRT does not implementVK_EXTERNAL_MEMORYas of yet. So to mock an external application, I use "external" compute shaders attached to the same underlying GPRTContext.RayTracerinterface (new virtuals)Adds virtual entry points for batched and prepared workflows:
point_in_volume(...)ray_fire(...)check_rayhit_buffer_capacity(...)XDGAPI (new overloads / helpers)Batched launch
ray_fire(...)— volume-level overload for batched ray fire.Also included are a set of tests for the new batch API versions of the two methods.