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.
1 解決方案
Which version of Windows are you using? Embree requires Windows 7 (32bit or 64bit), because SetThreadGroupAffinity is not available in earlier versions of Windows.
連結已複製
5 回應
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.
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()
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()
