I started trying to build the starter project but ran into unhandled exception errors. I learned that those were caused by the libraries having AVX be set to the enhanced instruction set used. After much troubleshooting I set enhanced instruction set in all the g3d projects to be built to "Not Set" in debug and release mode including the starter project. Even then, I still get an unhandled exception error, albeit instead of the core libraries it's in the external tbb header. This is the full text of the exception (I renamed the starter project to wasteland):
Unhandled exception at 0x00007FFC345D5183 (tbbmalloc.dll) in wastelandd.exe: 0xC000001D: Illegal Instruction.
I verified that the tbb and tbbmalloc projects had Enhanced Instruction Set to "Not Set".
Any input on this issue would be appreciated.
tbbmalloc.dll!rml::internal::MemoryPool::getEmptyBlock(unsigned __int64) C++
tbbmalloc.dll!rml::internal::TLSKey::createTLS(class rml::internal::MemoryPool *,class rml::internal::Backend *) C++
tbbmalloc.dll!rml::internal::ExtMemoryPool::init(__int64,void * (*)(__int64,unsigned __int64 &),int (*)(__int64,void *,unsigned __int64),unsigned __int64,bool,bool) C++
tbbmalloc.dll!rml::internal::Block::adjustPositionInBin(class rml::internal::Bin *) C++
tbbmalloc.dll!scalable_aligned_malloc () C++
tbb.dll!tbb::internal::NFS_Allocate(unsigned __int64,unsigned __int64,void *) C++
tbb.dll!tbb::internal::market::global_market(bool,unsigned int,unsigned __int64) C++
tbb.dll!tbb::internal::generic_scheduler::create_master(class tbb::internal::arena *) C++
tbb.dll!tbb::internal::governor::init_scheduler_weak(void) C++
tbb.dll!tbb::internal::allocate_root_with_context_proxy::allocate(unsigned __int64) C++
> wastelandd.exe!operator new(unsigned __int64 bytes, const tbb::internal::allocate_root_with_context_proxy & p) Line 1144 C++
wastelandd.exe!tbb::interface9::internal::start_for<tbb::blocked_range<unsigned __int64>,void <lambda>(const tbb::blocked_range<unsigned __int64> &),tbb::auto_partitioner const>::run(const tbb::blocked_range<unsigned __int64> & range, const G3D::Array<G3D::ImageFormat const *,10>::=::__l2::void <lambda>(const tbb::blocked_range<unsigned __int64> &) & body, const tbb::auto_partitioner & partitioner) Line 91 C++
wastelandd.exe!tbb::parallel_for<tbb::blocked_range<unsigned __int64>,void <lambda>(const tbb::blocked_range<unsigned __int64> &)>(const tbb::blocked_range<unsigned __int64> & range, const G3D::Array<G3D::ImageFormat const *,10>::=::__l2::void <lambda>(const tbb::blocked_range<unsigned __int64> &) & body) Line 202 C++
wastelandd.exe!G3D::Array<G3D::ImageFormat const *,10>::operator=(const G3D::Array<G3D::ImageFormat const *,10> & other) Line 206 C++
[External Code]
wastelandd.exe!G3D::GApp::Settings::Settings(int argc, const char * * argv) Line 81 C++
wastelandd.exe!main(int argc, const char * * argv) Line 10 C++
wastelandd.exe!G3D_WinMain(HINSTANCE__ * hInst, HINSTANCE__ * hPrev, char * szCmdLine, int sw) Line 155 C++
wastelandd.exe!WinMain(HINSTANCE__ * hInst, HINSTANCE__ * hPrev, char * szCmdLine, int sw) Line 5 C++
[External Code]