Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove undefined behavior for ray queries #6761

Open
1 of 7 tasks
Vecvec opened this issue Dec 16, 2024 · 0 comments
Open
1 of 7 tasks

Remove undefined behavior for ray queries #6761

Vecvec opened this issue Dec 16, 2024 · 0 comments
Labels
area: correctness We're behaving incorrectly area: validation Issues related to validation, diagnostics, and error handling backend: vulkan Issues with Vulkan feature: raytracing Issues with the Ray Tracing Native Feature naga Shader Translator type: bug Something isn't working

Comments

@Vecvec
Copy link
Contributor

Vecvec commented Dec 16, 2024

Is your feature request related to a problem? Please describe.
Currently the ray queries have lots of undefined behavior from the spirv spec that should be removed

Describe the solution you'd like
Prevent the undefined behaviour

Describe alternatives you've considered
Not remove it.

Additional context
Also see #6731 for some details of what can happen.
Current known undefined behavior*:

  • (Vulkan only) Anytime a ray misses and rayQueryGet*Intersection is called - [spirv] Stop naga causing undefined behavior in rayQueryGet*Intersection #6752
  • (Vulkan and DX12) Calling rayQueryGetCommittedIntersection or rayQueryGetCandidateIntersection when rayQueryProceed has not been called called on this ray query since it was initialized (or if the ray query has not been previously initialized).
    • Make this optional if module is trusted (This is avoidable).
  • (Vulkan and DX12) Calling rayQueryGetCommittedIntersection when rayQueryProceed's latest return on this ray query is considered Candidate (and the other way round too).
    • Make this optional if module is trusted (This is avoidable).
  • (Vulkan and DX12) Calling rayQueryProceed when rayQueryInitialize has not previously been called on this ray query.
    • Make this optional if module is trusted (This is avoidable).

*I don't know Metal's requirements and cannot find them easily listed, if anyone does know them (or can find them) could they post them below?

@cwfitzgerald cwfitzgerald added type: bug Something isn't working area: validation Issues related to validation, diagnostics, and error handling area: correctness We're behaving incorrectly backend: vulkan Issues with Vulkan naga Shader Translator feature: raytracing Issues with the Ray Tracing Native Feature labels Dec 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: correctness We're behaving incorrectly area: validation Issues related to validation, diagnostics, and error handling backend: vulkan Issues with Vulkan feature: raytracing Issues with the Ray Tracing Native Feature naga Shader Translator type: bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants