Index: build/findOpenCL.lua =================================================================== --- build/findOpenCL.lua (revision 2640) +++ build/findOpenCL.lua (working copy) @@ -1,5 +1,14 @@ - -- todo: add Apple OpenCL environment vars + + function findOpenCL_Apple() + if os.is("macosx") then + return true + else + return false + end + end + + function findOpenCL_AMD() local amdopenclpath = os.getenv("AMDAPPSDKROOT") if (amdopenclpath) then @@ -17,13 +26,33 @@ end function findOpenCL_Intel() - local intelopenclpath = os.getenv("INTELOCLSDKROOT") - if (intelopenclpath) then + if os.is("Windows") then + local intelopenclpath = os.getenv("INTELOCLSDKROOT") + if (intelopenclpath) then return true + end end + if os.is("Linux") then + local intelsdk = io.open("/usr/include/CL/opencl.h","r") + if (intelsdk) then + return true; + end + end return false end - + + function initOpenCL_Apple() + configuration{} + includedirs { + "/System/Library/Frameworks/OpenCL.framework" + } + libdirs "/System/Library/Frameworks/OpenCL.framework" + links + { + "OpenCL.framework" + } + end + function initOpenCL_AMD() configuration {} local amdopenclpath = os.getenv("AMDAPPSDKROOT") @@ -65,6 +94,7 @@ function initOpenCL_Intel() configuration {} + if os.is("Windows") then local intelopenclpath = os.getenv("INTELOCLSDKROOT") if (intelopenclpath) then defines { "ADL_ENABLE_CL" , "CL_PLATFORM_INTEL"} @@ -79,6 +109,43 @@ links {"OpenCL"} return true end + end + if os.is("Linux") then + defines { "ADL_ENABLE_CL" , "CL_PLATFORM_INTEL"} + configuration {} + links {"OpenCL"} + end return false end - \ No newline at end of file + + function findOpenCL (vendor ) + if vendor=="AMD" then + return findOpenCL_AMD() + end + if vendor=="NVIDIA" then + return findOpenCL_NVIDIA() + end + if vendor=="Intel" then + return findOpenCL_Intel() + end + if vendor=="Apple" then + return findOpenCL_Apple() + end + return false + end + + function initOpenCL ( vendor ) + if vendor=="AMD" then + initOpenCL_AMD() + end + if vendor=="NVIDIA" then + return initOpenCL_NVIDIA() + end + if vendor=="Intel" then + initOpenCL_Intel() + end + if vendor=="Apple" then + return initOpenCL_Apple() + end + end + Index: build/premake4.lua =================================================================== --- build/premake4.lua (revision 2640) +++ build/premake4.lua (working copy) @@ -1,102 +1,47 @@ ---add the 0 so the solution comes first in the directory (when sorted on name) ---print "uncomment this hello premake4 world for debugging the script" -solution "0BulletSolution" + solution "0MySolution" - newoption { - trigger = "ios", - description = "Enable iOS target (requires xcode4)" - } - - newoption { - trigger = "without-demos", - description = "Disable demos and extras" - } + -- Multithreaded compiling + if _ACTION == "vs2010" or _ACTION=="vs2008" then + buildoptions { "/MP" } + end + + act = "" + + if _ACTION then + act = _ACTION + end - newoption { - trigger = "with-double-precision", - description = "Enable double precision build" - } - - newoption { - trigger = "with-nacl", - description = "Enable Native Client build" - } + newoption + { + trigger = "ios", + description = "Enable iOS target (requires xcode4)" + } + + newoption + { + trigger = "bullet2gpu", + description = "Enable Bullet 2.x GPU using b3GpuDynamicsWorld bridge to Bullet 3.x" + } - newoption { - trigger = "with-dx11", - description = "Enable DirectX11 build" - } - - newoption { - trigger = "with-opencl", - description = "Enable OpenCL builds (various SDKs)" - } - - newoption { - trigger = "with-opencl-amd", - description = "Enable OpenCL builds (AMD SDK)" - } - - newoption { - trigger = "with-opencl-intel", - description = "Enable OpenCL builds (Intel SDK)" - } - newoption { - trigger = "with-opencl-nvidia", - description = "Enable OpenCL builds (NVIDIA SDK)" - } - - configurations {"Release", "Debug"} configuration "Release" - flags { "Optimize", "EnableSSE", "StaticRuntime", "NoMinimalRebuild", "FloatFast"} + flags { "Optimize", "EnableSSE","StaticRuntime", "NoMinimalRebuild", "FloatFast"} configuration "Debug" + defines {"_DEBUG=1"} flags { "Symbols", "StaticRuntime" , "NoMinimalRebuild", "NoEditAndContinue" ,"FloatFast"} - platforms {"x32", "x64"} - --platforms {"x32"} - - configuration {"Windows"} - defines { "_CRT_SECURE_NO_WARNINGS","_CRT_SECURE_NO_DEPRECATE"} - - configuration{} - - postfix=""; - - if _OPTIONS["with-double-precision"] then - defines {"BT_USE_DOUBLE_PRECISION"} - end - - if _ACTION == "xcode4" then - if _OPTIONS["ios"] then - postfix = "ios"; - xcodebuildsettings - { - 'INFOPLIST_FILE = "../../Test/Info.plist"', - 'CODE_SIGN_IDENTITY = "iPhone Developer"', - "SDKROOT = iphoneos", - 'ARCHS = "armv7"', - 'TARGETED_DEVICE_FAMILY = "1,2"', - 'VALID_ARCHS = "armv7"', - } - else - xcodebuildsettings - { - 'ARCHS = "$(ARCHS_STANDARD_32_BIT) $(ARCHS_STANDARD_64_BIT)"', - 'VALID_ARCHS = "x86_64 i386"', - } + if os.is("Linux") then + if os.is64bit() then + platforms {"x64"} + else + platforms {"x32"} end else - + platforms {"x32", "x64"} end - act = "" - - if _ACTION then - act = _ACTION - end configuration {"x32"} targetsuffix ("_" .. act) configuration "x64" @@ -110,89 +55,91 @@ configuration{} + postfix="" + if _ACTION == "xcode4" then + if _OPTIONS["ios"] then + postfix = "ios"; + xcodebuildsettings + { + 'CODE_SIGN_IDENTITY = "iPhone Developer"', + "SDKROOT = iphoneos", + 'ARCHS = "armv7"', + 'TARGETED_DEVICE_FAMILY = "1,2"', + 'VALID_ARCHS = "armv7"', + } + else + xcodebuildsettings + { + 'ARCHS = "$(ARCHS_STANDARD_32_BIT) $(ARCHS_STANDARD_64_BIT)"', + 'VALID_ARCHS = "x86_64 i386"', + } + end + end -if not _OPTIONS["with-nacl"] then - - flags { "NoRTTI"} + + flags { "NoRTTI", "NoExceptions"} + defines { "_HAS_EXCEPTIONS=0" } targetdir "../bin" + location("./" .. act .. postfix) - -- Disable exception handling on MSVC 2008 and higher. MSVC 2005 without service pack has some linker issue (ConvexDecompositionDemo uses STL through HACD library) - if _ACTION == "vs2010" or _ACTION=="vs2008" then - flags { "NoExceptions"} - defines { "_HAS_EXCEPTIONS=0" } - end + + projectRootDir = os.getcwd() .. "/../" + print("Project root directroy: " .. projectRootDir); - -- Multithreaded compiling - if _ACTION == "vs2010" then - buildoptions { "/MP" } - end - - -else - targetdir "../bin_html" -end - - dofile ("findOpenCL.lua") dofile ("findDirectX11.lua") + dofile ("findOpenGLGlewGlut.lua") language "C++" - location("./" .. act .. postfix) + + if not _OPTIONS["ios"] then +-- include "../demo/gpudemo" +-- include "../btgui/MidiTest" +-- include "../opencl/vector_add_simplified" +-- include "../opencl/vector_add" + include "../btgui/Gwen" + include "../btgui/GwenOpenGLTest" + + include "../test/OpenCL/BasicInitialize" +-- include "../test/OpenCL/BroadphaseCollision" +-- include "../test/OpenCL/NarrowphaseCollision" + include "../test/OpenCL/ParallelPrimitives" + include "../test/OpenCL/RadixSortBenchmark" + include "../test/OpenCL/BitonicSort" + + include "../src/Bullet3Dynamics" + include "../src/Bullet3Common" + include "../src/Bullet3Geometry" + include "../src/Bullet3Collision" + include "../src/Bullet3Serialize/Bullet2FileLoader" - if _OPTIONS["with-dx11"] then - include "../Demos/DX11ClothDemo" - include "../src/BulletMultiThreaded/GpuSoftBodySolvers/DX11" - end + include "../src/Bullet3OpenCL" + include "../Demos3/GpuDemos" + +-- include "../demo/gpu_initialize" +-- include "../opencl/lds_bank_conflict" +-- include "../opencl/reduce" +-- include "../btgui/OpenGLTrueTypeFont" +-- include "../btgui/OpenGLWindow" +-- include "../demo/ObjLoader" ---choose any OpenCL sdk that is installed on the system - if _OPTIONS["with-opencl"] then - include "../Demos/OpenCLClothDemo/AMD" - include "../src/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/AMD" - include "../Demos/OpenCLClothDemo/NVidia" - include "../src/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/NVidia" - include "../Demos/OpenCLClothDemo/Intel" - include "../src/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/Intel" - end + +-- include "../test/b3DynamicBvhBroadphase" + ---choose a particular OpenCL sdk, this is useful for distributing project files that just work for one OpenCL SDK - if _OPTIONS["with-opencl-amd"] then - include "../Demos/OpenCLClothDemo/AMD" - include "../Demos/OpenGL" - include "../Demos/SoftDemo/AMD" - include "../src/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/AMD" - end - - if _OPTIONS["with-opencl-intel"] then - include "../Demos/OpenCLClothDemo/Intel" - include "../src/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/Intel" - end + - if _OPTIONS["with-opencl-nvidia"] then - include "../Demos/OpenCLClothDemo/NVidia" - include "../src/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/NVidia" + if _OPTIONS["bullet2gpu"] then + include "../src/LinearMath" + include "../src/BulletCollision" + include "../src/BulletDynamics" + include "../src/BulletSoftBody" + include "../Demos/HelloWorld" + + include "../Demos3" end - if not _OPTIONS["without-demos"] then - if not _OPTIONS["ios"] then - include "../Demos" end - include "../Extras" - end - - - if _OPTIONS["with-nacl"] then - include "../Demos/NativeClient" - else - include "../src/LinearMath" - include "../src/BulletCollision" - include "../src/BulletDynamics" - include "../src/BulletSoftBody" - end - - include "../Test" - include "../Demos/HelloWorld" - include "../Demos/Benchmarks" - Index: build/premake4_linux =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: build/premake4_osx =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: build/vs2010.bat =================================================================== --- build/vs2010.bat (revision 2640) +++ build/vs2010.bat (working copy) @@ -1,4 +1,6 @@ +rem premake4 --with-pe vs2010 premake4 vs2010 +mkdir vs2010\cache pause \ No newline at end of file Index: Demos/OpenGL/DemoApplication.cpp =================================================================== --- Demos/OpenGL/DemoApplication.cpp (revision 2640) +++ Demos/OpenGL/DemoApplication.cpp (working copy) @@ -1182,8 +1182,8 @@ } } - btVector3 aabbMin,aabbMax; - m_dynamicsWorld->getBroadphase()->getBroadphaseAabb(aabbMin,aabbMax); + btVector3 aabbMin(0,0,0),aabbMax(0,0,0); + //m_dynamicsWorld->getBroadphase()->getBroadphaseAabb(aabbMin,aabbMax); aabbMin-=btVector3(BT_LARGE_FLOAT,BT_LARGE_FLOAT,BT_LARGE_FLOAT); aabbMax+=btVector3(BT_LARGE_FLOAT,BT_LARGE_FLOAT,BT_LARGE_FLOAT); Index: Demos/OpenGL/DemoApplication.h =================================================================== --- Demos/OpenGL/DemoApplication.h (revision 2640) +++ Demos/OpenGL/DemoApplication.h (working copy) @@ -149,6 +149,11 @@ { m_azi = azi; } + + void setEle(float ele) + { + m_ele = ele; + } void setCameraUp(const btVector3& camUp) { Index: src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp =================================================================== --- src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp (revision 2640) +++ src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp (working copy) @@ -73,7 +73,7 @@ m_debugDrawer(0), m_forceUpdateAllAabbs(true) { - m_stackAlloc = collisionConfiguration->getStackAllocator(); + m_stackAlloc = 0;//collisionConfiguration->getStackAllocator(); m_dispatchInfo.m_stackAllocator = m_stackAlloc; } Index: src/BulletDynamics/Dynamics/btDynamicsWorld.h =================================================================== --- src/BulletDynamics/Dynamics/btDynamicsWorld.h (revision 2640) +++ src/BulletDynamics/Dynamics/btDynamicsWorld.h (working copy) @@ -33,7 +33,8 @@ BT_SIMPLE_DYNAMICS_WORLD=1, BT_DISCRETE_DYNAMICS_WORLD=2, BT_CONTINUOUS_DYNAMICS_WORLD=3, - BT_SOFT_RIGID_DYNAMICS_WORLD=4 + BT_SOFT_RIGID_DYNAMICS_WORLD=4, + BT_GPU_DYNAMICS_WORLD=5 }; ///The btDynamicsWorld is the interface class for several dynamics implementation, basic, discrete, parallel, and continuous etc.