[SPIR-V] Enable rayquery tests (#6627)
These tests were previously marked as "unsupported" because they were misconfigured at the time they were added and never run. Minor changes have been made to make them passing tests. Note that rayquery_assign.cs.hlsl has been removed because it no longer produces an error. A similar non-erroring check exists in rayquery_init_expr.hlsl Related to #6616
This commit is contained in:
Родитель
83ba82e1f3
Коммит
d64f5f2699
|
@ -1,4 +1,5 @@
|
|||
// RUN: %dxc -T cs_6_5 -E main -fspv-target-env=vulkan1.2
|
||||
// RUN: %dxc -T cs_6_5 -E main -fspv-target-env=vulkan1.2 -spirv %s | FileCheck %s
|
||||
|
||||
RaytracingAccelerationStructure g_topLevel : register(t0, space0);
|
||||
RWTexture2D<float4> g_output : register(u1, space0);
|
||||
|
||||
|
@ -17,11 +18,11 @@ void main(uint2 launchIndex: SV_DispatchThreadID)
|
|||
RayQuery<RAY_FLAG_FORCE_OPAQUE> q;
|
||||
|
||||
q.TraceRayInline(g_topLevel, 0, 0xff, ray);
|
||||
// CHECK: [[rayquery:%\d+]] = OpVariable %_ptr_Function_rayQueryKHR Function
|
||||
// CHECK: [[rayquery:%[0-9]+]] = OpVariable %_ptr_Function_rayQueryKHR Function
|
||||
q.Proceed();
|
||||
// CHECK: OpRayQueryProceedKHR %bool [[rayquery]]
|
||||
if(q.CommittedStatus() == COMMITTED_TRIANGLE_HIT)
|
||||
// CHECK: [[status:%\d+]] = OpRayQueryGetIntersectionTypeKHR %uint [[rayquery]] %uint_1
|
||||
// CHECK: [[status:%[0-9]+]] = OpRayQueryGetIntersectionTypeKHR %uint [[rayquery]] %uint_1
|
||||
// CHECK: OpIEqual %bool [[status]] %uint_1
|
||||
{
|
||||
T += float3(1, 0, 1);
|
|
@ -1,4 +1,5 @@
|
|||
// RUN: %dxc -T ds_6_5 -E main -fspv-target-env=vulkan1.2
|
||||
// RUN: %dxc -T ds_6_5 -E main -fspv-target-env=vulkan1.2 -spirv %s | FileCheck %s
|
||||
|
||||
// CHECK: OpCapability RayQueryKHR
|
||||
// CHECK: OpExtension "SPV_KHR_ray_query"
|
||||
|
||||
|
@ -52,11 +53,12 @@ void doInitialize(RayQuery<RAY_FLAG_FORCE_OPAQUE> query, RayDesc ray)
|
|||
|
||||
RayQuery<RAY_FLAG_FORCE_OPAQUE> q;
|
||||
RayDesc ray = MakeRayDesc();
|
||||
// CHECK: [[accel:%\d+]] = OpLoad %accelerationStructureNV %AccelerationStructure
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_1 %uint_255 {{%\d+}} %float_0 {{%\d+}} %float_9999
|
||||
// CHECK: [[rayquery:%[0-9]+]] = OpVariable %_ptr_Function_rayQueryKHR Function
|
||||
// CHECK: [[accel:%[0-9]+]] = OpLoad %accelerationStructureNV %AccelerationStructure
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_1 %uint_255 {{%[0-9]+}} %float_0 {{%[0-9]+}} %float_9999
|
||||
|
||||
q.TraceRayInline(AccelerationStructure,RAY_FLAG_FORCE_OPAQUE, 0xFF, ray);
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_3 %uint_255 {{%\d+}} %float_0 {{%\d+}} %float_9999
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_3 %uint_255 {{%[0-9]+}} %float_0 {{%[0-9]+}} %float_9999
|
||||
doInitialize(q, ray);
|
||||
|
||||
return v;
|
|
@ -1,4 +1,5 @@
|
|||
// RUN: %dxc -T gs_6_5 -E main -fspv-target-env=vulkan1.2
|
||||
// RUN: %dxc -T gs_6_5 -E main -fspv-target-env=vulkan1.2 -spirv %s | FileCheck %s
|
||||
|
||||
// CHECK: OpCapability RayQueryKHR
|
||||
// CHECK: OpExtension "SPV_KHR_ray_query
|
||||
|
||||
|
@ -29,11 +30,12 @@ void main(line Empty e[4], inout PointStream<Out> OutputStream0)
|
|||
{
|
||||
RayQuery<RAY_FLAG_FORCE_OPAQUE> q;
|
||||
RayDesc ray = MakeRayDesc();
|
||||
// CHECK: [[accel:%\d+]] = OpLoad %accelerationStructureNV %AccelerationStructure
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_1 %uint_255 {{%\d+}} %float_0 {{%\d+}} %float_9999
|
||||
// CHECK: [[rayquery:%[0-9]+]] = OpVariable %_ptr_Function_rayQueryKHR Function
|
||||
// CHECK: [[accel:%[0-9]+]] = OpLoad %accelerationStructureNV %AccelerationStructure
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_1 %uint_255 {{%[0-9]+}} %float_0 {{%[0-9]+}} %float_9999
|
||||
|
||||
q.TraceRayInline(AccelerationStructure,RAY_FLAG_FORCE_OPAQUE, 0xFF, ray);
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_3 %uint_255 {{%\d+}} %float_0 {{%\d+}} %float_9999
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_3 %uint_255 {{%[0-9]+}} %float_0 {{%[0-9]+}} %float_9999
|
||||
doInitialize(q, ray);
|
||||
|
||||
Out output = (Out)0;
|
|
@ -1,6 +1,6 @@
|
|||
// RUN: %dxc -T hs_6_5 -E main -fspv-target-env=vulkan1.2
|
||||
// RUN: %dxc -T hs_6_5 -E main -fspv-target-env=vulkan1.2 -spirv %s | FileCheck %s
|
||||
|
||||
// CHECK: OpCapability RayQueryKHR
|
||||
// CHECK: OpCapability RayTraversalPrimitiveCullingKHR
|
||||
// CHECK: OpExtension "SPV_KHR_ray_query"
|
||||
|
||||
#define MAX_POINTS 3
|
||||
|
@ -56,19 +56,20 @@ void doInitialize(RayQuery<RAY_FLAG_FORCE_OPAQUE|RAY_FLAG_SKIP_TRIANGLES> query,
|
|||
query.TraceRayInline(AccelerationStructure,RAY_FLAG_FORCE_NON_OPAQUE,0xFF,ray);
|
||||
}
|
||||
|
||||
[outputtopology("triangle_ccw")]
|
||||
[outputcontrolpoints(MAX_POINTS)]
|
||||
[patchconstantfunc("mainConstant")]
|
||||
CONTROL_POINT main(InputPatch<VS_CONTROL_POINT_OUTPUT, MAX_POINTS> ip, uint cpid : SV_OutputControlPointID) {
|
||||
// CHECK: %rayQueryKHR = OpTypeRayQueryKHR
|
||||
// CHECK: %_ptr_Function_rayQueryKHR = OpTypePointer Function %rayQueryKHR
|
||||
// CHECK: [[rayquery:%\d+]] = OpVariable %_ptr_Function_rayQueryKHR Function
|
||||
// CHECK: [[rayquery:%[0-9]+]] = OpVariable %_ptr_Function_rayQueryKHR Function
|
||||
RayQuery<RAY_FLAG_FORCE_OPAQUE|RAY_FLAG_SKIP_TRIANGLES> q;
|
||||
RayDesc ray = MakeRayDesc();
|
||||
// CHECK: [[accel:%\d+]] = OpLoad %accelerationStructureNV %AccelerationStructure
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_517 %uint_255 {{%\d+}} %float_0 {{%\d+}} %float_9999
|
||||
// CHECK: [[accel:%[0-9]+]] = OpLoad %accelerationStructureNV %AccelerationStructure
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_257 %uint_255 {{%[0-9]+}} %float_0 {{%[0-9]+}} %float_9999
|
||||
|
||||
q.TraceRayInline(AccelerationStructure,RAY_FLAG_FORCE_OPAQUE, 0xFF, ray);
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_259 %uint_255 {{%\d+}} %float_0 {{%\d+}} %float_9999
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_259 %uint_255 {{%[0-9]+}} %float_0 {{%[0-9]+}} %float_9999
|
||||
doInitialize(q, ray);
|
||||
CONTROL_POINT result;
|
||||
return result;
|
|
@ -1,6 +1,5 @@
|
|||
// RUN: %dxc -E main -T ps_6_5 -fspv-target-env=vulkan1.2
|
||||
// RUN: %dxc -E main -T ps_6_5 -fspv-target-env=vulkan1.2 -spirv %s | FileCheck %s
|
||||
|
||||
// RUN: %dxc -T gs_6_5 -E main
|
||||
// CHECK: OpCapability RayQueryKHR
|
||||
// CHECK: OpExtension "SPV_KHR_ray_query
|
||||
|
||||
|
@ -23,11 +22,12 @@ uint4 main() : SV_Target
|
|||
{
|
||||
RayQuery<RAY_FLAG_FORCE_OPAQUE> q;
|
||||
RayDesc ray = MakeRayDesc();
|
||||
// CHECK: [[accel:%\d+]] = OpLoad %accelerationStructureNV %AccelerationStructure
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_1 %uint_255 {{%\d+}} %float_0 {{%\d+}} %float_9999
|
||||
// CHECK: [[rayquery:%[0-9]+]] = OpVariable %_ptr_Function_rayQueryKHR Function
|
||||
// CHECK: [[accel:%[0-9]+]] = OpLoad %accelerationStructureNV %AccelerationStructure
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_1 %uint_255 {{%[0-9]+}} %float_0 {{%[0-9]+}} %float_9999
|
||||
|
||||
q.TraceRayInline(AccelerationStructure,RAY_FLAG_FORCE_OPAQUE, 0xFF, ray);
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_3 %uint_255 {{%\d+}} %float_0 {{%\d+}} %float_9999
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_3 %uint_255 {{%[0-9]+}} %float_0 {{%[0-9]+}} %float_9999
|
||||
doInitialize(q, ray);
|
||||
return float4(1.0, 0.0, 0.0, 1.0);
|
||||
}
|
|
@ -1,8 +1,9 @@
|
|||
// RUN: %dxc -T lib_6_3 -fspv-target-env=vulkan1.2
|
||||
// CHECK: OpCapability RayTracingKHR
|
||||
// RUN: %dxc -T lib_6_3 -fspv-target-env=vulkan1.2 -spirv %s | FileCheck %s
|
||||
|
||||
// CHECK: OpCapability RayQueryKHR
|
||||
// CHECK: OpExtension "SPV_KHR_ray_tracing"
|
||||
// CHECK: OpCapability RayTracingKHR
|
||||
// CHECK: OpExtension "SPV_KHR_ray_query"
|
||||
// CHECK: OpExtension "SPV_KHR_ray_tracing"
|
||||
|
||||
RaytracingAccelerationStructure AccelerationStructure : register(t0);
|
||||
RayDesc MakeRayDesc()
|
||||
|
@ -23,7 +24,7 @@ struct Payload
|
|||
{
|
||||
float4 color;
|
||||
};
|
||||
// CHECK: OpTypePointer HitAttributeNV %Attribute
|
||||
|
||||
struct Attribute
|
||||
{
|
||||
float2 bary;
|
||||
|
@ -34,9 +35,10 @@ void main(inout Payload MyPayload, in Attribute MyAttr) {
|
|||
Payload myPayload = { float4(0.0f,0.0f,0.0f,0.0f) };
|
||||
RayQuery<RAY_FLAG_FORCE_OPAQUE> q;
|
||||
RayDesc ray = MakeRayDesc();
|
||||
// CHECK: [[accel:%\d+]] = OpLoad %accelerationStructureNV %AccelerationStructure
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_1 %uint_255 {{%\d+}} %float_0 {{%\d+}} %float_9999
|
||||
// CHECK: [[rayquery:%[0-9]+]] = OpVariable %_ptr_Function_rayQueryKHR Function
|
||||
// CHECK: [[accel:%[0-9]+]] = OpLoad %accelerationStructureNV %AccelerationStructure
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_1 %uint_255 {{%[0-9]+}} %float_0 {{%[0-9]+}} %float_9999
|
||||
q.TraceRayInline(AccelerationStructure,RAY_FLAG_FORCE_OPAQUE, 0xFF, ray);
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_3 %uint_255 {{%\d+}} %float_0 {{%\d+}} %float_9999
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_3 %uint_255 {{%[0-9]+}} %float_0 {{%[0-9]+}} %float_9999
|
||||
doInitialize(q, ray);
|
||||
}
|
|
@ -1,8 +1,9 @@
|
|||
// RUN: %dxc -T lib_6_3 -fspv-target-env=vulkan1.2
|
||||
// CHECK: OpCapability RayTracingKHR
|
||||
// RUN: %dxc -T lib_6_3 -fspv-target-env=vulkan1.2 -spirv %s | FileCheck %s
|
||||
|
||||
// CHECK: OpCapability RayQueryKHR
|
||||
// CHECK: OpExtension "SPV_KHR_ray_tracing"
|
||||
// CHECK: OpCapability RayTracingKHR
|
||||
// CHECK: OpExtension "SPV_KHR_ray_query"
|
||||
// CHECK: OpExtension "SPV_KHR_ray_tracing"
|
||||
|
||||
RaytracingAccelerationStructure AccelerationStructure : register(t0);
|
||||
RayDesc MakeRayDesc()
|
||||
|
@ -27,11 +28,12 @@ struct Payload
|
|||
[shader("miss")]
|
||||
void main(inout Payload MyPayload) {
|
||||
Payload myPayload = { float4(0.0f,0.0f,0.0f,0.0f) };
|
||||
// CHECK: [[rayquery:%[0-9]+]] = OpVariable %_ptr_Function_rayQueryKHR Function
|
||||
RayQuery<RAY_FLAG_FORCE_OPAQUE> q;
|
||||
RayDesc ray = MakeRayDesc();
|
||||
// CHECK: [[accel:%\d+]] = OpLoad %accelerationStructureNV %AccelerationStructure
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_1 %uint_255 {{%\d+}} %float_0 {{%\d+}} %float_9999
|
||||
// CHECK: [[accel:%[0-9]+]] = OpLoad %accelerationStructureNV %AccelerationStructure
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_1 %uint_255 {{%[0-9]+}} %float_0 {{%[0-9]+}} %float_9999
|
||||
q.TraceRayInline(AccelerationStructure,RAY_FLAG_FORCE_OPAQUE, 0xFF, ray);
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_3 %uint_255 {{%\d+}} %float_0 {{%\d+}} %float_9999
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_3 %uint_255 {{%[0-9]+}} %float_0 {{%[0-9]+}} %float_9999
|
||||
doInitialize(q, ray);
|
||||
}
|
|
@ -1,8 +1,9 @@
|
|||
// RUN: %dxc -T lib_6_3 -fspv-target-env=vulkan1.2
|
||||
// CHECK: OpCapability RayTracingKHR
|
||||
// RUN: %dxc -T lib_6_3 -fspv-target-env=vulkan1.2 -spirv %s | FileCheck %s
|
||||
|
||||
// CHECK: OpCapability RayQueryKHR
|
||||
// CHECK: OpExtension "SPV_KHR_ray_tracing"
|
||||
// CHECK: OpCapability RayTracingKHR
|
||||
// CHECK: OpExtension "SPV_KHR_ray_query"
|
||||
// CHECK: OpExtension "SPV_KHR_ray_tracing"
|
||||
|
||||
RaytracingAccelerationStructure AccelerationStructure : register(t0);
|
||||
RayDesc MakeRayDesc()
|
||||
|
@ -23,7 +24,7 @@ struct Payload
|
|||
{
|
||||
float4 color;
|
||||
};
|
||||
// CHECK: OpTypePointer HitAttributeNV %Attribute
|
||||
|
||||
struct Attribute
|
||||
{
|
||||
float2 bary;
|
||||
|
@ -32,11 +33,12 @@ struct Attribute
|
|||
[shader("closesthit")]
|
||||
void main(inout Payload MyPayload, in Attribute MyAttr) {
|
||||
Payload myPayload = { float4(0.0f,0.0f,0.0f,0.0f) };
|
||||
// CHECK: [[rayquery:%[0-9]+]] = OpVariable %_ptr_Function_rayQueryKHR Function
|
||||
RayQuery<RAY_FLAG_FORCE_OPAQUE> q;
|
||||
RayDesc ray = MakeRayDesc();
|
||||
// CHECK: [[accel:%\d+]] = OpLoad %accelerationStructureNV %AccelerationStructure
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_1 %uint_255 {{%\d+}} %float_0 {{%\d+}} %float_9999
|
||||
// CHECK: [[accel:%[0-9]+]] = OpLoad %accelerationStructureNV %AccelerationStructure
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_1 %uint_255 {{%[0-9]+}} %float_0 {{%[0-9]+}} %float_9999
|
||||
q.TraceRayInline(AccelerationStructure,RAY_FLAG_FORCE_OPAQUE, 0xFF, ray);
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_3 %uint_255 {{%\d+}} %float_0 {{%\d+}} %float_9999
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_3 %uint_255 {{%[0-9]+}} %float_0 {{%[0-9]+}} %float_9999
|
||||
doInitialize(q, ray);
|
||||
}
|
|
@ -1,8 +1,9 @@
|
|||
// RUN: %dxc -T lib_6_3 -fspv-target-env=vulkan1.2
|
||||
// CHECK: OpCapability RayTracingKHR
|
||||
// RUN: %dxc -T lib_6_3 -fspv-target-env=vulkan1.2 -spirv %s | FileCheck %s
|
||||
|
||||
// CHECK: OpCapability RayQueryKHR
|
||||
// CHECK: OpExtension "SPV_KHR_ray_tracing"
|
||||
// CHECK: OpCapability RayTracingKHR
|
||||
// CHECK: OpExtension "SPV_KHR_ray_query"
|
||||
// CHECK: OpExtension "SPV_KHR_ray_tracing"
|
||||
|
||||
// CHECK: %accelerationStructureNV = OpTypeAccelerationStructureKHR
|
||||
// CHECK-NOT: OpTypeAccelerationStructureKHR
|
||||
|
@ -33,11 +34,12 @@ void main() {
|
|||
Payload myPayload = { float4(0.0f,0.0f,0.0f,0.0f) };
|
||||
RayQuery<RAY_FLAG_FORCE_OPAQUE> q;
|
||||
RayDesc ray = MakeRayDesc();
|
||||
// CHECK: [[accel:%\d+]] = OpLoad %accelerationStructureNV %AccelerationStructure
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_1 %uint_255 {{%\d+}} %float_0 {{%\d+}} %float_9999
|
||||
// CHECK: [[rayquery:%[0-9]+]] = OpVariable %_ptr_Function_rayQueryKHR Function
|
||||
// CHECK: [[accel:%[0-9]+]] = OpLoad %accelerationStructureNV %AccelerationStructure
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_1 %uint_255 {{%[0-9]+}} %float_0 {{%[0-9]+}} %float_9999
|
||||
q.TraceRayInline(AccelerationStructure,RAY_FLAG_FORCE_OPAQUE, 0xFF, ray);
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_3 %uint_255 {{%\d+}} %float_0 {{%\d+}} %float_9999
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_3 %uint_255 {{%[0-9]+}} %float_0 {{%[0-9]+}} %float_9999
|
||||
doInitialize(q, ray);
|
||||
// CHECK: OpTraceNV {{%\d+}} %uint_0 %uint_255 %uint_0 %uint_1 %uint_0 {{%\d+}} {{%\d+}} {{%\d+}} {{%\d+}} %uint_0
|
||||
// CHECK: OpTraceRayKHR {{%[0-9]+}} %uint_0 %uint_255 %uint_0 %uint_1 %uint_0 {{%[0-9]+}} %float_0 {{%[0-9]+}} %float_9999 %myPayload
|
||||
TraceRay(AccelerationStructure, 0x0, 0xff, 0, 1, 0, ray, myPayload);
|
||||
}
|
|
@ -1,8 +1,9 @@
|
|||
// RUN: %dxc -T lib_6_3 -fspv-target-env=vulkan1.2
|
||||
// CHECK: OpCapability RayTracingKHR
|
||||
// RUN: %dxc -T lib_6_3 -fspv-target-env=vulkan1.2 -spirv %s | FileCheck %s
|
||||
|
||||
// CHECK: OpCapability RayQueryKHR
|
||||
// CHECK: OpExtension "SPV_KHR_ray_tracing"
|
||||
// CHECK: OpCapability RayTracingKHR
|
||||
// CHECK: OpExtension "SPV_KHR_ray_query"
|
||||
// CHECK: OpExtension "SPV_KHR_ray_tracing"
|
||||
|
||||
RaytracingAccelerationStructure AccelerationStructure : register(t0);
|
||||
RayDesc MakeRayDesc()
|
||||
|
@ -24,15 +25,21 @@ struct CallData
|
|||
float4 data;
|
||||
};
|
||||
|
||||
[shader("callable")]
|
||||
struct Attribute
|
||||
{
|
||||
float2 bary;
|
||||
};
|
||||
|
||||
[shader("intersection")]
|
||||
void main() {
|
||||
|
||||
RayQuery<RAY_FLAG_FORCE_OPAQUE> q;
|
||||
RayDesc ray = MakeRayDesc();
|
||||
// CHECK: [[accel:%\d+]] = OpLoad %accelerationStructureNV %AccelerationStructure
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_1 %uint_255 {{%\d+}} %float_0 {{%\d+}} %float_9999
|
||||
// CHECK: [[rayquery:%[0-9]+]] = OpVariable %_ptr_Function_rayQueryKHR Function
|
||||
// CHECK: [[accel:%[0-9]+]] = OpLoad %accelerationStructureNV %AccelerationStructure
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_1 %uint_255 {{%[0-9]+}} %float_0 {{%[0-9]+}} %float_9999
|
||||
q.TraceRayInline(AccelerationStructure,RAY_FLAG_FORCE_OPAQUE, 0xFF, ray);
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_3 %uint_255 {{%\d+}} %float_0 {{%\d+}} %float_9999
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_3 %uint_255 {{%[0-9]+}} %float_0 {{%[0-9]+}} %float_9999
|
||||
doInitialize(q, ray);
|
||||
|
||||
Attribute myHitAttribute = { float2(0.0f,0.0f) };
|
|
@ -1,8 +1,9 @@
|
|||
// RUN: %dxc -T lib_6_3 -fspv-target-env=vulkan1.2
|
||||
// CHECK: OpCapability RayTracingKHR
|
||||
// RUN: %dxc -T lib_6_3 -fspv-target-env=vulkan1.2 -spirv %s | FileCheck %s
|
||||
|
||||
// CHECK: OpCapability RayQueryKHR
|
||||
// CHECK: OpExtension "SPV_KHR_ray_tracing"
|
||||
// CHECK: OpCapability RayTracingKHR
|
||||
// CHECK: OpExtension "SPV_KHR_ray_query"
|
||||
// CHECK: OpExtension "SPV_KHR_ray_tracing"
|
||||
|
||||
RaytracingAccelerationStructure AccelerationStructure : register(t0);
|
||||
RayDesc MakeRayDesc()
|
||||
|
@ -29,9 +30,10 @@ void main(inout Payload MyPayload) {
|
|||
Payload myPayload = { float4(0.0f,0.0f,0.0f,0.0f) };
|
||||
RayQuery<RAY_FLAG_FORCE_OPAQUE> q;
|
||||
RayDesc ray = MakeRayDesc();
|
||||
// CHECK: [[accel:%\d+]] = OpLoad %accelerationStructureNV %AccelerationStructure
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_1 %uint_255 {{%\d+}} %float_0 {{%\d+}} %float_9999
|
||||
// CHECK: [[rayquery:%[0-9]+]] = OpVariable %_ptr_Function_rayQueryKHR Function
|
||||
// CHECK: [[accel:%[0-9]+]] = OpLoad %accelerationStructureNV %AccelerationStructure
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_1 %uint_255 {{%[0-9]+}} %float_0 {{%[0-9]+}} %float_9999
|
||||
q.TraceRayInline(AccelerationStructure,RAY_FLAG_FORCE_OPAQUE, 0xFF, ray);
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_3 %uint_255 {{%\d+}} %float_0 {{%\d+}} %float_9999
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_3 %uint_255 {{%[0-9]+}} %float_0 {{%[0-9]+}} %float_9999
|
||||
doInitialize(q, ray);
|
||||
}
|
|
@ -1,8 +1,7 @@
|
|||
// RUN: %dxc -T vs_6_5 -E main -fspv-target-env=vulkan1.2
|
||||
// CHECK: OpCapability RayQueryKHR
|
||||
// CHECK: OpCapability RayTraversalPrimitiveCullingKHR
|
||||
// CHECK: OpExtension "SPV_KHR_ray_query"
|
||||
// RUN: %dxc -T vs_6_5 -E main -fspv-target-env=vulkan1.2 -spirv %s | FileCheck %s
|
||||
|
||||
// CHECK: OpCapability RayQueryKHR
|
||||
// CHECK: OpExtension "SPV_KHR_ray_query"
|
||||
|
||||
RaytracingAccelerationStructure AccelerationStructure : register(t0);
|
||||
RWByteAddressBuffer log : register(u0);
|
||||
|
@ -33,13 +32,13 @@ void main()
|
|||
{
|
||||
// CHECK: %rayQueryKHR = OpTypeRayQueryKHR
|
||||
// CHECK: %_ptr_Function_rayQueryKHR = OpTypePointer Function %rayQueryKHR
|
||||
// CHECK: [[rayquery:%\d+]] = OpVariable %_ptr_Function_rayQueryKHR Function
|
||||
// CHECK: [[rayquery:%[0-9]+]] = OpVariable %_ptr_Function_rayQueryKHR Function
|
||||
RayQuery<RAY_FLAG_FORCE_OPAQUE|RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH> q;
|
||||
RayDesc ray = MakeRayDesc();
|
||||
// CHECK: [[accel:%\d+]] = OpLoad %accelerationStructureNV %AccelerationStructure
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_517 %uint_255 {{%\d+}} %float_0 {{%\d+}} %float_9999
|
||||
// CHECK: [[accel:%[0-9]+]] = OpLoad %accelerationStructureNV %AccelerationStructure
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_517 %uint_255 {{%[0-9]+}} %float_0 {{%[0-9]+}} %float_9999
|
||||
|
||||
q.TraceRayInline(AccelerationStructure,RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES, 0xFF, ray);
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_5 %uint_255 {{%\d+}} %float_0 {{%\d+}} %float_9999
|
||||
// CHECK: OpRayQueryInitializeKHR [[rayquery]] [[accel]] %uint_5 %uint_255 {{%[0-9]+}} %float_0 {{%[0-9]+}} %float_9999
|
||||
doInitialize(q, ray);
|
||||
}
|
|
@ -1,4 +1,5 @@
|
|||
// RUN: dxc -T cs_6_5 -E CS -fspv-target-env=vulkan1.2
|
||||
// RUN: %dxc -T cs_6_5 -E CS -fspv-target-env=vulkan1.2 -O0 -spirv %s | FileCheck %s
|
||||
|
||||
// CHECK: OpCapability RayQueryKHR
|
||||
// CHECK: OpExtension "SPV_KHR_ray_query"
|
||||
|
||||
|
@ -28,7 +29,7 @@ void CS()
|
|||
q.TraceRayInline(AccelerationStructure,RAY_FLAG_NONE,0xFF,ray);
|
||||
float4x3 mat4x3;
|
||||
float3x4 mat3x4;
|
||||
// CHECK: [[rayquery:%\d+]] = OpVariable %_ptr_Function_rayQueryKHR Function
|
||||
// CHECK: [[rayquery:%[0-9]+]] = OpVariable %_ptr_Function_rayQueryKHR Function
|
||||
// CHECK: OpRayQueryProceedKHR %bool [[rayquery]]
|
||||
while(q.Proceed())
|
||||
{
|
|
@ -1,9 +0,0 @@
|
|||
// RUN: %dxc -T cs_6_5 -E CS -fspv-target-env=vulkan1.2
|
||||
// CHECK: error: store value of type 'RayQuery<RAY_FLAG_FORCE_OPAQUE | RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH>' is unsupported
|
||||
|
||||
[numThreads(1,1,1)]
|
||||
void CS()
|
||||
{
|
||||
RayQuery<RAY_FLAG_FORCE_OPAQUE|RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH> q;
|
||||
RayQuery<RAY_FLAG_FORCE_OPAQUE|RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH> b = q;
|
||||
}
|
Загрузка…
Ссылка в новой задаче