diff options
| author | jsmall-nvidia <jsmall@nvidia.com> | 2022-11-15 15:27:28 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-11-15 15:27:28 -0500 |
| commit | 4917d71100aafcc38a81cd99d2a44a4cb3a89a0c (patch) | |
| tree | 8e474c4f5a7db41ef1c1f2230f36f57fb4c6f446 /source/slang/slang-check-modifier.cpp | |
| parent | 7222b6cdb1ed192b267e91896b1f56da3f0c21d6 (diff) | |
Shader Execution Reordering for VK (#2491)
* #include an absolute path didn't work - because paths were taken to always be relative.
* Fixes around MakeMiss.
* Add preliminary support for HitObject::MakeHit.
* Make Nop.
* Add HitObject::TraceRay.
* HitObject::Invoke for VK.
* Remove line numbers from SER GLSL output.
* Add support for HitObjectAttributes
Add support for GLSL HitObject.GetAttributes<T>()
Simplified code around getting locations.
* Be more explicit about requiring GL_EXT_ray_tracing in SER.
* Split out LocationTracker from CLikeEmitter.
* Small doc improvements.
* Add motion ray support.
* Use inlining to get correct GLSL behavior around hitObjectNV.
* Add assignment HitObject test.
* Add a HitObject array test. Shows doesn't work correctly for VK/GLSL.
* Add call to `hitObjectGetAttributesNV` before getting attributes.
Diffstat (limited to 'source/slang/slang-check-modifier.cpp')
| -rw-r--r-- | source/slang/slang-check-modifier.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/source/slang/slang-check-modifier.cpp b/source/slang/slang-check-modifier.cpp index b8ac21e2d..aa28571a7 100644 --- a/source/slang/slang-check-modifier.cpp +++ b/source/slang/slang-check-modifier.cpp @@ -604,6 +604,15 @@ namespace Slang callablePayloadAttr->location = (int32_t)val->value; } + else if (auto hitObjectAttributesAttr = as<VulkanHitObjectAttributesAttribute>(attr)) + { + SLANG_ASSERT(attr->args.getCount() == 1); + auto val = checkConstantIntVal(attr->args[0]); + + if (!val) return false; + + hitObjectAttributesAttr->location = (int32_t)val->value; + } else if (auto forwardDerivativeAttr = as<ForwardDerivativeAttribute>(attr)) { SLANG_ASSERT(attr->args.getCount() == 1); |
