Dropping contacts in solver on heightfield-convex contact

Running PhysX 3.3.4 I am getting this error from Checked builds:
Dropping contacts in solver because we exceeded limit of 32 friction patches.

The relevant part of the system (i.e. the only source of contacts to my knowledge) is between a convex mesh dynamic body which is roughly box shaped 0.6m x 4m and a heightfield (0.13m vertex spacing) whose heights change dynamically (This can cause penetration but from what I can see, not enough to result in violent depenetration). Occurrence of this warning appears to coincide with my object falling through the heightfield as if it wasn’t there. I would like to treat the circumstance causing the warning as the true problem and the object falling through the heightfield as a symptom of this problem. I would like suggestions of strategies to avoid this warning. Here are some ideas I’ve come up with:

  1. Disable friction. I don’t actually require friction between the body and heightfield so in theory I don’t need the friction patches at all. However I’ve disabled friction and still get this error. I believe these patches are generated regardless and are possibly relevant when resolving contacts even in the absence of friction.

  2. Reduce the resolution of my heightfield. I have experimented with this and it appears to improve the situation (i.e. make the warning occur less frequently). Unfortunately I am unable to change the resolution of my source data so I have to do some sort of downsampling. This can result in a loss of locality of height changes. The greater issue though is that this solution does not appear to completely resolve the issue.

  3. Change the geometry of the rigid body. It’s possible that a simpler geometry like a box or capsule would generate fewer distinct friction patches. I haven’t experimented with this yet as I would have to compromise on fidelity of geometry but it might be an acceptable option.

  4. Change the hardcoded limit of 32 contacts to something larger. I haven’t investigated this at all and in general I’m disinclined to modify the PhysX source code. I suspect the 32 bit limit is in order to store contact masks in a 32 bit integer which would make making it larger a significant undertaking.

  5. Upgrade to PhysX 3.4. I have no specific reason to think this would improve the situation but it’s a variable I could tweak.

  6. Replace the contact with a PxVehicle like strategy which generates a bunch of soft contacts outside the PhysX tick. I think this may actually be the best solution but it would be a lot of work so I’m hoping to avoid it.

  7. Divide the geometry of my rigid body into smaller shapes. It appears that the 32 contact limit applies per pair of contacting shapes so If I have a larger number of smaller shapes then each one should have fewer contacts. I worry that this may result in reduced performance due to redundant division of shapes and a consequent increase in contact count.

I’m interested in feedback on any of these ideas or suggestions for alternative ways to avoid this warning.