rtcGetDeviceProperty - queries properties of the device
#include <embree4/rtcore.h> ssize_t rtcGetDeviceProperty( RTCDevice device, enum RTCDeviceProperty prop );
The rtcGetDeviceProperty function can be used to query properties (prop argument) of a device object (device argument). The returned property is an integer of type ssize_t.
Possible properties to query are:
• |
RTC_DEVICE_PROPERTY_VERSION: Queries the combined version number (MAJOR.MINOR.PATCH) with two decimal digits per component. E.g. for Embree 2.8.3 the integer 208003 is returned. | ||
• |
RTC_DEVICE_PROPERTY_VERSION_MAJOR: Queries the major version number of Embree. | ||
• |
RTC_DEVICE_PROPERTY_VERSION_MINOR: Queries the minor version number of Embree. | ||
• |
RTC_DEVICE_PROPERTY_VERSION_PATCH: Queries the patch version number of Embree. | ||
• |
RTC_DEVICE_PROPERTY_NATIVE_RAY4_SUPPORTED: Queries whether the rtcIntersect4 and rtcOccluded4 functions preserve packet size and ray order when invoking callback functions. This is only the case if Embree is compiled with EMBREE_RAY_PACKETS and SSE2 (or SSE4.2) enabled, and if the machine it is running on supports SSE2 (or SSE4.2). | ||
• |
RTC_DEVICE_PROPERTY_NATIVE_RAY8_SUPPORTED: Queries whether the rtcIntersect8 and rtcOccluded8 functions preserve packet size and ray order when invoking callback functions. This is only the case if Embree is compiled with EMBREE_RAY_PACKETS and AVX (or AVX2) enabled, and if the machine it is running on supports AVX (or AVX2). | ||
• |
RTC_DEVICE_PROPERTY_NATIVE_RAY16_SUPPORTED: Queries whether the rtcIntersect16 and rtcOccluded16 functions preserve packet size and ray order when invoking callback functions. This is only the case if Embree is compiled with EMBREE_RAY_PACKETS and AVX512 enabled, and if the machine it is running on supports AVX512. | ||
• |
RTC_DEVICE_PROPERTY_RAY_MASK_SUPPORTED: Queries whether ray masks are supported. This is only the case if Embree is compiled with EMBREE_RAY_MASK enabled. | ||
• |
RTC_DEVICE_PROPERTY_BACKFACE_CULLING_ENABLED: Queries whether back face culling is enabled. This is only the case if Embree is compiled with EMBREE_BACKFACE_CULLING enabled. | ||
• |
RTC_DEVICE_PROPERTY_BACKFACE_CULLING_CURVES_ENABLED: Queries whether back face culling for curves is enabled. This is only the case if Embree is compiled with EMBREE_BACKFACE_CULLING_CURVES enabled. | ||
• |
RTC_DEVICE_PROPERTY_BACKFACE_CULLING_SPHERES_ENABLED: Queries whether back face culling for spheres is enabled. This is only the case if Embree is compiled with EMBREE_BACKFACE_CULLING_SPHERES enabled. | ||
• |
RTC_DEVICE_PROPERTY_COMPACT_POLYS_ENABLED: Queries whether compact polys is enabled. This is only the case if Embree is compiled with EMBREE_COMPACT_POLYS enabled. | ||
• |
RTC_DEVICE_PROPERTY_FILTER_FUNCTION_SUPPORTED: Queries whether filter functions are supported, which is the case if Embree is compiled with EMBREE_FILTER_FUNCTION enabled. | ||
• |
RTC_DEVICE_PROPERTY_IGNORE_INVALID_RAYS_ENABLED: Queries whether invalid rays are ignored, which is the case if Embree is compiled with EMBREE_IGNORE_INVALID_RAYS enabled. | ||
• |
RTC_DEVICE_PROPERTY_TRIANGLE_GEOMETRY_SUPPORTED: Queries whether triangles are supported, which is the case if Embree is compiled with EMBREE_GEOMETRY_TRIANGLE enabled. | ||
• |
RTC_DEVICE_PROPERTY_QUAD_GEOMETRY_SUPPORTED: Queries whether quads are supported, which is the case if Embree is compiled with EMBREE_GEOMETRY_QUAD enabled. | ||
• |
RTC_DEVICE_PROPERTY_SUBDIVISION_GEOMETRY_SUPPORTED: Queries whether subdivision meshes are supported, which is the case if Embree is compiled with EMBREE_GEOMETRY_SUBDIVISION enabled. | ||
• |
RTC_DEVICE_PROPERTY_CURVE_GEOMETRY_SUPPORTED: Queries whether curves are supported, which is the case if Embree is compiled with EMBREE_GEOMETRY_CURVE enabled. | ||
• |
RTC_DEVICE_PROPERTY_POINT_GEOMETRY_SUPPORTED: Queries whether points are supported, which is the case if Embree is compiled with EMBREE_GEOMETRY_POINT enabled. | ||
• |
RTC_DEVICE_PROPERTY_USER_GEOMETRY_SUPPORTED: Queries whether user geometries are supported, which is the case if Embree is compiled with EMBREE_GEOMETRY_USER enabled. | ||
• |
RTC_DEVICE_PROPERTY_TASKING_SYSTEM: Queries the tasking system Embree is compiled with. Possible return values are: |
0.
internal tasking system |
||||
1. |
Intel Threading Building Blocks (TBB) |
|||
2. |
Parallel Patterns Library (PPL) |
|||
• |
RTC_DEVICE_PROPERTY_JOIN_COMMIT_SUPPORTED: Queries whether rtcJoinCommitScene is supported. This is not the case when Embree is compiled with PPL or older versions of TBB.
• |
RTC_DEVICE_PROPERTY_PARALLEL_COMMIT_SUPPORTED: Queries whether rtcCommitScene can get invoked from multiple TBB worker threads concurrently. This feature is only supported starting with TBB 2019 Update 9. |
On success returns the value of the queried property. For properties returning a boolean value, the return value 0 denotes false and 1 denotes true.
On failure zero is returned and an error code is set that can be queried using rtcGetDeviceError.