| 3890 | : VerifyApplication::IntersectTest(name,isa,imode,ivariant,VerifyApplication::TEST_SHOULD_PASS), sflags(sflags), quality(quality) {} |
| 3891 | |
| 3892 | VerifyApplication::TestReturnValue run(VerifyApplication* state, bool silent) |
| 3893 | { |
| 3894 | std::string cfg = state->rtcore + ",isa="+stringOfISA(isa); |
| 3895 | RTCDeviceRef device = rtcNewDevice(cfg.c_str()); |
| 3896 | errorHandler(nullptr,rtcGetDeviceError(device)); |
| 3897 | |
| 3898 | const size_t numRays = 1000; |
| 3899 | RTCRayHit rays[numRays]; |
| 3900 | VerifyScene scene(device,sflags); |
| 3901 | scene.addSphere(sampler,quality,zero,2.0f,100); |
| 3902 | scene.addHair (sampler,quality,zero,1.0f,1.0f,100); |
| 3903 | rtcCommitScene (scene); |
| 3904 | AssertNoError(device); |
| 3905 | |
| 3906 | bool ok = false; |
| 3907 | for (size_t i=0; i<10 && !ok; i++) |
| 3908 | { |
| 3909 | double c0 = getSeconds(); |
| 3910 | for (size_t i=0; i<numRays; i++) { |
| 3911 | Vec3fa org = 2.0f*random_Vec3fa() - Vec3fa(1.0f); |
| 3912 | Vec3fa dir = 2.0f*random_Vec3fa() - Vec3fa(1.0f); |
| 3913 | rays[i] = makeRay(org,dir); |
| 3914 | } |
| 3915 | IntersectWithMode(imode,ivariant,scene,rays,numRays); |
| 3916 | |
| 3917 | double c1 = getSeconds(); |
| 3918 | for (size_t i=0; i<numRays; i++) { |
| 3919 | Vec3fa org = 2.0f*random_Vec3fa() - Vec3fa(1.0f); |
| 3920 | Vec3fa dir = 2.0f*random_Vec3fa() - Vec3fa(1.0f); |
| 3921 | rays[i] = makeRay(org+Vec3fa(inf),dir); |
| 3922 | } |
| 3923 | IntersectWithMode(imode,ivariant,scene,rays,numRays); |
| 3924 | |
| 3925 | double c2 = getSeconds(); |
| 3926 | for (size_t i=0; i<numRays; i++) { |
| 3927 | Vec3fa org = 2.0f*random_Vec3fa() - Vec3fa(1.0f); |
| 3928 | Vec3fa dir = 2.0f*random_Vec3fa() - Vec3fa(1.0f); |
| 3929 | rays[i] = makeRay(org,dir+Vec3fa(inf)); |
| 3930 | } |
| 3931 | IntersectWithMode(imode,ivariant,scene,rays,numRays); |
| 3932 | |
| 3933 | double c3 = getSeconds(); |
| 3934 | for (size_t i=0; i<numRays; i++) { |
| 3935 | Vec3fa org = 2.0f*random_Vec3fa() - Vec3fa(1.0f); |
| 3936 | Vec3fa dir = 2.0f*random_Vec3fa() - Vec3fa(1.0f); |
| 3937 | rays[i] = makeRay(org+Vec3fa(inf),dir+Vec3fa(inf)); |
| 3938 | } |
| 3939 | IntersectWithMode(imode,ivariant,scene,rays,numRays); |
| 3940 | |
| 3941 | double c4 = getSeconds(); |
| 3942 | for (size_t i=0; i<numRays; i++) { |
| 3943 | Vec3fa org = 2.0f*random_Vec3fa() - Vec3fa(1.0f); |
| 3944 | Vec3fa dir = 2.0f*random_Vec3fa() - Vec3fa(1.0f); |
| 3945 | rays[i] = makeRay(org,dir,-0.0f,inf); |
| 3946 | } |
| 3947 | IntersectWithMode(imode,ivariant,scene,rays,numRays); |
| 3948 | |
| 3949 | double c5 = getSeconds(); |
nothing calls this directly
no test coverage detected