fix bug in the OPC_ArraySAP.cpp (used in Extras/CDTestFramework to compare agains Bullet broadphases)
Thanks to Olli-Pekka Räsänen for the report, mentioned by Pierre Terdiman in his blog: http://www.codercorner.com/blog/?p=475
This commit is contained in:
@@ -2,16 +2,16 @@ Microsoft Visual Studio Solution File, Format Version 10.00
|
|||||||
# Visual Studio 2008
|
# Visual Studio 2008
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CDTestFramework", "CDTestFramework.vcproj", "{0565DB39-45CC-416E-B549-BFC24F2666D1}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CDTestFramework", "CDTestFramework.vcproj", "{0565DB39-45CC-416E-B549-BFC24F2666D1}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
{3AD0C16A-DCAC-442E-9E17-A911A717EB4C} = {3AD0C16A-DCAC-442E-9E17-A911A717EB4C}
|
{519F115F-F196-49FE-9B24-49618A6202BB} = {519F115F-F196-49FE-9B24-49618A6202BB}
|
||||||
|
{C0E1329C-3D6F-492D-8EFF-08069F096C6E} = {C0E1329C-3D6F-492D-8EFF-08069F096C6E}
|
||||||
{DBE44CA3-2912-4441-8D99-AA2242688AD2} = {DBE44CA3-2912-4441-8D99-AA2242688AD2}
|
{DBE44CA3-2912-4441-8D99-AA2242688AD2} = {DBE44CA3-2912-4441-8D99-AA2242688AD2}
|
||||||
{FDA229FA-D080-4ABB-ADBD-35AD30155467} = {FDA229FA-D080-4ABB-ADBD-35AD30155467}
|
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Opcode", "Opcode\Opcode.vcproj", "{DBE44CA3-2912-4441-8D99-AA2242688AD2}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Opcode", "Opcode\Opcode.vcproj", "{DBE44CA3-2912-4441-8D99-AA2242688AD2}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LinearMath", "..\..\win7_32\src\LinearMath\LinearMath.vcproj", "{FDA229FA-D080-4ABB-ADBD-35AD30155467}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LinearMath", "..\..\msvc\2008\src\LinearMath\LinearMath.vcproj", "{519F115F-F196-49FE-9B24-49618A6202BB}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BulletCollision", "..\..\win7_32\src\BulletCollision\BulletCollision.vcproj", "{3AD0C16A-DCAC-442E-9E17-A911A717EB4C}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BulletCollision", "..\..\msvc\2008\src\BulletCollision\BulletCollision.vcproj", "{C0E1329C-3D6F-492D-8EFF-08069F096C6E}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
@@ -57,38 +57,38 @@ Global
|
|||||||
{DBE44CA3-2912-4441-8D99-AA2242688AD2}.ReleaseDoublePrecision|Win32.Build.0 = Release|Win32
|
{DBE44CA3-2912-4441-8D99-AA2242688AD2}.ReleaseDoublePrecision|Win32.Build.0 = Release|Win32
|
||||||
{DBE44CA3-2912-4441-8D99-AA2242688AD2}.RelWithDebInfo|Win32.ActiveCfg = Release|Win32
|
{DBE44CA3-2912-4441-8D99-AA2242688AD2}.RelWithDebInfo|Win32.ActiveCfg = Release|Win32
|
||||||
{DBE44CA3-2912-4441-8D99-AA2242688AD2}.RelWithDebInfo|Win32.Build.0 = Release|Win32
|
{DBE44CA3-2912-4441-8D99-AA2242688AD2}.RelWithDebInfo|Win32.Build.0 = Release|Win32
|
||||||
{FDA229FA-D080-4ABB-ADBD-35AD30155467}.Debug|Win32.ActiveCfg = Debug|Win32
|
{519F115F-F196-49FE-9B24-49618A6202BB}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
{FDA229FA-D080-4ABB-ADBD-35AD30155467}.Debug|Win32.Build.0 = Debug|Win32
|
{519F115F-F196-49FE-9B24-49618A6202BB}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
{FDA229FA-D080-4ABB-ADBD-35AD30155467}.DebugDll|Win32.ActiveCfg = Debug|Win32
|
{519F115F-F196-49FE-9B24-49618A6202BB}.DebugDll|Win32.ActiveCfg = Debug|Win32
|
||||||
{FDA229FA-D080-4ABB-ADBD-35AD30155467}.DebugDll|Win32.Build.0 = Debug|Win32
|
{519F115F-F196-49FE-9B24-49618A6202BB}.DebugDll|Win32.Build.0 = Debug|Win32
|
||||||
{FDA229FA-D080-4ABB-ADBD-35AD30155467}.DebugDoublePrecision|Win32.ActiveCfg = Debug|Win32
|
{519F115F-F196-49FE-9B24-49618A6202BB}.DebugDoublePrecision|Win32.ActiveCfg = Debug|Win32
|
||||||
{FDA229FA-D080-4ABB-ADBD-35AD30155467}.DebugDoublePrecision|Win32.Build.0 = Debug|Win32
|
{519F115F-F196-49FE-9B24-49618A6202BB}.DebugDoublePrecision|Win32.Build.0 = Debug|Win32
|
||||||
{FDA229FA-D080-4ABB-ADBD-35AD30155467}.MinSizeRel|Win32.ActiveCfg = MinSizeRel|Win32
|
{519F115F-F196-49FE-9B24-49618A6202BB}.MinSizeRel|Win32.ActiveCfg = MinSizeRel|Win32
|
||||||
{FDA229FA-D080-4ABB-ADBD-35AD30155467}.MinSizeRel|Win32.Build.0 = MinSizeRel|Win32
|
{519F115F-F196-49FE-9B24-49618A6202BB}.MinSizeRel|Win32.Build.0 = MinSizeRel|Win32
|
||||||
{FDA229FA-D080-4ABB-ADBD-35AD30155467}.Release|Win32.ActiveCfg = Release|Win32
|
{519F115F-F196-49FE-9B24-49618A6202BB}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
{FDA229FA-D080-4ABB-ADBD-35AD30155467}.Release|Win32.Build.0 = Release|Win32
|
{519F115F-F196-49FE-9B24-49618A6202BB}.Release|Win32.Build.0 = Release|Win32
|
||||||
{FDA229FA-D080-4ABB-ADBD-35AD30155467}.ReleaseDll|Win32.ActiveCfg = Release|Win32
|
{519F115F-F196-49FE-9B24-49618A6202BB}.ReleaseDll|Win32.ActiveCfg = Release|Win32
|
||||||
{FDA229FA-D080-4ABB-ADBD-35AD30155467}.ReleaseDll|Win32.Build.0 = Release|Win32
|
{519F115F-F196-49FE-9B24-49618A6202BB}.ReleaseDll|Win32.Build.0 = Release|Win32
|
||||||
{FDA229FA-D080-4ABB-ADBD-35AD30155467}.ReleaseDoublePrecision|Win32.ActiveCfg = Release|Win32
|
{519F115F-F196-49FE-9B24-49618A6202BB}.ReleaseDoublePrecision|Win32.ActiveCfg = Release|Win32
|
||||||
{FDA229FA-D080-4ABB-ADBD-35AD30155467}.ReleaseDoublePrecision|Win32.Build.0 = Release|Win32
|
{519F115F-F196-49FE-9B24-49618A6202BB}.ReleaseDoublePrecision|Win32.Build.0 = Release|Win32
|
||||||
{FDA229FA-D080-4ABB-ADBD-35AD30155467}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|Win32
|
{519F115F-F196-49FE-9B24-49618A6202BB}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|Win32
|
||||||
{FDA229FA-D080-4ABB-ADBD-35AD30155467}.RelWithDebInfo|Win32.Build.0 = RelWithDebInfo|Win32
|
{519F115F-F196-49FE-9B24-49618A6202BB}.RelWithDebInfo|Win32.Build.0 = RelWithDebInfo|Win32
|
||||||
{3AD0C16A-DCAC-442E-9E17-A911A717EB4C}.Debug|Win32.ActiveCfg = Debug|Win32
|
{C0E1329C-3D6F-492D-8EFF-08069F096C6E}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
{3AD0C16A-DCAC-442E-9E17-A911A717EB4C}.Debug|Win32.Build.0 = Debug|Win32
|
{C0E1329C-3D6F-492D-8EFF-08069F096C6E}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
{3AD0C16A-DCAC-442E-9E17-A911A717EB4C}.DebugDll|Win32.ActiveCfg = Debug|Win32
|
{C0E1329C-3D6F-492D-8EFF-08069F096C6E}.DebugDll|Win32.ActiveCfg = Debug|Win32
|
||||||
{3AD0C16A-DCAC-442E-9E17-A911A717EB4C}.DebugDll|Win32.Build.0 = Debug|Win32
|
{C0E1329C-3D6F-492D-8EFF-08069F096C6E}.DebugDll|Win32.Build.0 = Debug|Win32
|
||||||
{3AD0C16A-DCAC-442E-9E17-A911A717EB4C}.DebugDoublePrecision|Win32.ActiveCfg = Debug|Win32
|
{C0E1329C-3D6F-492D-8EFF-08069F096C6E}.DebugDoublePrecision|Win32.ActiveCfg = Debug|Win32
|
||||||
{3AD0C16A-DCAC-442E-9E17-A911A717EB4C}.DebugDoublePrecision|Win32.Build.0 = Debug|Win32
|
{C0E1329C-3D6F-492D-8EFF-08069F096C6E}.DebugDoublePrecision|Win32.Build.0 = Debug|Win32
|
||||||
{3AD0C16A-DCAC-442E-9E17-A911A717EB4C}.MinSizeRel|Win32.ActiveCfg = MinSizeRel|Win32
|
{C0E1329C-3D6F-492D-8EFF-08069F096C6E}.MinSizeRel|Win32.ActiveCfg = MinSizeRel|Win32
|
||||||
{3AD0C16A-DCAC-442E-9E17-A911A717EB4C}.MinSizeRel|Win32.Build.0 = MinSizeRel|Win32
|
{C0E1329C-3D6F-492D-8EFF-08069F096C6E}.MinSizeRel|Win32.Build.0 = MinSizeRel|Win32
|
||||||
{3AD0C16A-DCAC-442E-9E17-A911A717EB4C}.Release|Win32.ActiveCfg = Release|Win32
|
{C0E1329C-3D6F-492D-8EFF-08069F096C6E}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
{3AD0C16A-DCAC-442E-9E17-A911A717EB4C}.Release|Win32.Build.0 = Release|Win32
|
{C0E1329C-3D6F-492D-8EFF-08069F096C6E}.Release|Win32.Build.0 = Release|Win32
|
||||||
{3AD0C16A-DCAC-442E-9E17-A911A717EB4C}.ReleaseDll|Win32.ActiveCfg = Release|Win32
|
{C0E1329C-3D6F-492D-8EFF-08069F096C6E}.ReleaseDll|Win32.ActiveCfg = Release|Win32
|
||||||
{3AD0C16A-DCAC-442E-9E17-A911A717EB4C}.ReleaseDll|Win32.Build.0 = Release|Win32
|
{C0E1329C-3D6F-492D-8EFF-08069F096C6E}.ReleaseDll|Win32.Build.0 = Release|Win32
|
||||||
{3AD0C16A-DCAC-442E-9E17-A911A717EB4C}.ReleaseDoublePrecision|Win32.ActiveCfg = Release|Win32
|
{C0E1329C-3D6F-492D-8EFF-08069F096C6E}.ReleaseDoublePrecision|Win32.ActiveCfg = Release|Win32
|
||||||
{3AD0C16A-DCAC-442E-9E17-A911A717EB4C}.ReleaseDoublePrecision|Win32.Build.0 = Release|Win32
|
{C0E1329C-3D6F-492D-8EFF-08069F096C6E}.ReleaseDoublePrecision|Win32.Build.0 = Release|Win32
|
||||||
{3AD0C16A-DCAC-442E-9E17-A911A717EB4C}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|Win32
|
{C0E1329C-3D6F-492D-8EFF-08069F096C6E}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|Win32
|
||||||
{3AD0C16A-DCAC-442E-9E17-A911A717EB4C}.RelWithDebInfo|Win32.Build.0 = RelWithDebInfo|Win32
|
{C0E1329C-3D6F-492D-8EFF-08069F096C6E}.RelWithDebInfo|Win32.Build.0 = RelWithDebInfo|Win32
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|||||||
@@ -47,7 +47,7 @@
|
|||||||
MinimalRebuild="true"
|
MinimalRebuild="true"
|
||||||
ExceptionHandling="0"
|
ExceptionHandling="0"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="1"
|
RuntimeLibrary="3"
|
||||||
UsePrecompiledHeader="2"
|
UsePrecompiledHeader="2"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
Detect64BitPortabilityProblems="true"
|
Detect64BitPortabilityProblems="true"
|
||||||
@@ -126,7 +126,7 @@
|
|||||||
AdditionalIncludeDirectories=".\Opcode;.\AntTweakBar\include;.\GIMPACT\Include;../../src;../../Glut"
|
AdditionalIncludeDirectories=".\Opcode;.\AntTweakBar\include;.\GIMPACT\Include;../../src;../../Glut"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
||||||
ExceptionHandling="0"
|
ExceptionHandling="0"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="2"
|
||||||
EnableEnhancedInstructionSet="0"
|
EnableEnhancedInstructionSet="0"
|
||||||
FloatingPointModel="2"
|
FloatingPointModel="2"
|
||||||
RuntimeTypeInfo="false"
|
RuntimeTypeInfo="false"
|
||||||
@@ -146,10 +146,9 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies="cudart.lib"
|
|
||||||
OutputFile="./Bin/CDTestFramework.exe"
|
OutputFile="./Bin/CDTestFramework.exe"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
AdditionalLibraryDirectories=".\AntTweakBar\lib,../../Glut;"$(CUDA_LIB_PATH)""
|
AdditionalLibraryDirectories=".\AntTweakBar\lib,../../Glut"
|
||||||
GenerateDebugInformation="true"
|
GenerateDebugInformation="true"
|
||||||
SubSystem="1"
|
SubSystem="1"
|
||||||
OptimizeReferences="2"
|
OptimizeReferences="2"
|
||||||
|
|||||||
@@ -399,6 +399,9 @@ void ASAP_PairManager::ReallocPairs()
|
|||||||
void* mObject;
|
void* mObject;
|
||||||
udword mGUID;
|
udword mGUID;
|
||||||
|
|
||||||
|
inline_ void SetInvalid() { mMin[0]=INVALID_INDEX; }
|
||||||
|
inline_ bool IsValid() const { return mMin[0]!=INVALID_INDEX; }
|
||||||
|
|
||||||
inline_ ValType GetMaxValue(udword i, const ASAP_EndPoint* base) const
|
inline_ ValType GetMaxValue(udword i, const ASAP_EndPoint* base) const
|
||||||
{
|
{
|
||||||
return base[mMax[i]].mValue;
|
return base[mMax[i]].mValue;
|
||||||
@@ -836,27 +839,29 @@ void ArraySAP::BatchCreate()
|
|||||||
udword i=0;
|
udword i=0;
|
||||||
while(i<NbOldBoxes)
|
while(i<NbOldBoxes)
|
||||||
{
|
{
|
||||||
while(BA.IsSet(Offset))
|
|
||||||
|
|
||||||
|
if(!BA.IsSet(i))
|
||||||
{
|
{
|
||||||
|
const ASAP_Box* Box = mBoxes + i;
|
||||||
|
// if(Box->mObject)
|
||||||
|
if(Box->IsValid())
|
||||||
|
{
|
||||||
|
OldBoxesIndices[Offset] = i;
|
||||||
|
|
||||||
|
OldBoxes[Offset].mMinX = Box->mMin[0];
|
||||||
|
OldBoxes[Offset].mMaxX = Box->mMax[0];
|
||||||
|
OldBoxes[Offset].mMinY = Box->mMin[1];
|
||||||
|
OldBoxes[Offset].mMaxY = Box->mMax[1];
|
||||||
|
OldBoxes[Offset].mMinZ = Box->mMin[2];
|
||||||
|
OldBoxes[Offset].mMaxZ = Box->mMax[2];
|
||||||
Offset++;
|
Offset++;
|
||||||
assert(Offset<mNbBoxes);
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
const ASAP_Box* Box = mBoxes + Offset;
|
|
||||||
OldBoxesIndices[i] = Offset;
|
|
||||||
|
|
||||||
OldBoxes[i].mMinX = Box->mMin[0];
|
|
||||||
OldBoxes[i].mMaxX = Box->mMax[0];
|
|
||||||
OldBoxes[i].mMinY = Box->mMin[1];
|
|
||||||
OldBoxes[i].mMaxY = Box->mMax[1];
|
|
||||||
OldBoxes[i].mMinZ = Box->mMin[2];
|
|
||||||
OldBoxes[i].mMaxZ = Box->mMax[2];
|
|
||||||
Offset++;
|
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
assert(i==NbOldBoxes);
|
// assert(i==NbOldBoxes);
|
||||||
|
BipartiteBoxPruning2(NbBatched, NewBoxes, Offset, OldBoxes, Axes(AXES_XZY), Batched, OldBoxesIndices);
|
||||||
BipartiteBoxPruning2(NbBatched, NewBoxes, NbOldBoxes, OldBoxes, Axes(AXES_XZY), Batched, OldBoxesIndices);
|
|
||||||
|
|
||||||
ICE_FREE(OldBoxesIndices);
|
ICE_FREE(OldBoxesIndices);
|
||||||
DELETEARRAY(OldBoxes);
|
DELETEARRAY(OldBoxes);
|
||||||
@@ -937,6 +942,8 @@ void ArraySAP::BatchRemove()
|
|||||||
BA.SetBit(Object->mGUID);
|
BA.SetBit(Object->mGUID);
|
||||||
|
|
||||||
Object->mGUID = mFirstFree;
|
Object->mGUID = mFirstFree;
|
||||||
|
// Object->mObject = null; // ###########
|
||||||
|
Object->SetInvalid();
|
||||||
mFirstFree = Index;
|
mFirstFree = Index;
|
||||||
}
|
}
|
||||||
mNbBoxes -= Saved;
|
mNbBoxes -= Saved;
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
Version="9.00"
|
Version="9.00"
|
||||||
Name="Opcode"
|
Name="Opcode"
|
||||||
ProjectGUID="{DBE44CA3-2912-4441-8D99-AA2242688AD2}"
|
ProjectGUID="{DBE44CA3-2912-4441-8D99-AA2242688AD2}"
|
||||||
|
RootNamespace="Opcode"
|
||||||
TargetFrameworkVersion="131072"
|
TargetFrameworkVersion="131072"
|
||||||
>
|
>
|
||||||
<Platforms>
|
<Platforms>
|
||||||
@@ -55,7 +56,7 @@
|
|||||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;OPCODE_EXPORTS"
|
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;OPCODE_EXPORTS"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
ExceptionHandling="0"
|
ExceptionHandling="0"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
UsePrecompiledHeader="2"
|
UsePrecompiledHeader="2"
|
||||||
PrecompiledHeaderThrough="stdafx.h"
|
PrecompiledHeaderThrough="stdafx.h"
|
||||||
@@ -149,7 +150,7 @@
|
|||||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;OPCODE_EXPORTS"
|
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;OPCODE_EXPORTS"
|
||||||
ExceptionHandling="0"
|
ExceptionHandling="0"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="1"
|
RuntimeLibrary="3"
|
||||||
UsePrecompiledHeader="2"
|
UsePrecompiledHeader="2"
|
||||||
PrecompiledHeaderThrough="stdafx.h"
|
PrecompiledHeaderThrough="stdafx.h"
|
||||||
PrecompiledHeaderFile=".\Debug/Opcode.pch"
|
PrecompiledHeaderFile=".\Debug/Opcode.pch"
|
||||||
|
|||||||
Reference in New Issue
Block a user