.\" Automatically generated by Pandoc 1.17.0.3 .\" .TH "rtcGetDeviceProperty" "3" "" "" "Embree Ray Tracing Kernels 3" .hy .SS NAME .IP .nf \f[C] rtcGetDeviceProperty\ \-\ queries\ properties\ of\ the\ device \f[] .fi .SS SYNOPSIS .IP .nf \f[C] #include\ ssize_t\ rtcGetDeviceProperty( \ \ RTCDevice\ device, \ \ enum\ RTCDeviceProperty\ prop ); \f[] .fi .SS DESCRIPTION .PP The \f[C]rtcGetDeviceProperty\f[] function can be used to query properties (\f[C]prop\f[] argument) of a device object (\f[C]device\f[] argument). The returned property is an integer of type \f[C]ssize_t\f[]. .PP Possible properties to query are: .IP \[bu] 2 \f[C]RTC_DEVICE_PROPERTY_VERSION\f[]: 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. .IP \[bu] 2 \f[C]RTC_DEVICE_PROPERTY_VERSION_MAJOR\f[]: Queries the major version number of Embree. .IP \[bu] 2 \f[C]RTC_DEVICE_PROPERTY_VERSION_MINOR\f[]: Queries the minor version number of Embree. .IP \[bu] 2 \f[C]RTC_DEVICE_PROPERTY_VERSION_PATCH\f[]: Queries the patch version number of Embree. .IP \[bu] 2 \f[C]RTC_DEVICE_PROPERTY_NATIVE_RAY4_SUPPORTED\f[]: Queries whether the \f[C]rtcIntersect4\f[] and \f[C]rtcOccluded4\f[] functions preserve packet size and ray order when invoking callback functions. This is only the case if Embree is compiled with \f[C]EMBREE_RAY_PACKETS\f[] and \f[C]SSE2\f[] (or \f[C]SSE4.2\f[]) enabled, and if the machine it is running on supports \f[C]SSE2\f[] (or \f[C]SSE4.2\f[]). .IP \[bu] 2 \f[C]RTC_DEVICE_PROPERTY_NATIVE_RAY8_SUPPORTED\f[]: Queries whether the \f[C]rtcIntersect8\f[] and \f[C]rtcOccluded8\f[] functions preserve packet size and ray order when invoking callback functions. This is only the case if Embree is compiled with \f[C]EMBREE_RAY_PACKETS\f[] and \f[C]AVX\f[] (or \f[C]AVX2\f[]) enabled, and if the machine it is running on supports \f[C]AVX\f[] (or \f[C]AVX2\f[]). .IP \[bu] 2 \f[C]RTC_DEVICE_PROPERTY_NATIVE_RAY16_SUPPORTED\f[]: Queries whether the \f[C]rtcIntersect16\f[] and \f[C]rtcOccluded16\f[] functions preserve packet size and ray order when invoking callback functions. This is only the case if Embree is compiled with \f[C]EMBREE_RAY_PACKETS\f[] and \f[C]AVX512SKX\f[] (or \f[C]AVX512KNL\f[]) enabled, and if the machine it is running on supports \f[C]AVX512SKX\f[] (or \f[C]AVX512KNL\f[]). .IP \[bu] 2 \f[C]RTC_DEVICE_PROPERTY_RAY_STREAM_SUPPORTED\f[]: Queries whether \f[C]rtcIntersect1M\f[], \f[C]rtcIntersect1Mp\f[], \f[C]rtcIntersectNM\f[], \f[C]rtcIntersectNp\f[], \f[C]rtcOccluded1M\f[], \f[C]rtcOccluded1Mp\f[], \f[C]rtcOccludedNM\f[], and \f[C]rtcOccludedNp\f[] are supported. This is only the case if Embree is compiled with \f[C]EMBREE_RAY_PACKETS\f[] enabled. .IP \[bu] 2 \f[C]RTC_DEVICE_PROPERTY_RAY_MASK_SUPPORTED\f[]: Queries whether ray masks are supported. This is only the case if Embree is compiled with \f[C]EMBREE_RAY_MASK\f[] enabled. .IP \[bu] 2 \f[C]RTC_DEVICE_PROPERTY_BACKFACE_CULLING_ENABLED\f[]: Queries whether back face culling is enabled. This is only the case if Embree is compiled with \f[C]EMBREE_BACKFACE_CULLING\f[] enabled. .IP \[bu] 2 \f[C]RTC_DEVICE_PROPERTY_COMPACT_POLYS_ENABLED\f[]: Queries whether compact polys is enabled. This is only the case if Embree is compiled with \f[C]EMBREE_COMPACT_POLYS\f[] enabled. .IP \[bu] 2 \f[C]RTC_DEVICE_PROPERTY_FILTER_FUNCTION_SUPPORTED\f[]: Queries whether filter functions are supported, which is the case if Embree is compiled with \f[C]EMBREE_FILTER_FUNCTION\f[] enabled. .IP \[bu] 2 \f[C]RTC_DEVICE_PROPERTY_IGNORE_INVALID_RAYS_ENABLED\f[]: Queries whether invalid rays are ignored, which is the case if Embree is compiled with \f[C]EMBREE_IGNORE_INVALID_RAYS\f[] enabled. .IP \[bu] 2 \f[C]RTC_DEVICE_PROPERTY_TRIANGLE_GEOMETRY_SUPPORTED\f[]: Queries whether triangles are supported, which is the case if Embree is compiled with \f[C]EMBREE_GEOMETRY_TRIANGLE\f[] enabled. .IP \[bu] 2 \f[C]RTC_DEVICE_PROPERTY_QUAD_GEOMETRY_SUPPORTED\f[]: Queries whether quads are supported, which is the case if Embree is compiled with \f[C]EMBREE_GEOMETRY_QUAD\f[] enabled. .IP \[bu] 2 \f[C]RTC_DEVICE_PROPERTY_SUBDIVISION_GEOMETRY_SUPPORTED\f[]: Queries whether subdivision meshes are supported, which is the case if Embree is compiled with \f[C]EMBREE_GEOMETRY_SUBDIVISION\f[] enabled. .IP \[bu] 2 \f[C]RTC_DEVICE_PROPERTY_CURVE_GEOMETRY_SUPPORTED\f[]: Queries whether curves are supported, which is the case if Embree is compiled with \f[C]EMBREE_GEOMETRY_CURVE\f[] enabled. .IP \[bu] 2 \f[C]RTC_DEVICE_PROPERTY_POINT_GEOMETRY_SUPPORTED\f[]: Queries whether points are supported, which is the case if Embree is compiled with \f[C]EMBREE_GEOMETRY_POINT\f[] enabled. .IP \[bu] 2 \f[C]RTC_DEVICE_PROPERTY_USER_GEOMETRY_SUPPORTED\f[]: Queries whether user geometries are supported, which is the case if Embree is compiled with \f[C]EMBREE_GEOMETRY_USER\f[] enabled. .IP \[bu] 2 \f[C]RTC_DEVICE_PROPERTY_TASKING_SYSTEM\f[]: Queries the tasking system Embree is compiled with. Possible return values are: .RS 2 .IP "0." 3 internal tasking system .IP "1." 3 Intel Threading Building Blocks (TBB) .IP "2." 3 Parallel Patterns Library (PPL) .RE .IP \[bu] 2 \f[C]RTC_DEVICE_PROPERTY_JOIN_COMMIT_SUPPORTED\f[]: Queries whether \f[C]rtcJoinCommitScene\f[] is supported. This is not the case when Embree is compiled with PPL or older versions of TBB. .IP \[bu] 2 \f[C]RTC_DEVICE_PROPERTY_PARALLEL_COMMIT_SUPPORTED\f[]: Queries whether \f[C]rtcCommitScene\f[] can get invoked from multiple TBB worker threads concurrently. This feature is only supported starting with TBB 2019 Update 9. .SS EXIT STATUS .PP On success returns the value of the queried property. For properties returning a boolean value, the return value 0 denotes \f[C]false\f[] and 1 denotes \f[C]true\f[]. .PP On failure zero is returned and an error code is set that can be queried using \f[C]rtcGetDeviceError\f[].