add some command-line options

--use_jacobi
--allow_opencl_cpu

b3LauncherCL constructor takes string, to make it easier to determine failing OpenCL kernel
b3SetCustomErrorMessageFunc, printf error and exit(0)
This commit is contained in:
erwin coumans
2013-11-19 13:42:53 -08:00
parent 54909160a7
commit 26dfaa441e
27 changed files with 491 additions and 448 deletions

View File

@@ -57,14 +57,23 @@ extern char OpenSansData[];
extern char* gPairBenchFileName;
extern float shadowMapWidth;
extern float shadowMapHeight;
extern bool gDebugLauncherCL;
extern bool gAllowCpuOpenCL;
extern bool gDebugForceLoadingFromSource;
extern bool gDebugSkipLoadingBinary;
extern bool useShadowMap;
extern float shadowMapWorldSize;
extern bool useJacobi;
extern bool gUseJacobi;
extern bool useUniformGrid;
extern bool gUseDbvt;
extern bool gDumpContactStats;
extern bool gCalcWorldSpaceAabbOnCpu;
extern bool gUseCalculateOverlappingPairsHost;
extern bool gIntegrateOnCpu;
extern bool gConvertConstraintOnCpu;
static void MyResizeCallback( float width, float height)
{
g_OpenGLWidth = width;
@@ -91,7 +100,7 @@ enum
};
b3AlignedObjectArray<const char*> demoNames;
int selectedDemo = 0;
int selectedDemo = 1;
GpuDemo::CreateFunc* allDemos[]=
{
//ConcaveCompound2Scene::MyCreateFunc,
@@ -554,6 +563,11 @@ void writeTextureToPng(int textureWidth, int textureHeight, const char* fileName
#include "Bullet3Dynamics/ConstraintSolver/b3Generic6DofConstraint.h"
#include "Bullet3Dynamics/ConstraintSolver/b3Point2PointConstraint.h"
void MyErrorFunc(const char* msg)
{
printf("Error: %s\n",msg);
exit(0);
}
int main(int argc, char* argv[])
{
@@ -566,7 +580,8 @@ int main(int argc, char* argv[])
int sz6 = sizeof(b3Transform);
//b3OpenCLUtils::setCachePath("/Users/erwincoumans/develop/mycache");
b3SetCustomErrorMessageFunc(MyErrorFunc);
b3SetCustomEnterProfileZoneFunc(b3ProfileManager::Start_Profile);
b3SetCustomLeaveProfileZoneFunc(b3ProfileManager::Stop_Profile);
@@ -608,9 +623,8 @@ int main(int argc, char* argv[])
}
args.GetCmdLineArgument("pair_benchmark_file",gPairBenchFileName);
useJacobi = args.CheckCmdLineFlag("use_jacobi");
useUniformGrid = args.CheckCmdLineFlag("use_uniform_grid");
gDebugLauncherCL = args.CheckCmdLineFlag("debug_kernel_launch");
dump_timings=args.CheckCmdLineFlag("dump_timings");
ci.useOpenCL = !args.CheckCmdLineFlag("disable_opencl");
@@ -622,6 +636,21 @@ int main(int argc, char* argv[])
ci.m_useInstancedCollisionShapes = !args.CheckCmdLineFlag("no_instanced_collision_shapes");
args.GetCmdLineArgument("cl_device", ci.preferredOpenCLDeviceIndex);
args.GetCmdLineArgument("cl_platform", ci.preferredOpenCLPlatformIndex);
gAllowCpuOpenCL = args.CheckCmdLineFlag("allow_opencl_cpu");
gUseJacobi = args.CheckCmdLineFlag("use_jacobi");
gUseDbvt = args.CheckCmdLineFlag("use_dbvt");
gDumpContactStats = args.CheckCmdLineFlag("dump_contact_stats");
gCalcWorldSpaceAabbOnCpu = args.CheckCmdLineFlag("calc_aabb_cpu");
gUseCalculateOverlappingPairsHost = args.CheckCmdLineFlag("calc_pairs_cpu");
gIntegrateOnCpu = args.CheckCmdLineFlag("integrate_cpu");
gConvertConstraintOnCpu = args.CheckCmdLineFlag("convert_constraints_cpu");
useUniformGrid = args.CheckCmdLineFlag("use_uniform_grid");
args.GetCmdLineArgument("x_dim", ci.arraySizeX);
args.GetCmdLineArgument("y_dim", ci.arraySizeY);
args.GetCmdLineArgument("z_dim", ci.arraySizeZ);