Fix in the hlsl file, to allow other wavefront sizes to work correctly, thanks Ronen for the fix.
Fix in btDX11SIMDAwareSoftBodySolver::optimize, the interface changed
This commit is contained in:
@@ -46,15 +46,9 @@ SolvePositionsFromLinksKernel( uint3 Gid : SV_GroupID, uint3 DTid : SV_DispatchT
|
|||||||
{
|
{
|
||||||
|
|
||||||
// Load the batch counts for the wavefronts
|
// Load the batch counts for the wavefronts
|
||||||
// Mask out in case there's a stray "wavefront" at the end that's been forced in through the multiplier
|
|
||||||
if( laneInWavefront == 0 )
|
|
||||||
{
|
|
||||||
int2 batchesAndVertexCountsWithinWavefront = g_wavefrontBatchCountsVertexCounts[firstWavefrontInBlock + localWavefront];
|
|
||||||
wavefrontBatchCountsVertexCounts[localWavefront] = batchesAndVertexCountsWithinWavefront;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
int2 batchesAndVerticesWithinWavefront = g_wavefrontBatchCountsVertexCounts[wavefront];
|
||||||
int2 batchesAndVerticesWithinWavefront = wavefrontBatchCountsVertexCounts[localWavefront];
|
|
||||||
int batchesWithinWavefront = batchesAndVerticesWithinWavefront.x;
|
int batchesWithinWavefront = batchesAndVerticesWithinWavefront.x;
|
||||||
int verticesUsedByWave = batchesAndVerticesWithinWavefront.y;
|
int verticesUsedByWave = batchesAndVerticesWithinWavefront.y;
|
||||||
|
|
||||||
|
|||||||
@@ -199,9 +199,9 @@ btSoftBodyLinkData &btDX11SIMDAwareSoftBodySolver::getLinkData()
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
void btDX11SIMDAwareSoftBodySolver::optimize( btAlignedObjectArray< btSoftBody * > &softBodies )
|
void btDX11SIMDAwareSoftBodySolver::optimize( btAlignedObjectArray< btSoftBody * > &softBodies , bool forceUpdate)
|
||||||
{
|
{
|
||||||
if( m_softBodySet.size() != softBodies.size() )
|
if(forceUpdate || m_softBodySet.size() != softBodies.size() )
|
||||||
{
|
{
|
||||||
// Have a change in the soft body set so update, reloading all the data
|
// Have a change in the soft body set so update, reloading all the data
|
||||||
getVertexData().clear();
|
getVertexData().clear();
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ public:
|
|||||||
|
|
||||||
virtual btSoftBodyLinkData &getLinkData();
|
virtual btSoftBodyLinkData &getLinkData();
|
||||||
|
|
||||||
virtual void optimize( btAlignedObjectArray< btSoftBody * > &softBodies );
|
virtual void optimize( btAlignedObjectArray< btSoftBody * > &softBodies , bool forceUpdate=false);
|
||||||
|
|
||||||
virtual void solveConstraints( float solverdt );
|
virtual void solveConstraints( float solverdt );
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user