rayQuery test cases added
diff --git a/Test/rayQuery-committed.Error.rgen b/Test/rayQuery-committed.Error.rgen
new file mode 100644
index 0000000..7d444dd
--- /dev/null
+++ b/Test/rayQuery-committed.Error.rgen
@@ -0,0 +1,105 @@
+#version 460
+#extension GL_NV_ray_tracing : enable
+#extension GL_EXT_ray_query : enable
+
+struct Ray
+{
+ vec3 pos;
+ float tmin;
+ vec3 dir;
+ float tmax;
+};
+
+layout(std430, set = 0, binding = 0) buffer Log
+{
+ uint x;
+ uint y;
+};
+
+layout(binding = 1, set = 0) uniform accelerationStructureNV rtas;
+layout(std430, set = 0, binding = 2) buffer Rays { Ray rays[]; };
+
+void doSomething()
+{
+ x = 0;
+ y = 0;
+}
+
+uint launchIndex()
+{
+ return gl_LaunchIDNV.z*gl_LaunchSizeNV.x*gl_LaunchSizeNV.y + gl_LaunchIDNV.y*gl_LaunchSizeNV.x + gl_LaunchIDNV.x;
+}
+
+void main()
+{
+ uint index = launchIndex();
+ Ray ray = rays[index];
+ rayQueryEXT rayQuery;
+
+ bool committed_true = true;
+ bool committed_false = false;
+
+ rayQueryInitializeEXT(rayQuery, rtas, 1, 2, ray.pos, ray.tmin, ray.dir, ray.tmax);
+ while (rayQueryProceedEXT(rayQuery))
+ {
+ mat4x3 mat_o2w;
+ mat4x3 mat_w2o;
+
+ uint candidateType = rayQueryGetIntersectionTypeEXT(rayQuery, committed_false);
+ if (candidateType == gl_RayQueryCandidateIntersectionTriangleEXT)
+ {
+ rayQueryTerminateEXT(rayQuery);
+
+ mat_o2w = rayQueryGetIntersectionObjectToWorldEXT(rayQuery, committed_false);
+ mat_w2o = rayQueryGetIntersectionWorldToObjectEXT(rayQuery, committed_false);
+
+ rayQueryConfirmIntersectionEXT(rayQuery);
+
+ if (rayQueryGetIntersectionFrontFaceEXT(rayQuery, committed_true))
+ {
+ doSomething();
+ }
+ if (rayQueryGetIntersectionBarycentricsEXT(rayQuery, committed_true).x == 0)
+ {
+ doSomething();
+ }
+ if (rayQueryGetIntersectionInstanceCustomIndexEXT(rayQuery, committed_true) > 0)
+ {
+ doSomething();
+ }
+ if (rayQueryGetIntersectionInstanceIdEXT(rayQuery, committed_true) > 0)
+ {
+ doSomething();
+ }
+ if (rayQueryGetIntersectionObjectRayDirectionEXT(rayQuery, committed_true).x > 0)
+ {
+ doSomething();
+ }
+ if (rayQueryGetIntersectionObjectRayOriginEXT(rayQuery, committed_true).x > 0)
+ {
+ doSomething();
+ }
+ if (rayQueryGetIntersectionPrimitiveIndexEXT(rayQuery, committed_true) > 0)
+ {
+ doSomething();
+ }
+ if (rayQueryGetIntersectionTEXT(rayQuery, committed_true) > 0.f)
+ {
+ doSomething();
+ }
+ if (rayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetEXT(rayQuery, committed_true) > 0)
+ {
+ doSomething();
+ }
+ }
+ }
+
+ uint committedStatus = rayQueryGetIntersectionTypeEXT(rayQuery, committed_true);
+ if (committedStatus == gl_RayQueryCommittedIntersectionGeneratedEXT)
+ {
+ if (rayQueryGetIntersectionGeometryIndexEXT(rayQuery, committed_true) > 0)
+ {
+ doSomething();
+ }
+ }
+}