Using commit with hash ec39c2f
'Removed to bitonic sort and ios...' (25 November 2013)
of the master branch, unmodified, with platform:
Radeon HD5850
Catalyst 13.9
AMD APP SDK 2.9 (clew version also crashes)
Visual C++ 2008
Windows 7 x64
When two compound objects begin to collide, it crashes the GPU driver.
In the CompoundOnPlane demo, the compound rigids collide with the plane without crashing. The crash consistently occurs just as the compound objects begin to touch. Only 2 compound rigid bodies are needed to reproduce the crash (--x_dim=1 --y_dim=2 --z_dim=1). Additionally, when running the CompoundOnPlane demo with parameters x_dim=10 y_dim=1 z_dim=10, the compounds collide with the plane, settle, and there is no issue.
There does not seem to be any issue with Compound-Sphere and
Compound-Trimesh collision.
Disabling interactions with compound rigids prevents the crash,
so the issue is probably caused by one of these kernels(b3ConvexHullContact.h):
m_findCompoundPairsKernel
m_processCompoundPairsKernel
m_clipCompoundsHullHullKernel
m_processCompoundPairsPrimitivesKernel
Disabling collisions for objects with childShapes in
m_clipCompoundsHullHullKernel, and
m_processCompoundPairsKernel
by adding:
if( childShapeIndexA >= 0 && childShapeIndexB >= 0 )return;
has no effect, so these kernels are probably not the cause.
The lack of issues with Compound-Sphere/Trimesh/Plane collision suggests that m_processCompoundPairsPrimitivesKernel has no issue.
As a result, the cause is most likely m_findCompoundPairsKernel. Surrounding the launch1D() and clFinish() of these 4 kernels with printf and flushing the output also supports this explanation; the crash occurs just as findCompoundPairsKernel is executed. Furthermore, if the if branch on line 924 of findCompoundPairsKernel (sat.cl) is not run, the crash does not occur.
I'll make another post after some more investigation.
error.log:
main startVersion = 4.2.12430 Compatibility Profile Context 13.152.1.8000
Vendor = ATI Technologies Inc.
Renderer = AMD Radeon HD 5800 Series
started GwenUserInterfaceinit fontsnumDevices=1
compiling kernel copyTransformsToVBOKernel ready.
clBuildProgram successfully compiled cached binary: cache/sat.cl.Cypress.1268.1 (VM).bin
compiling kernel findSeparatingAxisKernel ready.
compiling kernel findConcaveSeparatingAxisKernel ready.
compiling kernel findCompoundPairsKernel ready.
compiling kernel processCompoundPairsKernel ready.
clBuildProgram successfully compiled cached binary: cache/satClipHullContacts.cl.Cypress.1268.1 (VM).bin
compiling kernel clipHullHullKernel ready.
compiling kernel clipCompoundsHullHullKernel ready.
compiling kernel findClippingFacesKernel ready.
compiling kernel clipFacesAndFindContactsKernel ready.
compiling kernel clipHullHullConcaveConvexKernel ready.
compiling kernel extractManifoldAndAddContactKernel ready.
compiling kernel newContactReductionKernel ready.
clBuildProgram successfully compiled cached binary: cache/bvhTraversal.cl.Cypress.1268.1 (VM).bin
compiling kernel bvhTraversalKernel ready.
clBuildProgram successfully compiled cached binary: cache/primitiveContacts.cl.Cypress.1268.1 (VM).bin
compiling kernel primitiveContactsKernel ready.
compiling kernel findConcaveSphereContactsKernel ready.
compiling kernel processCompoundPairsPrimitivesKernel ready.
clBuildProgram successfully compiled cached binary: cache/sap.cl.Cypress.1268.1 (VM).bin
clBuildProgram successfully compiled cached binary: cache/sapFast.cl.Cypress.1268.1 (VM).bin
clBuildProgram successfully compiled cached binary: cache/PrefixScanFloat4Kernels.cl.Cypress.1268.1 (VM).bin
compiling kernel LocalScanKernel ready.
compiling kernel TopLevelScanKernel ready.
compiling kernel AddOffsetKernel ready.
compiling kernel computePairsKernelTwoArrays ready.
compiling kernel prepareSumVarianceKernel ready.
compiling kernel computePairsIncremental3dSapKernel ready.
compiling kernel computePairsKernel ready.
compiling kernel flipFloatKernel ready.
compiling kernel copyAabbsKernel ready.
compiling kernel scatterKernel ready.
clBuildProgram successfully compiled cached binary: cache/PrefixScanKernels.cl.Cypress.1268.1 (VM).bin
compiling kernel LocalScanKernel ready.
compiling kernel TopLevelScanKernel ready.
compiling kernel AddOffsetKernel ready.
clBuildProgram successfully compiled cached binary: cache/FillKernels.cl.Cypress.1268.1 (VM).bin
compiling kernel FillIntKernel ready.
compiling kernel FillUnsignedIntKernel ready.
compiling kernel FillFloatKernel ready.
compiling kernel FillInt2Kernel ready.
clBuildProgram successfully compiled cached binary: cache/RadixSort32Kernels.cl.Cypress.1268.1 (VM).bin
compiling kernel StreamCountSortDataKernel ready.
compiling kernel StreamCountKernel ready.
compiling kernel SortAndScatterSortDataKernel ready.
compiling kernel SortAndScatterKernel ready.
compiling kernel PrefixScanKernel ready.
clBuildProgram successfully compiled cached binary: cache/PrefixScanKernels.cl.Cypress.1268.1 (VM).bin
compiling kernel LocalScanKernel ready.
compiling kernel TopLevelScanKernel ready.
compiling kernel AddOffsetKernel ready.
clBuildProgram successfully compiled cached binary: cache/jointSolver.cl.Cypress.1268.1 (VM).bin
compiling kernel solveJointConstraintRows ready.
compiling kernel initSolverBodies ready.
compiling kernel getInfo1Kernel ready.
compiling kernel initBatchConstraintsKernel ready.
compiling kernel getInfo2Kernel ready.
compiling kernel writeBackVelocitiesKernel ready.
compiling kernel breakViolatedConstraintsKernel ready.
clBuildProgram successfully compiled cached binary: cache/PrefixScanKernels.cl.Cypress.1268.1 (VM).bin
compiling kernel LocalScanKernel ready.
compiling kernel TopLevelScanKernel ready.
compiling kernel AddOffsetKernel ready.
clBuildProgram successfully compiled cached binary: cache/FillKernels.cl.Cypress.1268.1 (VM).bin
compiling kernel FillIntKernel ready.
compiling kernel FillUnsignedIntKernel ready.
compiling kernel FillFloatKernel ready.
compiling kernel FillInt2Kernel ready.
clBuildProgram successfully compiled cached binary: cache/solverUtils.cl.Cypress.1268.1 (VM).bin
compiling kernel CountBodiesKernel ready.
compiling kernel ContactToConstraintSplitKernel ready.
compiling kernel ClearVelocitiesKernel ready.
compiling kernel AverageVelocitiesKernel ready.
compiling kernel UpdateBodyVelocitiesKernel ready.
compiling kernel SolveContactJacobiKernel ready.
compiling kernel SolveFrictionJacobiKernel ready.
clBuildProgram successfully compiled cached binary: cache/PrefixScanKernels.cl.Cypress.1268.1 (VM).bin
compiling kernel LocalScanKernel ready.
compiling kernel TopLevelScanKernel ready.
compiling kernel AddOffsetKernel ready.
clBuildProgram successfully compiled cached binary: cache/FillKernels.cl.Cypress.1268.1 (VM).bin
compiling kernel FillIntKernel ready.
compiling kernel FillUnsignedIntKernel ready.
compiling kernel FillFloatKernel ready.
compiling kernel FillInt2Kernel ready.
clBuildProgram successfully compiled cached binary: cache/RadixSort32Kernels.cl.Cypress.1268.1 (VM).bin
compiling kernel StreamCountSortDataKernel ready.
compiling kernel StreamCountKernel ready.
compiling kernel SortAndScatterSortDataKernel ready.
compiling kernel SortAndScatterKernel ready.
compiling kernel PrefixScanKernel ready.
clBuildProgram successfully compiled cached binary: cache/PrefixScanKernels.cl.Cypress.1268.1 (VM).bin
compiling kernel LocalScanKernel ready.
compiling kernel TopLevelScanKernel ready.
compiling kernel AddOffsetKernel ready.
clBuildProgram successfully compiled cached binary: cache/BoundSearchKernels.cl.Cypress.1268.1 (VM).bin
compiling kernel SearchSortDataLowerKernel ready.
compiling kernel SearchSortDataUpperKernel ready.
compiling kernel SubtractKernel ready.
clBuildProgram successfully compiled cached binary: cache/FillKernels.cl.Cypress.1268.1 (VM).bin
compiling kernel FillIntKernel ready.
compiling kernel FillUnsignedIntKernel ready.
compiling kernel FillFloatKernel ready.
compiling kernel FillInt2Kernel ready.
clBuildProgram successfully compiled cached binary: cache/solveContact.cl.Cypress.1268.1 (VM).bin
clBuildProgram successfully compiled cached binary: cache/solveFriction.cl.Cypress.1268.1 (VM).bin
clBuildProgram successfully compiled cached binary: cache/solverSetup2.cl.Cypress.1268.1 (VM).bin
clBuildProgram successfully compiled cached binary: cache/solverSetup.cl.Cypress.1268.1 (VM).bin
compiling kernel BatchSolveKernelFriction ready.
compiling kernel BatchSolveKernelContact ready.
compiling kernel ContactToConstraintKernel ready.
compiling kernel SetSortDataKernel ready.
compiling kernel ReorderContactKernel ready.
compiling kernel CopyConstraintKernel ready.
clBuildProgram successfully compiled cached binary: cache/batchingKernels.cl.Cypress.1268.1 (VM).bin
compiling kernel CreateBatches ready.
clBuildProgram successfully compiled cached binary: cache/batchingKernelsNew.cl.Cypress.1268.1 (VM).bin
compiling kernel CreateBatchesNew ready.
clBuildProgram successfully compiled cached binary: cache/PrefixScanKernels.cl.Cypress.1268.1 (VM).bin
compiling kernel LocalScanKernel ready.
compiling kernel TopLevelScanKernel ready.
compiling kernel AddOffsetKernel ready.
clBuildProgram successfully compiled cached binary: cache/FillKernels.cl.Cypress.1268.1 (VM).bin
compiling kernel FillIntKernel ready.
compiling kernel FillUnsignedIntKernel ready.
compiling kernel FillFloatKernel ready.
compiling kernel FillInt2Kernel ready.
clBuildProgram successfully compiled cached binary: cache/RadixSort32Kernels.cl.Cypress.1268.1 (VM).bin
compiling kernel StreamCountSortDataKernel ready.
compiling kernel StreamCountKernel ready.
compiling kernel SortAndScatterSortDataKernel ready.
compiling kernel SortAndScatterKernel ready.
compiling kernel PrefixScanKernel ready.
clBuildProgram successfully compiled cached binary: cache/PrefixScanKernels.cl.Cypress.1268.1 (VM).bin
compiling kernel LocalScanKernel ready.
compiling kernel TopLevelScanKernel ready.
compiling kernel AddOffsetKernel ready.
clBuildProgram successfully compiled cached binary: cache/BoundSearchKernels.cl.Cypress.1268.1 (VM).bin
compiling kernel SearchSortDataLowerKernel ready.
compiling kernel SearchSortDataUpperKernel ready.
compiling kernel SubtractKernel ready.
clBuildProgram successfully compiled cached binary: cache/FillKernels.cl.Cypress.1268.1 (VM).bin
compiling kernel FillIntKernel ready.
compiling kernel FillUnsignedIntKernel ready.
compiling kernel FillFloatKernel ready.
compiling kernel FillInt2Kernel ready.
clBuildProgram successfully compiled cached binary: cache/solveContact.cl.Cypress.1268.1 (VM).bin
clBuildProgram successfully compiled cached binary: cache/solveFriction.cl.Cypress.1268.1 (VM).bin
clBuildProgram successfully compiled cached binary: cache/solverSetup2.cl.Cypress.1268.1 (VM).bin
clBuildProgram successfully compiled cached binary: cache/solverSetup.cl.Cypress.1268.1 (VM).bin
compiling kernel BatchSolveKernelFriction ready.
compiling kernel BatchSolveKernelContact ready.
compiling kernel solveSingleContactKernel ready.
compiling kernel solveSingleFrictionKernel ready.
compiling kernel ContactToConstraintKernel ready.
compiling kernel SetSortDataKernel ready.
compiling kernel SetDeterminismSortDataBodyA ready.
compiling kernel SetDeterminismSortDataBodyB ready.
compiling kernel SetDeterminismSortDataChildShapeA ready.
compiling kernel SetDeterminismSortDataChildShapeB ready.
compiling kernel ReorderContactKernel ready.
compiling kernel CopyConstraintKernel ready.
clBuildProgram successfully compiled cached binary: cache/batchingKernels.cl.Cypress.1268.1 (VM).bin
compiling kernel CreateBatches ready.
clBuildProgram successfully compiled cached binary: cache/batchingKernelsNew.cl.Cypress.1268.1 (VM).bin
compiling kernel CreateBatchesNew ready.
clBuildProgram successfully compiled cached binary: cache/rayCastKernels.cl.Cypress.1268.1 (VM).bin
compiling kernel rayCastKernel ready.
clBuildProgram successfully compiled cached binary: cache/integrateKernel.cl.Cypress.1268.1 (VM).bin
compiling kernel integrateTransformsKernel ready.
clBuildProgram successfully compiled cached binary: cache/updateAabbsKernel.cl.Cypress.1268.1 (VM).bin
compiling kernel initializeGpuAabbsFull ready.
Demo settings:
SelectedDemo=5, demoname = CompoundOnPlane
x_dim=1, y_dim=2, z_dim=1
x_gap=16.299999, y_gap=6.300000, z_gap=16.299999
OpenCL settings:
Preferred cl_device index -1
Preferred cl_platform index-1
Platform info:
CL_PLATFORM_VENDOR: Advanced Micro Devices, Inc.
CL_PLATFORM_NAME: AMD Accelerated Parallel Processing
CL_PLATFORM_VERSION: OpenCL 1.2 AMD-APP (1268.1)
Device Info:
CL_DEVICE_NAME: Cypress
CL_DEVICE_VENDOR: Advanced Micro Devices, Inc.
CL_DRIVER_VERSION: 1268.1 (VM)
CL_DEVICE_TYPE: CL_DEVICE_TYPE_GPU
CL_DEVICE_MAX_COMPUTE_UNITS: 18
CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS: 3
CL_DEVICE_MAX_WORK_ITEM_SIZES: 256 / 256 / 256
CL_DEVICE_MAX_WORK_GROUP_SIZE: 256
CL_DEVICE_MAX_CLOCK_FREQUENCY: 765 MHz
CL_DEVICE_ADDRESS_BITS: 32
CL_DEVICE_MAX_MEM_ALLOC_SIZE: 512 MByte
CL_DEVICE_GLOBAL_MEM_SIZE: 1024 MByte
CL_DEVICE_ERROR_CORRECTION_SUPPORT: no
CL_DEVICE_LOCAL_MEM_TYPE: local
CL_DEVICE_LOCAL_MEM_SIZE: 32 KByte
CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE: 64 KByte
CL_DEVICE_QUEUE_PROPERTIES: CL_QUEUE_PROFILING_ENABLE
CL_DEVICE_IMAGE_SUPPORT: 1
CL_DEVICE_MAX_READ_IMAGE_ARGS: 128
CL_DEVICE_MAX_WRITE_IMAGE_ARGS: 8
CL_DEVICE_IMAGE 2D_MAX_WIDTH 16384
2D_MAX_HEIGHT 16384
3D_MAX_WIDTH 2048
3D_MAX_HEIGHT 2048
3D_MAX_DEPTH 2048
CL_DEVICE_EXTENSIONS:cl_khr_fp64 cl_amd_fp64 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_sharing cl_ext_atomic_counters_32 cl_amd_device_attribute_query cl_amd_vec3 cl_amd_printf cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt