rtcGetDeviceProperty(3)
π rtcGetDeviceProperty β a whole vibe check for ur device π
okay bestie, welcome to rtcGetDeviceProperty(3), the little Embree Ray Tracing Kernels 3 function that lets you interrogate a device object and find out what it's actually about. it's giving "tell me ur secrets" energy and honestly? iconic.
β¨ SYNOPSIS β¨
#include <embree3/rtcore.h>
ssize_t rtcGetDeviceProperty(
RTCDevice device,
enum RTCDeviceProperty prop
);
πΈ DESCRIPTION πΈ
so rtcGetDeviceProperty is the girl you call when you need to query properties β that's the prop argument, she's the one asking the questions β of a device object, which is the device argument. the returned property comes back as an integer of type ssize_t. no cap.
here's every single property you can ask about, and what it spills the tea on:
RTC_DEVICE_PROPERTY_VERSIONβ queries the combined version number (MAJOR.MINOR.PATCH) with two decimal digits per component. for example, for Embree 2.8.3 the integer208003is returned. math ate, fr fr.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_PACKETSandSSE2(orSSE4.2) enabled, and if the machine it is running on supportsSSE2(orSSE4.2). so many conditions bestie π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_PACKETSandAVX(orAVX2) enabled, and if the machine it is running on supportsAVX(orAVX2).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_PACKETSandAVX512enabled, and if the machine it is running on supportsAVX512. sixteen rays?? main character energy, periodt.RTC_DEVICE_PROPERTY_RAY_STREAM_SUPPORTEDβ queries whetherrtcIntersect1M,rtcIntersect1Mp,rtcIntersectNM,rtcIntersectNp,rtcOccluded1M,rtcOccluded1Mp,rtcOccludedNM, andrtcOccludedNpare supported. this is only the case if Embree is compiled withEMBREE_RAY_PACKETSenabled. look at that whole roster π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_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.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)
wait bestie, they're numbered 0, 1, 2 in the source β here's the exact mapping:
0β internal tasking system1β Intel Threading Building Blocks (TBB)2β Parallel Patterns Library (PPL)
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 if u get a false here, it's not u, it's the build π«Ά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. the way that's such a specific version π
π EXIT STATUS π
on success, it returns the value of the queried property. for properties returning a boolean value, the return value 0 denotes false and 1 denotes true. no ambiguous vibes, just 0 or 1.
on failure, zero is returned and an error code is set that can be queried using rtcGetDeviceError. so if u get a 0 and ur property was supposed to be a number, go check rtcGetDeviceError before u spiral π
reminder bestie: a 0 can mean false or failure depending on the property. read the room (and the docs) before u panic πΈ
that's the whole page, and honestly? she ate. this was rtcGetDeviceProperty(3) from Embree Ray Tracing Kernels 3 β no date on this one, she's timeless, lowkey eternal β¨πππ¦
rtcGetDeviceProperty(3) β mwah, go query something π
π¦ where this page comes from
- epel 9: embree 3.13.5-4.el9 Β· Apache-2.0
- fedora 43: embree3 3.13.5-9.fc41 Β· Apache-2.0
- fedora 44: embree3 3.13.5-16.fc44 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms