-
Notifications
You must be signed in to change notification settings - Fork 437
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Ray Tracing Pipeline (KHR) #2564
Conversation
Finally a working example with |
I have done the major changes and the PR should be ready for review. I will add some description in PR page and maybe some unit tests soon. |
Please name the examples just "ray-tracing." Most of the examples render a triangle but they do it with more advanced features than just a hello triangle. |
This looks good so far, and runs correctly on my machine. I left some comments on individual places that need attention. In addition, I think there should be some documentation for the ray tracing pipeline module itself. It should explain some of the basics of how ray tracing pipelines work, and a summary of the different shader types and their roles. |
As a sidenote @ComfyFluffy, to help you with development in the future: I saw that you were debugging by adding a debug messenger to some examples. There's no need to do that; you should instead use vkconfig. It can inject validation layers into any existing Vulkan application (including our examples). |
Hi, any idea how long until it gets merged? |
When it's done? |
That's helpful! Thank you. |
Some more public items in pipeline/ray_tracing.rs are still missing documentation. |
A question: how should we deal with |
Vulkano generally defines all its structs itself. That way we can add methods and traits to them, independent of the Ash implementation. |
I have added a struct definition for |
Thank you so much for your PR and your patience in dealing with my nitpicks! |
Thank you @ComfyFluffy for finally bringing us this long-awaited feature! We all love you for it ❤️ |
Update documentation to reflect any user-facing changes - in this repository.
Make sure that the changes are covered by unit-tests.
Run
cargo clippy
on the changes.Run
cargo +nightly fmt
on the changes.Please put changelog entries in the description of this Pull Request
if knowledge of this change could be valuable to users. No need to put the
entries to the changelog directly, they will be transferred to the changelog
file by maintainers right after the Pull Request merge.
Changelog:
Changes
RayTracingPipeline
, which corresponds to thevkPipeline
object and construction methods and structs.bind_pipeline_ray_tracing
&trace_rays
(vkCmdTraceRaysKHR
) in the old and new sync.Device::get_ray_tracing_shader_group_handles
. Used in building the shader binding table.ShaderGroupHandlesData
. Helper for the data fromget_ray_tracing_shader_group_handles
.ShaderBindingTable
. Struct that holds the addresses and underlying buffer of shader binding table, which is used intrace_rays
. It contains a constructor that automatically build the SBT from pipeline groups.triangle-raytracing-auto
for the oldAutoCommandBuffer
, andtriangle-raytracing
for the newtaskgraph
sync.Not implemented (yet) in this PR
DeferredOperationKHR
. Not planned.RayTracingCaptureReplay
. Not planned.RayTracingPipelineStackSize
(in dynamic stats). Maybe in this PR?