rtcGetDeviceProperty.3embree3 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. .TH "rtcGetDeviceProperty" "3" "" "" "Embree Ray Tracing Kernels 3"
  2. .SS NAME
  3. .IP
  4. .nf
  5. \f[C]
  6. rtcGetDeviceProperty\ \-\ queries\ properties\ of\ the\ device
  7. \f[]
  8. .fi
  9. .SS SYNOPSIS
  10. .IP
  11. .nf
  12. \f[C]
  13. #include\ <embree3/rtcore.h>
  14. ssize_t\ rtcGetDeviceProperty(
  15. \ \ RTCDevice\ device,
  16. \ \ enum\ RTCDeviceProperty\ prop
  17. );
  18. \f[]
  19. .fi
  20. .SS DESCRIPTION
  21. .PP
  22. The \f[C]rtcGetDeviceProperty\f[] function can be used to query
  23. properties (\f[C]prop\f[] argument) of a device object (\f[C]device\f[]
  24. argument).
  25. The returned property is an integer of type \f[C]ssize_t\f[].
  26. .PP
  27. Possible properties to query are:
  28. .IP \[bu] 2
  29. \f[C]RTC_DEVICE_PROPERTY_VERSION\f[]: Queries the combined version
  30. number (MAJOR.MINOR.PATCH) with two decimal digits per component.
  31. E.g.
  32. for Embree 2.8.3 the integer 208003 is returned.
  33. .IP \[bu] 2
  34. \f[C]RTC_DEVICE_PROPERTY_VERSION_MAJOR\f[]: Queries the major version
  35. number of Embree.
  36. .IP \[bu] 2
  37. \f[C]RTC_DEVICE_PROPERTY_VERSION_MINOR\f[]: Queries the minor version
  38. number of Embree.
  39. .IP \[bu] 2
  40. \f[C]RTC_DEVICE_PROPERTY_VERSION_PATCH\f[]: Queries the patch version
  41. number of Embree.
  42. .IP \[bu] 2
  43. \f[C]RTC_DEVICE_PROPERTY_NATIVE_RAY4_SUPPORTED\f[]: Queries whether the
  44. \f[C]rtcIntersect4\f[] and \f[C]rtcOccluded4\f[] functions preserve
  45. packet size and ray order when invoking callback functions.
  46. This is only the case if Embree is compiled with
  47. \f[C]EMBREE_RAY_PACKETS\f[] and \f[C]SSE2\f[] (or \f[C]SSE4.2\f[])
  48. enabled, and if the machine it is running on supports \f[C]SSE2\f[] (or
  49. \f[C]SSE4.2\f[]).
  50. .IP \[bu] 2
  51. \f[C]RTC_DEVICE_PROPERTY_NATIVE_RAY8_SUPPORTED\f[]: Queries whether the
  52. \f[C]rtcIntersect8\f[] and \f[C]rtcOccluded8\f[] functions preserve
  53. packet size and ray order when invoking callback functions.
  54. This is only the case if Embree is compiled with
  55. \f[C]EMBREE_RAY_PACKETS\f[] and \f[C]AVX\f[] (or \f[C]AVX2\f[]) enabled,
  56. and if the machine it is running on supports \f[C]AVX\f[] (or
  57. \f[C]AVX2\f[]).
  58. .IP \[bu] 2
  59. \f[C]RTC_DEVICE_PROPERTY_NATIVE_RAY16_SUPPORTED\f[]: Queries whether the
  60. \f[C]rtcIntersect16\f[] and \f[C]rtcOccluded16\f[] functions preserve
  61. packet size and ray order when invoking callback functions.
  62. This is only the case if Embree is compiled with
  63. \f[C]EMBREE_RAY_PACKETS\f[] and \f[C]AVX512SKX\f[] (or
  64. \f[C]AVX512KNL\f[]) enabled, and if the machine it is running on
  65. supports \f[C]AVX512SKX\f[] (or \f[C]AVX512KNL\f[]).
  66. .IP \[bu] 2
  67. \f[C]RTC_DEVICE_PROPERTY_RAY_STREAM_SUPPORTED\f[]: Queries whether
  68. \f[C]rtcIntersect1M\f[], \f[C]rtcIntersect1Mp\f[],
  69. \f[C]rtcIntersectNM\f[], \f[C]rtcIntersectNp\f[],
  70. \f[C]rtcOccluded1M\f[], \f[C]rtcOccluded1Mp\f[], \f[C]rtcOccludedNM\f[],
  71. and \f[C]rtcOccludedNp\f[] are supported.
  72. This is only the case if Embree is compiled with
  73. \f[C]EMBREE_RAY_PACKETS\f[] enabled.
  74. .IP \[bu] 2
  75. \f[C]RTC_DEVICE_PROPERTY_RAY_MASK_SUPPORTED\f[]: Queries whether ray
  76. masks are supported.
  77. This is only the case if Embree is compiled with
  78. \f[C]EMBREE_RAY_MASK\f[] enabled.
  79. .IP \[bu] 2
  80. \f[C]RTC_DEVICE_PROPERTY_BACKFACE_CULLING_ENABLED\f[]: Queries whether
  81. back face culling is enabled.
  82. This is only the case if Embree is compiled with
  83. \f[C]EMBREE_BACKFACE_CULLING\f[] enabled.
  84. .IP \[bu] 2
  85. \f[C]RTC_DEVICE_PROPERTY_FILTER_FUNCTION_SUPPORTED\f[]: Queries whether
  86. filter functions are supported, which is the case if Embree is compiled
  87. with \f[C]EMBREE_FILTER_FUNCTION\f[] enabled.
  88. .IP \[bu] 2
  89. \f[C]RTC_DEVICE_PROPERTY_IGNORE_INVALID_RAYS_ENABLED\f[]: Queries
  90. whether invalid rays are ignored, which is the case if Embree is
  91. compiled with \f[C]EMBREE_IGNORE_INVALID_RAYS\f[] enabled.
  92. .IP \[bu] 2
  93. \f[C]RTC_DEVICE_PROPERTY_TRIANGLE_GEOMETRY_SUPPORTED\f[]: Queries
  94. whether triangles are supported, which is the case if Embree is compiled
  95. with \f[C]EMBREE_GEOMETRY_TRIANGLE\f[] enabled.
  96. .IP \[bu] 2
  97. \f[C]RTC_DEVICE_PROPERTY_QUAD_GEOMETRY_SUPPORTED\f[]: Queries whether
  98. quads are supported, which is the case if Embree is compiled with
  99. \f[C]EMBREE_GEOMETRY_QUAD\f[] enabled.
  100. .IP \[bu] 2
  101. \f[C]RTC_DEVICE_PROPERTY_SUBDIVISION_GEOMETRY_SUPPORTED\f[]: Queries
  102. whether subdivision meshes are supported, which is the case if Embree is
  103. compiled with \f[C]EMBREE_GEOMETRY_SUBDIVISION\f[] enabled.
  104. .IP \[bu] 2
  105. \f[C]RTC_DEVICE_PROPERTY_CURVE_GEOMETRY_SUPPORTED\f[]: Queries whether
  106. curves are supported, which is the case if Embree is compiled with
  107. \f[C]EMBREE_GEOMETRY_CURVE\f[] enabled.
  108. .IP \[bu] 2
  109. \f[C]RTC_DEVICE_PROPERTY_POINT_GEOMETRY_SUPPORTED\f[]: Queries whether
  110. points are supported, which is the case if Embree is compiled with
  111. \f[C]EMBREE_GEOMETRY_POINT\f[] enabled.
  112. .IP \[bu] 2
  113. \f[C]RTC_DEVICE_PROPERTY_USER_GEOMETRY_SUPPORTED\f[]: Queries whether
  114. user geometries are supported, which is the case if Embree is compiled
  115. with \f[C]EMBREE_GEOMETRY_USER\f[] enabled.
  116. .IP \[bu] 2
  117. \f[C]RTC_DEVICE_PROPERTY_TASKING_SYSTEM\f[]: Queries the tasking system
  118. Embree is compiled with.
  119. Possible return values are:
  120. .RS 2
  121. .IP "0." 3
  122. internal tasking system
  123. .IP "1." 3
  124. Intel Threading Building Blocks (TBB)
  125. .IP "2." 3
  126. Parallel Patterns Library (PPL)
  127. .RE
  128. .IP \[bu] 2
  129. \f[C]RTC_DEVICE_PROPERTY_COMMIT_JOIN_SUPPORTED\f[]: Queries whether
  130. \f[C]rtcJoinCommitScene\f[] is supported.
  131. This is not the case when Embree is compiled with PPL or older versions
  132. of TBB.
  133. .SS EXIT STATUS
  134. .PP
  135. On success returns the value of the queried property.
  136. For properties returning a boolean value, the return value 0 denotes
  137. \f[C]false\f[] and 1 denotes \f[C]true\f[].
  138. .PP
  139. On failure zero is returned and an error code is set that can be queried
  140. using \f[C]rtcGetDeviceError\f[].