summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-type-layout.cpp
diff options
context:
space:
mode:
authorNathan V. Morrical <natemorrical@gmail.com>2021-06-04 17:18:14 -0600
committerGitHub <noreply@github.com>2021-06-04 16:18:14 -0700
commit1617c2d4d7145435f34619d8d6706c5845b898c0 (patch)
tree46187a6ac9cae538d20593eb10ab319acf21973f /source/slang/slang-type-layout.cpp
parent95a90d7fda3097d085cde1fea5213667277e729b (diff)
Enable tracing rays with OptiX backend (#1871)
* OptiX ray payload can now be read from and written to using the two payload register pointer method * changing op to more descriptive name * small tweak to allow for dumping out intermediate source for cuda targets * initial trace ray call compiling * hit attributes now work for float and int types, and vectors thereof * Hitgroups using structs and arrays now work with optix Co-authored-by: T. Foley <tfoleyNV@users.noreply.github.com>
Diffstat (limited to 'source/slang/slang-type-layout.cpp')
-rw-r--r--source/slang/slang-type-layout.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/source/slang/slang-type-layout.cpp b/source/slang/slang-type-layout.cpp
index 42a93f3f0..2568547a4 100644
--- a/source/slang/slang-type-layout.cpp
+++ b/source/slang/slang-type-layout.cpp
@@ -719,7 +719,7 @@ HLSLRayTracingLayoutRulesImpl kHLSLHitAttributesParameterLayoutRulesImpl(LayoutR
//
CUDARayTracingLayoutRulesImpl kCUDARayPayloadParameterLayoutRulesImpl(LayoutResourceKind::RayPayload);
//CUDARayTracingLayoutRulesImpl kCUDACallablePayloadParameterLayoutRulesImpl(LayoutResourceKind::CallablePayload);
-//CUDARayTracingLayoutRulesImpl kCUDAHitAttributesParameterLayoutRulesImpl(LayoutResourceKind::HitAttributes);
+CUDARayTracingLayoutRulesImpl kCUDAHitAttributesParameterLayoutRulesImpl(LayoutResourceKind::HitAttributes);
struct GLSLLayoutRulesFamilyImpl : LayoutRulesFamilyImpl
{
@@ -947,6 +947,10 @@ LayoutRulesImpl kCUDARayPayloadParameterLayoutRulesImpl_ = {
&kCUDALayoutRulesFamilyImpl, &kCUDARayPayloadParameterLayoutRulesImpl, &kCUDAObjectLayoutRulesImpl,
};
+LayoutRulesImpl kCUDAHitAttributesParameterLayoutRulesImpl_ = {
+ &kCUDALayoutRulesFamilyImpl, &kCUDAHitAttributesParameterLayoutRulesImpl, &kCUDAObjectLayoutRulesImpl,
+};
+
// GLSL cases
LayoutRulesImpl kStd140LayoutRulesImpl_ = {
@@ -1303,7 +1307,7 @@ LayoutRulesImpl* CUDALayoutRulesFamilyImpl::getCallablePayloadParameterRules()
}
LayoutRulesImpl* CUDALayoutRulesFamilyImpl::getHitAttributesParameterRules()
{
- return nullptr;
+ return &kCUDAHitAttributesParameterLayoutRulesImpl_;
}
LayoutRulesImpl* CUDALayoutRulesFamilyImpl::getShaderRecordConstantBufferRules()
{