microsoft / DirectXShaderCompiler

This repo hosts the source for the DirectX Shader Compiler which is based on LLVM/Clang.
Other
3.11k stars 697 forks source link

DXC generates corrupted DXIL IR from a code that uses RayQuery as a struct member #6998

Open jaladreips opened 3 weeks ago

jaladreips commented 3 weeks ago

Description DXC generates corrupted DXIL IR from a code that uses RayQuery as a struct member

Steps to Reproduce https://godbolt.org/z/9a4WeTWW3

Actual Behavior The allocateRayQuery instruction is missing. rayquery allocation argument in other rayquery intrinsics is replaced with an undef. Like this:

  call void @dx.op.rayQuery_TraceRayInline(i32 179, i32 **undef**, %dx.types.Handle %6, i32 0, i32 -1, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 1.000000e+00, float 1.000000e+03), !dbg !48
  %7 = call i1 @dx.op.rayQuery_Proceed.i1(i32 180, i32 **undef**), !dbg !74

Environment See godbolt link