1rtcGetDeviceProperty(3) Embree Ray Tracing Kernels 3 rtcGetDeviceProperty(3)
2
3
4
5 NAME
6 rtcGetDeviceProperty - queries properties of the device
7
8 SYNOPSIS
9 #include <embree3/rtcore.h>
10
11 ssize_t rtcGetDeviceProperty(
12 RTCDevice device,
13 enum RTCDeviceProperty prop
14 );
15
16 DESCRIPTION
17 The rtcGetDeviceProperty function can be used to query properties (prop
18 argument) of a device object (device argument). The returned property
19 is an integer of type ssize_t.
20
21 Possible properties to query are:
22
23 · RTC_DEVICE_PROPERTY_VERSION: Queries the combined version number (MA‐
24 JOR.MINOR.PATCH) with two decimal digits per component. E.g. for
25 Embree 2.8.3 the integer 208003 is returned.
26
27 · RTC_DEVICE_PROPERTY_VERSION_MAJOR: Queries the major version number
28 of Embree.
29
30 · RTC_DEVICE_PROPERTY_VERSION_MINOR: Queries the minor version number
31 of Embree.
32
33 · RTC_DEVICE_PROPERTY_VERSION_PATCH: Queries the patch version number
34 of Embree.
35
36 · RTC_DEVICE_PROPERTY_NATIVE_RAY4_SUPPORTED: Queries whether the rtcIn‐
37 tersect4 and rtcOccluded4 functions preserve packet size and ray or‐
38 der when invoking callback functions. This is only the case if Em‐
39 bree is compiled with EMBREE_RAY_PACKETS and SSE2 (or SSE4.2) en‐
40 abled, and if the machine it is running on supports SSE2 (or SSE4.2).
41
42 · RTC_DEVICE_PROPERTY_NATIVE_RAY8_SUPPORTED: Queries whether the rtcIn‐
43 tersect8 and rtcOccluded8 functions preserve packet size and ray or‐
44 der when invoking callback functions. This is only the case if Em‐
45 bree is compiled with EMBREE_RAY_PACKETS and AVX (or AVX2) enabled,
46 and if the machine it is running on supports AVX (or AVX2).
47
48 · RTC_DEVICE_PROPERTY_NATIVE_RAY16_SUPPORTED: Queries whether the
49 rtcIntersect16 and rtcOccluded16 functions preserve packet size and
50 ray order when invoking callback functions. This is only the case if
51 Embree is compiled with EMBREE_RAY_PACKETS and AVX512SKX (or
52 AVX512KNL) enabled, and if the machine it is running on supports
53 AVX512SKX (or AVX512KNL).
54
55 · RTC_DEVICE_PROPERTY_RAY_STREAM_SUPPORTED: Queries whether rtcInter‐
56 sect1M, rtcIntersect1Mp, rtcIntersectNM, rtcIntersectNp, rtcOcclud‐
57 ed1M, rtcOccluded1Mp, rtcOccludedNM, and rtcOccludedNp are supported.
58 This is only the case if Embree is compiled with EMBREE_RAY_PACKETS
59 enabled.
60
61 · RTC_DEVICE_PROPERTY_RAY_MASK_SUPPORTED: Queries whether ray masks are
62 supported. This is only the case if Embree is compiled with EM‐
63 BREE_RAY_MASK enabled.
64
65 · RTC_DEVICE_PROPERTY_BACKFACE_CULLING_ENABLED: Queries whether back
66 face culling is enabled. This is only the case if Embree is compiled
67 with EMBREE_BACKFACE_CULLING enabled.
68
69 · RTC_DEVICE_PROPERTY_COMPACT_POLYS_ENABLED: Queries whether compact
70 polys is enabled. This is only the case if Embree is compiled with
71 EMBREE_COMPACT_POLYS enabled.
72
73 · RTC_DEVICE_PROPERTY_FILTER_FUNCTION_SUPPORTED: Queries whether filter
74 functions are supported, which is the case if Embree is compiled with
75 EMBREE_FILTER_FUNCTION enabled.
76
77 · RTC_DEVICE_PROPERTY_IGNORE_INVALID_RAYS_ENABLED: Queries whether in‐
78 valid rays are ignored, which is the case if Embree is compiled with
79 EMBREE_IGNORE_INVALID_RAYS enabled.
80
81 · RTC_DEVICE_PROPERTY_TRIANGLE_GEOMETRY_SUPPORTED: Queries whether tri‐
82 angles are supported, which is the case if Embree is compiled with
83 EMBREE_GEOMETRY_TRIANGLE enabled.
84
85 · RTC_DEVICE_PROPERTY_QUAD_GEOMETRY_SUPPORTED: Queries whether quads
86 are supported, which is the case if Embree is compiled with EM‐
87 BREE_GEOMETRY_QUAD enabled.
88
89 · RTC_DEVICE_PROPERTY_SUBDIVISION_GEOMETRY_SUPPORTED: Queries whether
90 subdivision meshes are supported, which is the case if Embree is com‐
91 piled with EMBREE_GEOMETRY_SUBDIVISION enabled.
92
93 · RTC_DEVICE_PROPERTY_CURVE_GEOMETRY_SUPPORTED: Queries whether curves
94 are supported, which is the case if Embree is compiled with EM‐
95 BREE_GEOMETRY_CURVE enabled.
96
97 · RTC_DEVICE_PROPERTY_POINT_GEOMETRY_SUPPORTED: Queries whether points
98 are supported, which is the case if Embree is compiled with EM‐
99 BREE_GEOMETRY_POINT enabled.
100
101 · RTC_DEVICE_PROPERTY_USER_GEOMETRY_SUPPORTED: Queries whether user ge‐
102 ometries are supported, which is the case if Embree is compiled with
103 EMBREE_GEOMETRY_USER enabled.
104
105 · RTC_DEVICE_PROPERTY_TASKING_SYSTEM: Queries the tasking system Embree
106 is compiled with. Possible return values are:
107
108 0. internal tasking system
109
110 1. Intel Threading Building Blocks (TBB)
111
112 2. Parallel Patterns Library (PPL)
113
114 · RTC_DEVICE_PROPERTY_JOIN_COMMIT_SUPPORTED: Queries whether rtcJoin‐
115 CommitScene is supported. This is not the case when Embree is com‐
116 piled with PPL or older versions of TBB.
117
118 · RTC_DEVICE_PROPERTY_PARALLEL_COMMIT_SUPPORTED: Queries whether rtc‐
119 CommitScene can get invoked from multiple TBB worker threads concur‐
120 rently. This feature is only supported starting with TBB 2019 Update
121 9.
122
123 EXIT STATUS
124 On success returns the value of the queried property. For properties
125 returning a boolean value, the return value 0 denotes false and 1 de‐
126 notes true.
127
128 On failure zero is returned and an error code is set that can be
129 queried using rtcGetDeviceError.
130
131
132
133 rtcGetDeviceProperty(3)