| 433 | } |
| 434 | |
| 435 | ssize_t Device::getProperty(const RTCDeviceProperty prop) |
| 436 | { |
| 437 | size_t iprop = (size_t)prop; |
| 438 | |
| 439 | /* get name of internal regression test */ |
| 440 | if (iprop >= 2000000 && iprop < 3000000) |
| 441 | { |
| 442 | RegressionTest* test = getRegressionTest(iprop-2000000); |
| 443 | if (test) return (ssize_t) test->name.c_str(); |
| 444 | else return 0; |
| 445 | } |
| 446 | |
| 447 | /* run internal regression test */ |
| 448 | if (iprop >= 3000000 && iprop < 4000000) |
| 449 | { |
| 450 | RegressionTest* test = getRegressionTest(iprop-3000000); |
| 451 | if (test) return test->run(); |
| 452 | else return 0; |
| 453 | } |
| 454 | |
| 455 | /* documented properties */ |
| 456 | switch (prop) |
| 457 | { |
| 458 | case RTC_DEVICE_PROPERTY_VERSION_MAJOR: return RTC_VERSION_MAJOR; |
| 459 | case RTC_DEVICE_PROPERTY_VERSION_MINOR: return RTC_VERSION_MINOR; |
| 460 | case RTC_DEVICE_PROPERTY_VERSION_PATCH: return RTC_VERSION_PATCH; |
| 461 | case RTC_DEVICE_PROPERTY_VERSION : return RTC_VERSION; |
| 462 | |
| 463 | #if defined(EMBREE_TARGET_SIMD4) && defined(EMBREE_RAY_PACKETS) |
| 464 | case RTC_DEVICE_PROPERTY_NATIVE_RAY4_SUPPORTED: return hasISA(SSE2); |
| 465 | #else |
| 466 | case RTC_DEVICE_PROPERTY_NATIVE_RAY4_SUPPORTED: return 0; |
| 467 | #endif |
| 468 | |
| 469 | #if defined(EMBREE_TARGET_SIMD8) && defined(EMBREE_RAY_PACKETS) |
| 470 | case RTC_DEVICE_PROPERTY_NATIVE_RAY8_SUPPORTED: return hasISA(AVX); |
| 471 | #else |
| 472 | case RTC_DEVICE_PROPERTY_NATIVE_RAY8_SUPPORTED: return 0; |
| 473 | #endif |
| 474 | |
| 475 | #if defined(EMBREE_TARGET_SIMD16) && defined(EMBREE_RAY_PACKETS) |
| 476 | case RTC_DEVICE_PROPERTY_NATIVE_RAY16_SUPPORTED: return hasISA(AVX512); |
| 477 | #else |
| 478 | case RTC_DEVICE_PROPERTY_NATIVE_RAY16_SUPPORTED: return 0; |
| 479 | #endif |
| 480 | |
| 481 | #if defined(EMBREE_RAY_MASK) |
| 482 | case RTC_DEVICE_PROPERTY_RAY_MASK_SUPPORTED: return 1; |
| 483 | #else |
| 484 | case RTC_DEVICE_PROPERTY_RAY_MASK_SUPPORTED: return 0; |
| 485 | #endif |
| 486 | |
| 487 | #if defined(EMBREE_BACKFACE_CULLING) |
| 488 | case RTC_DEVICE_PROPERTY_BACKFACE_CULLING_ENABLED: return 1; |
| 489 | #else |
| 490 | case RTC_DEVICE_PROPERTY_BACKFACE_CULLING_ENABLED: return 0; |
| 491 | #endif |
| 492 |
no test coverage detected