rtcGetDeviceProperty(3)
π rtcGetDeviceProperty β bestie edition β¨
okay so you're in the rtcGetDeviceProperty(3) page from the Embree Ray Tracing Kernels 4 manual, and honestly? this one is a lil vibe check for your device π«Ά
πΈ NAME πΈ
rtcGetDeviceProperty β queries properties of the device
like, you got questions about your device object, and this function is the one with answers π
β¨ SYNOPSIS β¨
#include <embree4/rtcore.h>
ssize_t rtcGetDeviceProperty(
RTCDevice device,
enum RTCDeviceProperty prop
);
π DESCRIPTION π
so basically, rtcGetDeviceProperty lets you query properties (that's the prop argument, bestie) of a device object (that's the device argument). the thing it hands back is an integer of type ssize_t. no cap. π
here's the full menu of properties you can ask about β every single one, i'm not skipping a thing:
RTC_DEVICE_PROPERTY_VERSIONβ queries the combined version number (MAJOR.MINOR.PATCH) with two decimal digits per component. like, for Embree 2.8.3 the integer208003is returned. math is math π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 thertcIntersect4andrtcOccluded4functions preserve packet size and ray order when invoking callback functions. this is only the case if Embree is compiled withEMBREE_RAY_PACKETSand SSE2 (or SSE4.2) enabled, and if the machine it's running on supports SSE2 (or SSE4.2). very specific, very demure β¨RTC_DEVICE_PROPERTY_NATIVE_RAY8_SUPPORTEDβ queries whether thertcIntersect8andrtcOccluded8functions preserve packet size and ray order when invoking callback functions. this is only the case if Embree is compiled withEMBREE_RAY_PACKETSand AVX (or AVX2) enabled, and if the machine it's running on supports AVX (or AVX2).RTC_DEVICE_PROPERTY_NATIVE_RAY16_SUPPORTEDβ queries whether thertcIntersect16andrtcOccluded16functions preserve packet size and ray order when invoking callback functions. this is only the case if Embree is compiled withEMBREE_RAY_PACKETSand AVX512 enabled, and if the machine it's 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 withEMBREE_RAY_MASKenabled.RTC_DEVICE_PROPERTY_BACKFACE_CULLING_ENABLEDβ queries whether back face culling is enabled. this is only the case if Embree is compiled withEMBREE_BACKFACE_CULLINGenabled.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 withEMBREE_BACKFACE_CULLING_CURVESenabled.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 withEMBREE_BACKFACE_CULLING_SPHERESenabled.RTC_DEVICE_PROPERTY_COMPACT_POLYS_ENABLEDβ queries whether compact polys is enabled. this is only the case if Embree is compiled withEMBREE_COMPACT_POLYSenabled.RTC_DEVICE_PROPERTY_FILTER_FUNCTION_SUPPORTEDβ queries whether filter functions are supported, which is the case if Embree is compiled withEMBREE_FILTER_FUNCTIONenabled.RTC_DEVICE_PROPERTY_IGNORE_INVALID_RAYS_ENABLEDβ queries whether invalid rays are ignored, which is the case if Embree is compiled withEMBREE_IGNORE_INVALID_RAYSenabled.RTC_DEVICE_PROPERTY_TRIANGLE_GEOMETRY_SUPPORTEDβ queries whether triangles are supported, which is the case if Embree is compiled withEMBREE_GEOMETRY_TRIANGLEenabled. triangle girlies rise πΊRTC_DEVICE_PROPERTY_QUAD_GEOMETRY_SUPPORTEDβ queries whether quads are supported, which is the case if Embree is compiled withEMBREE_GEOMETRY_QUADenabled.RTC_DEVICE_PROPERTY_SUBDIVISION_GEOMETRY_SUPPORTEDβ queries whether subdivision meshes are supported, which is the case if Embree is compiled withEMBREE_GEOMETRY_SUBDIVISIONenabled.RTC_DEVICE_PROPERTY_CURVE_GEOMETRY_SUPPORTEDβ queries whether curves are supported, which is the case if Embree is compiled withEMBREE_GEOMETRY_CURVEenabled.RTC_DEVICE_PROPERTY_POINT_GEOMETRY_SUPPORTEDβ queries whether points are supported, which is the case if Embree is compiled withEMBREE_GEOMETRY_POINTenabled.RTC_DEVICE_PROPERTY_USER_GEOMETRY_SUPPORTEDβ queries whether user geometries are supported, which is the case if Embree is compiled withEMBREE_GEOMETRY_USERenabled.RTC_DEVICE_PROPERTY_TASKING_SYSTEMβ queries the tasking system Embree is compiled with. possible return values are:- internal tasking system
- Intel Threading Building Blocks (TBB)
- Parallel Patterns Library (PPL)
(in the original these are numbered 0., 1., 2. β so 0 = internal, 1 = TBB, 2 = PPL, iykyk π)
RTC_DEVICE_PROPERTY_JOIN_COMMIT_SUPPORTEDβ queries whetherrtcJoinCommitSceneis supported. this is not the case when Embree is compiled with PPL or older versions of TBB. so like, read that carefully bestie.RTC_DEVICE_PROPERTY_PARALLEL_COMMIT_SUPPORTEDβ queries whetherrtcCommitScenecan get invoked from multiple TBB worker threads concurrently. this feature is only supported starting with TBB 2019 Update 9. periodt.
π¦ EXIT STATUS π¦
on success, it returns the value of the queried property. for properties that return a boolean value, the return value 0 denotes false and 1 denotes true β classic binary behavior, we love to see it β¨
on failure, zero is returned and an error code is set that can be queried using rtcGetDeviceError. so if you get a 0 and you were expecting something elseβ¦ yeah, go check that error code, bestie π
π that's the whole page π
okay that's genuinely it, no cap. this whole thing is from the Embree Ray Tracing Kernels 4 manual β the source/version line is Embree Ray Tracing Kernels 4 β and the footer says rtcGetDeviceProperty(3), no date on this one. so go query your properties, stay iconic, and remember: if it returns 0 on failure, that's not a personality trait, that's a bug you need to fix πππ¦
π¦ where this page comes from
- alpine 3.24: embree-doc 4.4.1-r0 Β· Apache-2.0
- arch rolling: embree 4.4.1-1 Β· Apache-2.0
- fedora 43: embree 4.4.1-1.fc43 Β· Apache-2.0
- fedora 44: embree 4.4.1-1.fc44 Β· Apache-2.0
- nixpkgs unstable: embree 4.4.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms