bullet3 observations

bram
Posts: 51
Joined: Sun Nov 23, 2008 4:43 pm

bullet3 observations

Post by bram »

Hi,

I cloned the git tree today of bullet3, here are some observations:

(1) Even though premake --help lists 'iphone' as a target, bullet3 does not seem to support ios, correct?

(2) Both OSX and linux64 show a lot of compiler warnings. It's hard to scan the output with so much noise.

(3) My MacBook Air with HD3000 fails glew init. Probably because HD3000 is not supported by Apple's OpenCL implementation?

(4) On linux64 with "ATI Radeon HD 5670", the glew init test fails after allocating 129Mb, is this by design? Keep allocating until failure?

(5) Same radeon fails the bitonic test with:

Code: Select all

...
m_deviceName = Redwood
compiling kernel kBitonicSortCellIdLocal b3Error[../../src/Bullet3OpenCL/Initialize/b3OpenCLUtils.cpp,914]:
Error in clBuildProgram, Line 914 in file ../../src/Bullet3OpenCL/Initialize/b3OpenCLUtils.cpp, Log: 
"/tmp/OCLrEwzdL.cl", line 1: error: expected a ")"
(6) The demo with spheres vs trimesh runs only a few fps, with profile info:

Code: Select all

......Profiling: stepSimulation (total running time: 585.875 ms) ---
......0 -- solveContacts (46.02 %) :: 269.648 ms / frame (1 calls)
......1 -- computeConvexConvexContactsGPUSAT (14.17 %) :: 82.998 ms / frame (1 calls)
......2 -- primitiveContactsKernel (0.59 %) :: 3.468 ms / frame (1 calls)
......3 -- GPU 1-axis SAP calculateOverlappingPairs (39.15 %) :: 229.378 ms / frame (1 calls)
......4 -- setupGpuAabbs (0.00 %) :: 0.028 ms / frame (1 calls)
......Unaccounted: (0.061 %) :: 0.355 ms
(7) The complex convex demo runs so slow, it freezes my computer altogether. I guess a radeon 5760 is too slow for this?


Bram
Basroil
Posts: 463
Joined: Fri Nov 30, 2012 4:50 am

Re: bullet3 observations

Post by Basroil »

I know that the older Radeon VLIW4/5 cards had issues with OpenCL, which was one of the reasons Blender gave up on OpenCL with older AMD cards. Given that the "required" cards are newer GCN cards like the 7970 (I would suppose the R9 series would work too), it might just be that the older cards aren't capable.

As for Apple OSes, iOS doesn't natively support OpenCL for third party programs on any hardware. OSX also doesn't seem to support OpenCL on HD3000 , despite the iGPU supporting OpenCL 1.1. If you run it with Windows you should be able to use OpenCL just fine after a driver update.
User avatar
Erwin Coumans
Site Admin
Posts: 4221
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA

Re: bullet3 observations

Post by Erwin Coumans »

I a nutshell, there are a million things that can go wrong when using OpenCL cross-platform, and you discovered just a few :)

The github repository is work-in-progress and needs clean-up, so please ignoring the warnings, iphone option and bitonic sort, it will be fixed or removed. One of the memory tests keeps on allocating until failure indeed.

Bullet 3 is only created for the latest high-end OpenCL desktop GPUs, such as AMD Radeon 7970, 290(x) or NVIDIA 680 or above.
It is also only tested on Windows 7 and 8, and Ubuntu 13.04 with latest drivers. We will make sure that the upcoming Mac Pro 2013 with dual GPU will work great.

In 2014 we will merge Bullet 2.x and Bullet 3.x so there will be a CPU and iPhone option. Also we consider a DirectX11 DirectCompute version.
Thanks for testing!
Erwin
Basroil
Posts: 463
Joined: Fri Nov 30, 2012 4:50 am

Re: bullet3 observations

Post by Basroil »

Erwin Coumans wrote: Windows 7 or 8 desktop (NOT laptop) with latest GPU drivers and a Radeon 7970 or Hawaii, or high-end NVIDIA Kepler.
Kepler is usually considered to be slower in OpenCL than the Fermi cards that came before it, so Fermi cards should work too right? I'll go ahead and test on an old 560 and 660 I have for comparison, though 560 shows some memory corruption and might not work 100%. GPUdemos demo is a good check, or should I simply test gpuguiinitialize?