summaryrefslogtreecommitdiffstats
path: root/tools/render-test/main.cpp
diff options
context:
space:
mode:
authorTim Foley <tfoleyNV@users.noreply.github.com>2018-04-19 09:34:54 -0700
committerGitHub <noreply@github.com>2018-04-19 09:34:54 -0700
commitc68c6fa02690012f54928202811050cee649d81e (patch)
tree614447345c070429b1b2ea0c3639cdc4ffbf81a9 /tools/render-test/main.cpp
parent17fa424a195ed562e0c9d87cee57577c90c1fc37 (diff)
Fix up DXR type emission from IR type system (#498)
* There was a simple typo where we were emitting `RaytracingAccelerationStructureType` instead of `RaytracingAccelerationStructure` * The IR lowering logic was failing to handle types with an `__intrinsic_type` modifier (which maps them to a single IR opcode) that weren't in one of the various special cases. I added a catch-all case to the handling of `DeclRefType`. This notably affected the `RayDesc` type. * Even if we lower `RayDesc` to an intrinsic type, we still need to lower its *fields* too, and these were getting emitted with mangled names (as would happen for any user-defined fields). The solution I implemented was to allow for fields to have `__target_intrinsic` modifiers in the stdlib, to specify the un-mangled name they should use on each target. I'm not 100% happy with this solution, because it seems odd to have `RayDesc` be an intrinsic type, but then to also have field keys used in `getField` instructions as if it were an ordinary `struct`. It seems like a better solution would be to have it lower to an IR `struct`, just with an appropriate modifier.
Diffstat (limited to 'tools/render-test/main.cpp')
0 files changed, 0 insertions, 0 deletions