Intel® Embree Ray Tracing Kernels
Discussion forum on the open source ray tracing kernels for fast photo-realistic rendering on Intel® CPU(s)

Embree does not start on windows

khalidsalman
Beginner
892 Views
Hi,
I successfully compiled Embree using VS2010. But once I run the application, windows throw the following error: "The procedure entry point SetThreadGroupAffinity could not be located in the dynamic link library KERNEL32.dll"
so it never starts the application. This happens for both the win32 and x64 compiled versions, and I'm not sure what this error is supposed to mean or how to get it fixed. Anyone has an idea?
Thank you.
0 Kudos
1 Solution
Manfred_Ernst__Intel
New Contributor I
892 Views
Which version of Windows are you using? Embree requires Windows 7 (32bit or 64bit), because SetThreadGroupAffinity is not available in earlier versions of Windows.

View solution in original post

0 Kudos
5 Replies
Manfred_Ernst__Intel
New Contributor I
893 Views
Which version of Windows are you using? Embree requires Windows 7 (32bit or 64bit), because SetThreadGroupAffinity is not available in earlier versions of Windows.
0 Kudos
khalidsalman
Beginner
892 Views
Oh I see. I'm using Vista 64bit.
Thats quite a limitation to run on Windows 7 only, isn't it?
Thanks for the quick answer by the way.
0 Kudos
SvenW_Intel
Moderator
892 Views
You can workaround this issue by commenting out the lines that set the group affinity in sys/thread.cpp. These lines are only required if you want to run on a machine with more than 64 threads.
0 Kudos
SHIH_K_Intel
Employee
892 Views
Windows 7's companion SDK is WinSDK 7.0a, which supports group affinity. Older version WinSDK do not. You can try install SDK 7.0a on your older Windows.

as an aside, there is an example of managing Windows SDK evolution across versions that support group affinity and older SDK that does not understand group affinity.
Although the link deals with a different topic (topology), part of the code dealing OS specific API may be useful. Download the reference code at http://software.intel.com/en-us/articles/intel-64-architecture-processor-topology-enumeration/

Look inside the hleper file util_os.c for the function BindContext()
0 Kudos
unicomp21
Beginner
892 Views
0 Kudos
Reply