MCPcopy Create free account
hub / github.com/RenderKit/embree / run

Method run

tutorials/verify/verify.cpp:3821–3881  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3819 : VerifyApplication::IntersectTest(name,isa,imode,ivariant,VerifyApplication::TEST_SHOULD_PASS), sflags(sflags), quality(quality) {}
3820
3821 VerifyApplication::TestReturnValue run(VerifyApplication* state, bool silent)
3822 {
3823 std::string cfg = state->rtcore + ",isa="+stringOfISA(isa);
3824 RTCDeviceRef device = rtcNewDevice(cfg.c_str());
3825 errorHandler(nullptr,rtcGetDeviceError(device));
3826
3827 bool ok = false;
3828 for (size_t i=0; i<10 && !ok; i++)
3829 {
3830 const size_t numRays = 1000;
3831 RTCRayHit rays[numRays];
3832 VerifyScene scene(device,sflags);
3833 scene.addSphere(sampler,quality,zero,2.0f,100);
3834 scene.addHair (sampler,quality,zero,1.0f,1.0f,100);
3835 rtcCommitScene (scene);
3836
3837 double c0 = getSeconds();
3838 for (size_t i=0; i<numRays; i++) {
3839 Vec3fa org = 2.0f*random_Vec3fa() - Vec3fa(1.0f);
3840 Vec3fa dir = 2.0f*random_Vec3fa() - Vec3fa(1.0f);
3841 rays[i] = makeRay(org,dir);
3842 }
3843 IntersectWithMode(imode,ivariant,scene,rays,numRays);
3844
3845 double c1 = getSeconds();
3846 for (size_t i=0; i<numRays; i++) {
3847 Vec3fa org = 2.0f*random_Vec3fa() - Vec3fa(1.0f);
3848 Vec3fa dir = 2.0f*random_Vec3fa() - Vec3fa(1.0f);
3849 rays[i] = makeRay(org+Vec3fa(nan),dir);
3850 }
3851 IntersectWithMode(imode,ivariant,scene,rays,numRays);
3852
3853 double c2 = getSeconds();
3854 for (size_t i=0; i<numRays; i++) {
3855 Vec3fa org = 2.0f*random_Vec3fa() - Vec3fa(1.0f);
3856 Vec3fa dir = 2.0f*random_Vec3fa() - Vec3fa(1.0f);
3857 rays[i] = makeRay(org+Vec3fa(nan),dir+Vec3fa(nan));
3858 }
3859 IntersectWithMode(imode,ivariant,scene,rays,numRays);
3860
3861 double c3 = getSeconds();
3862 for (size_t i=0; i<numRays; i++) {
3863 Vec3fa org = 2.0f*random_Vec3fa() - Vec3fa(1.0f);
3864 Vec3fa dir = 2.0f*random_Vec3fa() - Vec3fa(1.0f);
3865 rays[i] = makeRay(org,dir,nan,nan);
3866 }
3867 IntersectWithMode(imode,ivariant,scene,rays,numRays);
3868
3869 double c4 = getSeconds();
3870 double d1 = c1-c0;
3871 double d2 = c2-c1;
3872 double d3 = c3-c2;
3873 double d4 = c4-c3;
3874 AssertNoError(device);
3875
3876 ok = (d2 < 2.5*d1) && (d3 < 2.5*d1) && (d4 < 2.5*d1);
3877 double f = max(d2/d1,d3/d1,d4/d1);
3878 if (!silent) { printf(" (%3.2fx)",f); fflush(stdout); }

Callers

nothing calls this directly

Calls 14

stringOfISAFunction · 0.85
rtcNewDeviceFunction · 0.85
errorHandlerFunction · 0.85
rtcGetDeviceErrorFunction · 0.85
rtcCommitSceneFunction · 0.85
getSecondsFunction · 0.85
makeRayFunction · 0.85
IntersectWithModeFunction · 0.85
AssertNoErrorFunction · 0.85
addSphereMethod · 0.80
addHairMethod · 0.80
Vec3faClass · 0.50

Tested by

no test coverage detected