Skip to content

Commit

Permalink
Improve Direct SPIRV Backend Test Coverage (#4396)
Browse files Browse the repository at this point in the history
'raytracing' and 'texture-footprint' tests

fixed texture-footprint bug
changed when we emit raytracing/rayquery extensions with glsl backend (to reduce incorrect extension emitting)
  • Loading branch information
ArielG-NV authored Jun 14, 2024
1 parent 33e81a0 commit fdef653
Show file tree
Hide file tree
Showing 14 changed files with 187 additions and 133 deletions.
21 changes: 7 additions & 14 deletions source/slang/hlsl.meta.slang
Original file line number Diff line number Diff line change
Expand Up @@ -19209,8 +19209,7 @@ ${
return spirv_asm {
OpCapability ImageFootprintNV;
OpExtension "SPV_NV_shader_image_footprint";
%sampledImage:__sampledImageType(this) = OpSampledImage $this $sampler;
%resultVal:$$__FootprintData = OpImageSampleFootprintNV %sampledImage $coords $granularity $useCoarseLevel;
%resultVal:$$__FootprintData = OpImageSampleFootprintNV &this $coords $granularity $useCoarseLevel;
OpStore &footprint %resultVal;
result:$$bool = OpCompositeExtract %resultVal 0;
};
Expand All @@ -19237,8 +19236,7 @@ ${
return spirv_asm {
OpCapability ImageFootprintNV;
OpExtension "SPV_NV_shader_image_footprint";
%sampledImage:__sampledImageType(this) = OpSampledImage $this $sampler;
%resultVal:$$__FootprintData = OpImageSampleFootprintNV %sampledImage $coords $granularity $useCoarseLevel Bias $bias;
%resultVal:$$__FootprintData = OpImageSampleFootprintNV &this $coords $granularity $useCoarseLevel Bias $bias;
OpStore &footprint %resultVal;
result:$$bool = OpCompositeExtract %resultVal 0;
};
Expand Down Expand Up @@ -19267,8 +19265,7 @@ ${
OpCapability ImageFootprintNV;
OpCapability MinLod;
OpExtension "SPV_NV_shader_image_footprint";
%sampledImage:__sampledImageType(this) = OpSampledImage $this $sampler;
%resultVal:$$__FootprintData = OpImageSampleFootprintNV %sampledImage $coords $granularity $useCoarseLevel MinLod $lodClamp;
%resultVal:$$__FootprintData = OpImageSampleFootprintNV &this $coords $granularity $useCoarseLevel MinLod $lodClamp;
OpStore &footprint %resultVal;
result:$$bool = OpCompositeExtract %resultVal 0;
};
Expand Down Expand Up @@ -19298,8 +19295,7 @@ ${
OpCapability ImageFootprintNV;
OpCapability MinLod;
OpExtension "SPV_NV_shader_image_footprint";
%sampledImage:__sampledImageType(this) = OpSampledImage $this $sampler;
%resultVal:$$__FootprintData = OpImageSampleFootprintNV %sampledImage $coords $granularity $useCoarseLevel Bias|MinLod $bias $lodClamp;
%resultVal:$$__FootprintData = OpImageSampleFootprintNV &this $coords $granularity $useCoarseLevel Bias|MinLod $bias $lodClamp;
OpStore &footprint %resultVal;
result:$$bool = OpCompositeExtract %resultVal 0;
};
Expand Down Expand Up @@ -19327,8 +19323,7 @@ ${
return spirv_asm {
OpCapability ImageFootprintNV;
OpExtension "SPV_NV_shader_image_footprint";
%sampledImage:__sampledImageType(this) = OpSampledImage $this $sampler;
%resultVal:$$__FootprintData = OpImageSampleFootprintNV %sampledImage $coords $granularity $useCoarseLevel Lod $lod;
%resultVal:$$__FootprintData = OpImageSampleFootprintNV &this $coords $granularity $useCoarseLevel Lod $lod;
OpStore &footprint %resultVal;
result:$$bool = OpCompositeExtract %resultVal 0;
};
Expand Down Expand Up @@ -19361,8 +19356,7 @@ ${{{
return spirv_asm {
OpCapability ImageFootprintNV;
OpExtension "SPV_NV_shader_image_footprint";
%sampledImage:__sampledImageType(this) = OpSampledImage $this $sampler;
%resultVal:$$__FootprintData = OpImageSampleFootprintNV %sampledImage $coords $granularity $useCoarseLevel Grad $dx $dy;
%resultVal:$$__FootprintData = OpImageSampleFootprintNV &this $coords $granularity $useCoarseLevel Grad $dx $dy;
OpStore &footprint %resultVal;
result:$$bool = OpCompositeExtract %resultVal 0;
};
Expand Down Expand Up @@ -19393,8 +19387,7 @@ ${{{
OpCapability ImageFootprintNV;
OpCapability MinLod;
OpExtension "SPV_NV_shader_image_footprint";
%sampledImage:__sampledImageType(this) = OpSampledImage $this $sampler;
%resultVal:$$__FootprintData = OpImageSampleFootprintNV %sampledImage $coords $granularity $useCoarseLevel Grad|MinLod $dx $dy $lodClamp;
%resultVal:$$__FootprintData = OpImageSampleFootprintNV &this $coords $granularity $useCoarseLevel Grad|MinLod $dx $dy $lodClamp;
OpStore &footprint %resultVal;
result:$$bool = OpCompositeExtract %resultVal 0;
};
Expand Down
5 changes: 4 additions & 1 deletion source/slang/slang-emit-glsl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2591,7 +2591,10 @@ void GLSLSourceEmitter::emitSimpleTypeImpl(IRType* type)
{
case kIROp_RaytracingAccelerationStructureType:
{
_requireRayQuery();
if (!isRaytracingStage(m_entryPointStage))
_requireRayQuery();
else
_requireRayTracing();
m_writer->emit("accelerationStructureEXT");
break;
}
Expand Down
4 changes: 2 additions & 2 deletions source/slang/slang-emit-spirv.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3590,8 +3590,8 @@ struct SPIRVEmitContext
case kIROp_VulkanRayPayloadDecoration:
case kIROp_VulkanRayPayloadInDecoration:
// needed since GLSL will not set optypes accordingly, but will keep the decoration
ensureExtensionDeclaration(UnownedStringSlice("SPV_KHR_ray_query"));
requireSPIRVCapability(SpvCapabilityRayQueryKHR);
ensureExtensionDeclaration(UnownedStringSlice("SPV_KHR_ray_tracing"));
requireSPIRVCapability(SpvCapabilityRayTracingKHR);
isRayTracingObject = true;
break;
case kIROp_InterpolationModeDecoration:
Expand Down
16 changes: 16 additions & 0 deletions source/slang/slang-profile.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,22 @@ ProfileFamily getProfileFamily(ProfileVersion version)
}
}

bool isRaytracingStage(Stage inStage)
{
switch (inStage)
{
case Stage::RayGeneration:
case Stage::Miss:
case Stage::Intersection:
case Stage::ClosestHit:
case Stage::Callable:
case Stage::AnyHit:
return true;
default:
return false;
}
}

const char* getStageName(Stage stage)
{
switch(stage)
Expand Down
2 changes: 2 additions & 0 deletions source/slang/slang-profile.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ namespace Slang

};

bool isRaytracingStage(Stage inStage);

const char* getStageName(Stage stage);

void printDiagnosticArg(StringBuilder& sb, Stage val);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
//TEST:SIMPLE(filecheck=SPIRV):-target spirv-assembly -entry fragmentMain -stage fragment -emit-spirv-via-glsl
//TEST:SIMPLE(filecheck=SPIRV):-target spirv -entry fragmentMain -stage fragment
//DISABLED_TEST:SIMPLE(filecheck=SPIRV):-target spirv-assembly -entry fragmentMain -stage fragment -DENABLE_CLAMP -emit-spirv-directly
//DISABLED_TEST:SIMPLE(filecheck=DXIL):-target dxil-assembly -entry fragmentMain -stage fragment
//TEST:SIMPLE(filecheck=HLSL):-target hlsl -entry fragmentMain -stage fragment
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
//TEST:SIMPLE(filecheck=SPIRV):-target spirv-assembly -emit-spirv-via-glsl -entry fragmentMain -stage fragment -DENABLE_CLAMP
//TEST:SIMPLE(filecheck=SPIRV):-target spirv -entry fragmentMain -stage fragment -DENABLE_CLAMP
//DISABLED_TEST:SIMPLE(filecheck=SPIRV):-target spirv-assembly -entry fragmentMain -stage fragment -DENABLE_CLAMP -emit-spirv-directly

//DISABLED_TEST:SIMPLE(filecheck=DXIL):-target dxil-assembly -entry fragmentMain -stage fragment
Expand Down Expand Up @@ -84,14 +85,12 @@ void fragmentMain(
float v : VARYING,

uniform Texture2D texture_2D,
// SPIRV: OpTypeImage
// SPIRV-SAME: 2D
// SPIRV-DAG: OpTypeImage {{.*}} 2D

// HLSL-DAG: Texture2D{{.*}}register(t0)

uniform Texture3D texture_3D,
// SPIRV: OpTypeImage
// SPIRV-SAME: 3D
// SPIRV-DAG: OpTypeImage {{.*}} 3D

// HLSL-DAG: Texture3D{{.*}}register(t1)

Expand Down
55 changes: 28 additions & 27 deletions tests/hlsl-intrinsic/ray-tracing/rt-pipeline-intrinsics-ahit.slang
Original file line number Diff line number Diff line change
@@ -1,35 +1,36 @@
//TEST:SIMPLE(filecheck=SPIRV):-target spirv-assembly -entry main -stage anyhit -profile glsl_460+GL_EXT_ray_tracing -emit-spirv-via-glsl
//TEST:SIMPLE(filecheck=SPIRV):-target spirv-assembly -entry main -stage anyhit -emit-spirv-via-glsl
//TEST:SIMPLE(filecheck=SPIRV):-target spirv -entry main -stage anyhit
// Motion rays not supported on HLSL impl currently, so disable with NOMOTION define:
//TEST:SIMPLE(filecheck=DXIL):-target dxil-assembly -entry main -stage anyhit -profile sm_6_5 -DNOMOTION

// SPIRV-NOT: OpCapability RayQueryKHR
// SPIRV-DAG: RayTracingKHR
// SPIRV-DAG: SPV_KHR_ray_tracing

// SPIRV: OpEntryPoint

// SPIRV: OpLoad %v3uint %gl_LaunchIDEXT
// SPIRV: OpLoad %v3uint %gl_LaunchSizeEXT

// SPIRV: OpLoad %v3float %gl_WorldRayOriginEXT
// SPIRV: OpLoad %v3float %gl_WorldRayDirectionEXT
// SPIRV: OpLoad %float %gl_RayTminEXT
// SPIRV: OpLoad %float %gl_RayTmaxEXT
// SPIRV: OpLoad %uint %gl_IncomingRayFlagsEXT

// SPIRV: OpLoad %int %gl_InstanceID
// SPIRV: OpLoad %int %gl_InstanceCustomIndexEXT
// SPIRV: OpLoad %int %gl_GeometryIndexEXT
// SPIRV: OpLoad %int %gl_PrimitiveID
// SPIRV: OpLoad %v3float %gl_ObjectRayOriginEXT
// SPIRV: OpLoad %v3float %gl_ObjectRayDirectionEXT
// SPIRV: OpLoad %mat4v3float %gl_ObjectToWorldEXT
// SPIRV: OpLoad %mat4v3float %gl_ObjectToWorldEXT
// SPIRV: OpLoad %mat4v3float %gl_WorldToObjectEXT
// SPIRV: OpLoad %mat4v3float %gl_WorldToObjectEXT
// SPIRV: OpLoad %uint %gl_HitKindEXT

// SPIRV: OpLoad %v3float %gl_ObjectRayOriginEXT
// SPIRV: OpLoad %v3float %gl_ObjectRayDirectionEXT
// SPIRV: OpLoad %float %gl_RayTmaxEXT
// SPIRV: OpTerminateRayKHR
// SPIRV: OpIgnoreIntersectionKHR
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn LaunchIdNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn LaunchSizeNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn WorldRayOriginNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn WorldRayDirectionNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn RayTminNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn RayTmaxNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn IncomingRayFlagsNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn InstanceId
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn InstanceCustomIndexNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn RayGeometryIndexKHR
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn PrimitiveId
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn ObjectRayOriginNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn ObjectRayDirectionNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn ObjectToWorldNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn WorldToObjectNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn HitKindNV

// SPIRV-DAG: OpTypePointer HitAttributeNV
// SPIRV-DAG: OpTypePointer IncomingRayPayloadNV

// SPIRV-DAG: OpTerminateRayKHR
// SPIRV-DAG: OpIgnoreIntersectionKHR

// DXIL: main

Expand Down
54 changes: 32 additions & 22 deletions tests/hlsl-intrinsic/ray-tracing/rt-pipeline-intrinsics-chit.slang
Original file line number Diff line number Diff line change
@@ -1,33 +1,43 @@
//TEST:SIMPLE(filecheck=SPIRV):-target spirv-assembly -entry main -stage closesthit -profile glsl_460+GL_EXT_ray_tracing -emit-spirv-via-glsl
//TEST:SIMPLE(filecheck=SPIRV):-target spirv-assembly -entry main -stage closesthit -emit-spirv-via-glsl
//TEST:SIMPLE(filecheck=SPIRV):-target spirv -entry main -stage closesthit
// Motion rays not supported on HLSL impl currently, so disable with NOMOTION define:
//TEST:SIMPLE(filecheck=DXIL):-target dxil-assembly -entry main -stage closesthit -profile sm_6_5 -DNOMOTION

// SPIRV-NOT: OpCapability RayQueryKHR
// SPIRV-DAG: RayTracingKHR
// SPIRV-DAG: RayTracingMotionBlurNV
// SPIRV-DAG: SPV_KHR_ray_tracing
// SPIRV-DAG: SPV_NV_ray_tracing_motion_blur

// SPIRV: OpEntryPoint

// SPIRV: OpLoad %v3uint %gl_LaunchIDEXT
// SPIRV: OpLoad %v3uint %gl_LaunchSizeEXT
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn LaunchIdNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn LaunchSizeNV
// SPIRV-DAG: OpDecorate %{{.*}} Binding 0
// SPIRV-DAG: OpDecorate %{{.*}} DescriptorSet 0
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn WorldRayOriginNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn WorldRayDirectionNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn RayTminNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn RayTmaxNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn IncomingRayFlagsNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn InstanceId
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn InstanceCustomIndexNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn RayGeometryIndexKHR
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn PrimitiveId
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn ObjectRayOriginNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn ObjectRayDirectionNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn ObjectToWorldNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn WorldToObjectNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn HitKindNV

// SPIRV-DAG: OpTypePointer IncomingRayPayloadNV
// SPIRV-DAG: OpTypePointer RayPayloadNV
// SPIRV-DAG: OpTypeAccelerationStructureKHR
// SPIRV-DAG: OpTypePointer HitAttributeNV
// SPIRV-DAG: OpTypePointer CallableDataNV

// SPIRV: OpTraceRayKHR
// SPIRV: OpTraceRayMotionNV

// SPIRV: OpLoad %v3float %gl_WorldRayOriginEXT
// SPIRV: OpLoad %v3float %gl_WorldRayDirectionEXT
// SPIRV: OpLoad %float %gl_RayTminEXT
// SPIRV: OpLoad %float %gl_RayTmaxEXT
// SPIRV: OpLoad %uint %gl_IncomingRayFlagsEXT

// SPIRV: OpLoad %int %gl_InstanceID
// SPIRV: OpLoad %int %gl_InstanceCustomIndexEXT
// SPIRV: OpLoad %int %gl_GeometryIndexEXT
// SPIRV: OpLoad %int %gl_PrimitiveID
// SPIRV: OpLoad %v3float %gl_ObjectRayOriginEXT
// SPIRV: OpLoad %v3float %gl_ObjectRayDirectionEXT
// SPIRV: OpLoad %mat4v3float %gl_ObjectToWorldEXT
// SPIRV: OpLoad %mat4v3float %gl_ObjectToWorldEXT
// SPIRV: OpLoad %mat4v3float %gl_WorldToObjectEXT
// SPIRV: OpLoad %mat4v3float %gl_WorldToObjectEXT
// SPIRV: OpLoad %uint %gl_HitKindEXT

// SPIRV: OpExecuteCallableKHR

// DXIL: main
Expand Down
48 changes: 25 additions & 23 deletions tests/hlsl-intrinsic/ray-tracing/rt-pipeline-intrinsics-int.slang
Original file line number Diff line number Diff line change
@@ -1,31 +1,33 @@
//TEST:SIMPLE(filecheck=SPIRV):-target spirv-assembly -entry main -stage intersection -profile glsl_460+GL_EXT_ray_tracing -emit-spirv-via-glsl
//TEST:SIMPLE(filecheck=SPIRV):-target spirv-assembly -entry main -stage intersection -emit-spirv-via-glsl
//TEST:SIMPLE(filecheck=SPIRV):-target spirv -entry main -stage intersection
// Motion rays not supported on HLSL impl currently, so disable with NOMOTION define:
//TEST:SIMPLE(filecheck=DXIL):-target dxil-assembly -entry main -stage intersection -profile sm_6_5 -DNOMOTION

// SPIRV-NOT: OpCapability RayQueryKHR
// SPIRV-DAG: OpCapability RayTracingKHR
// SPIRV-DAG: OpExtension "SPV_KHR_ray_tracing"

// SPIRV: OpEntryPoint

// SPIRV: OpLoad %v3uint %gl_LaunchIDEXT
// SPIRV: OpLoad %v3uint %gl_LaunchSizeEXT

// SPIRV: OpLoad %v3float %gl_WorldRayOriginEXT
// SPIRV: OpLoad %v3float %gl_WorldRayDirectionEXT
// SPIRV: OpLoad %float %gl_RayTminEXT
// SPIRV: OpLoad %float %gl_RayTmaxEXT
// SPIRV: OpLoad %uint %gl_IncomingRayFlagsEXT

// SPIRV: OpLoad %int %gl_InstanceID
// SPIRV: OpLoad %int %gl_InstanceCustomIndexEXT
// SPIRV: OpLoad %int %gl_GeometryIndexEXT
// SPIRV: OpLoad %int %gl_PrimitiveID
// SPIRV: OpLoad %v3float %gl_ObjectRayOriginEXT
// SPIRV: OpLoad %v3float %gl_ObjectRayDirectionEXT
// SPIRV: OpLoad %mat4v3float %gl_ObjectToWorldEXT
// SPIRV: OpLoad %mat4v3float %gl_ObjectToWorldEXT
// SPIRV: OpLoad %mat4v3float %gl_WorldToObjectEXT
// SPIRV: OpLoad %mat4v3float %gl_WorldToObjectEXT

// SPIRV: OpLoad %float %gl_RayTminEXT
// SPIRV: OpLoad %float %gl_RayTmaxEXT
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn WorldRayOriginNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn WorldRayDirectionNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn LaunchIdNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn LaunchSizeNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn RayTminNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn RayTmaxNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn IncomingRayFlagsNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn InstanceId
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn InstanceCustomIndexNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn RayGeometryIndexKHR
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn PrimitiveId
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn ObjectRayOriginNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn ObjectRayDirectionNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn ObjectToWorldNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn WorldToObjectNV

// SPIRV-DAG: OpTypePointer HitAttributeNV
// SPIRV-DAG: OpVariable %{{.*}} HitAttributeNV

// SPIRV: OpReportIntersectionKHR

// DXIL: main
Expand Down
27 changes: 17 additions & 10 deletions tests/hlsl-intrinsic/ray-tracing/rt-pipeline-intrinsics-miss.slang
Original file line number Diff line number Diff line change
@@ -1,21 +1,28 @@
//TEST:SIMPLE(filecheck=SPIRV):-target spirv-assembly -emit-spirv-via-glsl -entry main -stage miss -profile glsl_460+GL_EXT_ray_tracing -emit-spirv-via-glsl
//TEST:SIMPLE(filecheck=SPIRV):-target spirv-assembly -entry main -stage miss -emit-spirv-via-glsl
//TEST:SIMPLE(filecheck=SPIRV):-target spirv -entry main -stage miss
// Motion rays not supported on HLSL impl currently, so disable with NOMOTION define:
//TEST:SIMPLE(filecheck=DXIL):-target dxil-assembly -entry main -stage miss -profile sm_6_5 -DNOMOTION

// SPIRV-NOT: OpCapability RayQueryKHR
// SPIRV-DAG: OpCapability RayTracingKHR
// SPIRV-DAG: OpCapability RayTracingMotionBlurNV
// SPIRV-DAG: SPV_KHR_ray_tracing
// SPIRV-DAG: SPV_NV_ray_tracing_motion_blur

// SPIRV: OpEntryPoint

// SPIRV: OpLoad %v3uint %gl_LaunchIDEXT
// SPIRV: OpLoad %v3uint %gl_LaunchSizeEXT
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn LaunchIdNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn LaunchSizeNV
// SPIRV-DAG: OpDecorate %{{.*}} Binding 0
// SPIRV-DAG: OpDecorate %{{.*}} DescriptorSet 0
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn WorldRayOriginNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn WorldRayDirectionNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn RayTminNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn RayTmaxNV
// SPIRV-DAG: OpDecorate %{{.*}} BuiltIn IncomingRayFlagsNV

// SPIRV: OpTraceRayKHR
// SPIRV: OpTraceRayMotionNV

// SPIRV: OpLoad %v3float %gl_WorldRayOriginEXT
// SPIRV: OpLoad %v3float %gl_WorldRayDirectionEXT
// SPIRV: OpLoad %float %gl_RayTminEXT
// SPIRV: OpLoad %float %gl_RayTmaxEXT
// SPIRV: OpLoad %uint %gl_IncomingRayFlagsEXT

// SPIRV: OpExecuteCallableKHR

// DXIL: main
Expand Down
Loading

0 comments on commit fdef653

Please sign in to comment.