| 285 | } |
| 286 | |
| 287 | void runAutoTest(const char *ref_file, char *exec_path) |
| 288 | { |
| 289 | size_t windowBytes = windowSize.x * windowSize.y * sizeof(GLubyte) * 4; |
| 290 | |
| 291 | checkCudaErrors(cudaMalloc((void **)&d_output, windowBytes)); |
| 292 | |
| 293 | // render the volumeData |
| 294 | renderAtlasImage(windowGridSize, windowBlockSize, d_output, windowSize.x, windowSize.y, lod); |
| 295 | |
| 296 | checkCudaErrors(cudaDeviceSynchronize()); |
| 297 | getLastCudaError("render_kernel failed"); |
| 298 | |
| 299 | void *h_output = malloc(windowBytes); |
| 300 | checkCudaErrors(cudaMemcpy(h_output, d_output, windowBytes, cudaMemcpyDeviceToHost)); |
| 301 | sdkDumpBin(h_output, (unsigned int)windowBytes, "bindlessTexture.bin"); |
| 302 | |
| 303 | bool bTestResult = sdkCompareBin2BinFloat("bindlessTexture.bin", |
| 304 | sdkFindFilePath(ref_file, exec_path), |
| 305 | windowSize.x * windowSize.y, |
| 306 | MAX_EPSILON_ERROR, |
| 307 | THRESHOLD, |
| 308 | exec_path); |
| 309 | |
| 310 | checkCudaErrors(cudaFree(d_output)); |
| 311 | free(h_output); |
| 312 | deinitAtlasAndImages(); |
| 313 | |
| 314 | sdkStopTimer(&timer); |
| 315 | sdkDeleteTimer(&timer); |
| 316 | |
| 317 | exit(bTestResult ? EXIT_SUCCESS : EXIT_FAILURE); |
| 318 | } |
| 319 | |
| 320 | void loadImageData(const char *exe_path) |
| 321 | { |
no test coverage detected