From e9dcdd884ac616b4c9f5b258fb2a78d10bfce293 Mon Sep 17 00:00:00 2001 From: Mukund Keshava Date: Fri, 13 Jun 2025 11:50:17 +0530 Subject: Add new capdef for lss intrinsics (#7427) * Add new capdef for lss intrinsics Fixes #7426 Raygen shaders need to be supported for only hitobject APIs. So we need a special capability for that, instead of a common one. * regenerate command line reference --------- Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com> --- source/slang/hlsl.meta.slang | 8 ++++---- source/slang/slang-capabilities.capdef | 6 ++++++ 2 files changed, 10 insertions(+), 4 deletions(-) (limited to 'source') diff --git a/source/slang/hlsl.meta.slang b/source/slang/hlsl.meta.slang index 3cfa9410b..ec7ff0e0d 100644 --- a/source/slang/hlsl.meta.slang +++ b/source/slang/hlsl.meta.slang @@ -20662,7 +20662,7 @@ struct HitObject [__requiresNVAPI] [NonUniformReturn] - [require(cuda_hlsl_spirv, raytracing_lss)] + [require(cuda_hlsl_spirv, raytracing_lss_ho)] float4 GetSpherePositionAndRadius() { __target_switch @@ -20687,7 +20687,7 @@ struct HitObject [__requiresNVAPI] [NonUniformReturn] - [require(cuda_hlsl_spirv, raytracing_lss)] + [require(cuda_hlsl_spirv, raytracing_lss_ho)] float2x4 GetLssPositionsAndRadii() { __target_switch @@ -20718,7 +20718,7 @@ struct HitObject [__requiresNVAPI] [NonUniformReturn] - [require(cuda_hlsl_spirv, raytracing_lss)] + [require(cuda_hlsl_spirv, raytracing_lss_ho)] bool IsSphereHit() { __target_switch @@ -20740,7 +20740,7 @@ struct HitObject [__requiresNVAPI] [NonUniformReturn] - [require(cuda_hlsl_spirv, raytracing_lss)] + [require(cuda_hlsl_spirv, raytracing_lss_ho)] bool IsLssHit() { __target_switch diff --git a/source/slang/slang-capabilities.capdef b/source/slang/slang-capabilities.capdef index 343f89687..312777340 100644 --- a/source/slang/slang-capabilities.capdef +++ b/source/slang/slang-capabilities.capdef @@ -2260,6 +2260,12 @@ alias raytracing_anyhit_closesthit = anyhit_closesthit + raytracing; /// [Compound] alias raytracing_lss = raytracing_anyhit_closesthit | spvRayTracingLinearSweptSpheresGeometryNV; +/// hit object APIs allow raygen shaders, but not the non-hit object APIs. So we have this special +/// capdef specifically for the hitobject variant. +/// Collection of capabilities for linear swept spheres. +/// [Compound] +alias raytracing_lss_ho = raytracing_lss | raygen; + /// Collection of capabilities for raytracing with the shader stages of anyhit, closesthit, and intersection. /// [Compound] alias raytracing_anyhit_closesthit_intersection = anyhit_closesthit_intersection + raytracing; -- cgit v1.2.3