[Mesa-dev] Landing ray-tracing support in ANV
Iago Toral
itoral at igalia.com
Thu Oct 29 07:10:06 UTC 2020
Hi Jason, this is really cool! Very happy to see that support for ray
tracing is in the works!
Iago
On Wed, 2020-10-28 at 17:26 -0500, Jason Ekstrand wrote:
> All,
>
> Some of you may be curious about what I've been up to for most of
> 2020, why I've not been working on IBC, and why I suddenly decided to
> start caring about ray-tracing. Well... it's all because I've been
> working on this little project to implement VK_KHR_ray_tracing in
> ANV.
> I finally have the approval to start talking publicly about the Intel
> ray-tracing implementation and can start landing code upstream.
>
> To kick things off, I've posted a merge request which contains the
> bulk of the compiler work required to transform ray-tracing shaders
> into Intel's upcoming bindless dispatch model and compile them:
>
> https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7356
>
> This is only the first of what will likely be many MRs. I've also
> created a tracking issue which will be used to help link it all
> together and keep me sane. You can find it here:
>
> https://gitlab.freedesktop.org/mesa/mesa/-/issues/3709
>
> Apart from the core ray-tracing compiler bits, my next focus for
> upstream will be landing more OpenCL support patches. In order to do
> GPU-side BVH building, I've got a pile of kernels written in OpenCL C
> that we need to be able to compile with our stack. In order for
> those
> to work, we need a few more things:
>
> - Generic pointer support (!6332)
> - SPV_INTEL_subgroups (!7145)
> - ANV support for compiling and dispatching OpenCL kernels (coming
> soon)
> - Misc NIR clean-ups and fixes.
>
> The API bits for ray-tracing will be coming later. I've got most of
> the API implemented but it's currently all written against the latest
> version of the KHR ray-tracing spec which hasn't been released
> publicly. Once that spec goes public, I can start dropping patches.
> If the public KHR gets delayed too long and I run out of other bits
> to
> upstream, I may rebase the API bits on the provisional KHR from
> January or even the NV spec but I'd really rather not do that as it'd
> be a pile of churn in my internal branch for very little benefit.
>
> LAQ (Likely Asked Questions):
>
> Q: Do the patches work? Have you tested them?
> A: Yes. Don't worry, I'm not sending a bunch of untested garbage.
> Out of several thousand CTS tests, I've got 3 that are failing due to
> undiagnosed compiler bugs. I'd say that's pretty good. :-)
>
> Q: Will this work on older Intel GPUs?
> A: No. While a pure SW emulation on top of compute shaders would be
> possible, this is not it. This implementation requires new Xe HPG
> hardware that has not yet been released.
>
> Q: Which upcoming Intel GPUs will support ray-tracing and when can I
> buy one?
> A: We’ve previously disclosed plans to release Xe HPG GPUs with
> dedicated hardware for ray tracing in 2021. I’m not authorized to
> tell
> you more. Sorry. Please don't ask. It just makes for an awkward
> conversation.
>
> Q: Most of the new compiler code is in src/intel. Can it be
> generalized for implementing ray-tracing in RADV or other Mesa Vulkan
> drivers?
> A: Yes, likely some of it can. In particular, there is a shader
> splitting pass (for splitting shader calls into continuations) as
> well
> as a pass to inline any-hit shaders into intersection shaders. With
> a
> little work, both of those could be generalized and pulled into
> src/compiler/nir. The rest is mostly lowering code to translate to
> Intel's ray-tracing model. Likely other hardware vendors models will
> be different enough that those passes won't be directly applicable.
>
> Q: What about games that have already shipped ray-tracing support
> using VK_NV_ray_tracing? Will you support those?
> A: I would eventually like to support any Vulkan games that support
> ray-tracing. However, it's still a bit TBD just how we'll deal with
> games that use the NV extension. Ideally, once VK_KHR_ray_tracing
> ships publicly, we would convince the game vendors who have already
> shipped ray-tracing support to push an update that switches their
> game
> over to the KHR extension. If that fails, it would be pretty easy to
> write a layer which translates from the NV extension to the KHR one.
>
> That's all for now, folks! I'll be on IRC and e-mail if you have any
> questions. I'd love to get some outside review on the compiler
> patches if I could. The shader splitting pass, in particular, is a
> bit on the gnarley side.
>
> --Jason
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list