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

Method run

tutorials/verify/verify.cpp:2215–2272  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2213 }
2214
2215 VerifyApplication::TestReturnValue run(VerifyApplication* state, bool silent)
2216 {
2217 std::string cfg = state->rtcore + ",isa="+stringOfISA(isa);
2218 RTCDeviceRef device = rtcNewDevice(cfg.c_str());
2219 errorHandler(nullptr,rtcGetDeviceError(device));
2220
2221 size_t M = num_interpolation_vertices*N+16; // pads the arrays with some valid data
2222
2223 RTCGeometry geom = rtcNewGeometry(device, RTC_GEOMETRY_TYPE_TRIANGLE);
2224 AssertNoError(device);
2225 rtcSetGeometryVertexAttributeCount(geom,2);
2226
2227 rtcSetSharedGeometryBuffer(geom, RTC_BUFFER_TYPE_INDEX, 0, RTC_FORMAT_UINT3, interpolation_triangle_indices, 0, 3*sizeof(unsigned int), num_interpolation_triangle_faces*3);
2228 AssertNoError(device);
2229
2230 std::vector<float> vertices0(M);
2231 for (size_t i=0; i<M; i++) vertices0[i] = random_float();
2232 rtcSetSharedGeometryBuffer(geom, RTC_BUFFER_TYPE_VERTEX, 0, RTC_FORMAT_FLOAT3, vertices0.data(), 0, N*sizeof(float), num_interpolation_vertices);
2233 AssertNoError(device);
2234
2235 /*std::vector<float> vertices1(M);
2236 for (size_t i=0; i<M; i++) vertices1[i] = random_float();
2237 rtcSetSharedGeometryBuffer(geom, RTC_BUFFER_TYPE_VERTEX, 1, RTC_FORMAT_FLOAT3, vertices1.data(), 0, N*sizeof(float), num_interpolation_vertices);
2238 AssertNoError(device);*/
2239
2240 std::vector<float> user_vertices0(M);
2241 for (size_t i=0; i<M; i++) user_vertices0[i] = random_float();
2242 rtcSetSharedGeometryBuffer(geom, RTC_BUFFER_TYPE_VERTEX_ATTRIBUTE, 0, RTCFormat(RTC_FORMAT_FLOAT+N), user_vertices0.data(), 0, N*sizeof(float), num_interpolation_vertices);
2243 AssertNoError(device);
2244
2245 std::vector<float> user_vertices1(M);
2246 for (size_t i=0; i<M; i++) user_vertices1[i] = random_float();
2247 rtcSetSharedGeometryBuffer(geom, RTC_BUFFER_TYPE_VERTEX_ATTRIBUTE, 1, RTCFormat(RTC_FORMAT_FLOAT+N), user_vertices1.data(), 0, N*sizeof(float), num_interpolation_vertices);
2248 AssertNoError(device);
2249
2250 rtcDisableGeometry(geom);
2251 AssertNoError(device);
2252 rtcCommitGeometry(geom);
2253 AssertNoError(device);
2254
2255 bool passed = true;
2256 if (N >= 3) {
2257 passed &= checkTriangleInterpolation(geom,RTC_BUFFER_TYPE_VERTEX,0,vertices0.data(),3,N);
2258 //passed &= checkTriangleInterpolation(geom,RTC_BUFFER_TYPE_VERTEX,1,vertices1.data(),3,N);
2259 }
2260 passed &= checkTriangleInterpolation(geom,RTC_BUFFER_TYPE_VERTEX_ATTRIBUTE,0,user_vertices0.data(),N,N);
2261 passed &= checkTriangleInterpolation(geom,RTC_BUFFER_TYPE_VERTEX_ATTRIBUTE,1,user_vertices1.data(),N,N);
2262
2263 passed &= checkTriangleInterpolation(geom,RTC_BUFFER_TYPE_VERTEX,0,vertices0.data(),1,N);
2264 //passed &= checkTriangleInterpolation(geom,RTC_BUFFER_TYPE_VERTEX,1,vertices1.data(),1,N);
2265 passed &= checkTriangleInterpolation(geom,RTC_BUFFER_TYPE_VERTEX_ATTRIBUTE,0,user_vertices0.data(),1,N);
2266 passed &= checkTriangleInterpolation(geom,RTC_BUFFER_TYPE_VERTEX_ATTRIBUTE,1,user_vertices1.data(),1,N);
2267
2268 rtcReleaseGeometry(geom);
2269 AssertNoError(device);
2270
2271 return (VerifyApplication::TestReturnValue) passed;
2272 }

Callers

nothing calls this directly

Calls 13

stringOfISAFunction · 0.85
rtcNewDeviceFunction · 0.85
errorHandlerFunction · 0.85
rtcGetDeviceErrorFunction · 0.85
AssertNoErrorFunction · 0.85
rtcDisableGeometryFunction · 0.85
rtcCommitGeometryFunction · 0.85
rtcReleaseGeometryFunction · 0.85
RTCFormatEnum · 0.50
c_strMethod · 0.45

Tested by

no test coverage detected