determinism_check.yml 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. name: Determinism Check
  2. env:
  3. CONVEX_VS_MESH_HASH: '0x10139effe747511'
  4. RAGDOLL_HASH: '0x777396947c3fff6a'
  5. on:
  6. push:
  7. branches: [ master, 4.x ]
  8. paths-ignore:
  9. - 'Docs/**'
  10. - '**.md'
  11. pull_request:
  12. branches: [ master, 4.x ]
  13. paths-ignore:
  14. - 'Docs/**'
  15. - '**.md'
  16. jobs:
  17. linux:
  18. runs-on: ubuntu-latest
  19. name: Linux Determinism Check
  20. steps:
  21. - name: Checkout Code
  22. uses: actions/checkout@v4
  23. - name: Configure CMake
  24. run: cmake -B ${{github.workspace}}/Build/Linux_Distribution -DCMAKE_BUILD_TYPE=Distribution -DCMAKE_CXX_COMPILER=clang++ Build -DCROSS_PLATFORM_DETERMINISTIC=ON -DTARGET_VIEWER=OFF -DTARGET_SAMPLES=OFF -DTARGET_HELLO_WORLD=OFF -DTARGET_UNIT_TESTS=OFF
  25. - name: Build
  26. run: cmake --build ${{github.workspace}}/Build/Linux_Distribution
  27. - name: Test ConvexVsMesh
  28. working-directory: ${{github.workspace}}/Build/Linux_Distribution
  29. run: ./PerformanceTest -q=LinearCast -t=2 -s=ConvexVsMesh -validate_hash=${CONVEX_VS_MESH_HASH}
  30. - name: Test Ragdoll
  31. working-directory: ${{github.workspace}}/Build/Linux_Distribution
  32. run: ./PerformanceTest -q=LinearCast -t=2 -s=Ragdoll -validate_hash=${RAGDOLL_HASH}
  33. msvc_cl:
  34. runs-on: windows-latest
  35. name: Visual Studio CL Determinism Check
  36. steps:
  37. - name: Checkout Code
  38. uses: actions/checkout@v4
  39. - name: Add msbuild to PATH
  40. uses: microsoft/setup-msbuild@v2
  41. - name: Configure CMake
  42. run: cmake -B ${{github.workspace}}/Build/VS2022_CL -G "Visual Studio 17 2022" -A x64 Build -DCROSS_PLATFORM_DETERMINISTIC=ON -DTARGET_VIEWER=OFF -DTARGET_SAMPLES=OFF -DTARGET_HELLO_WORLD=OFF -DTARGET_UNIT_TESTS=OFF
  43. - name: Build
  44. run: msbuild Build\VS2022_CL\JoltPhysics.sln /property:Configuration=Distribution
  45. - name: Test ConvexVsMesh
  46. working-directory: ${{github.workspace}}/Build/VS2022_CL/Distribution
  47. run: ./PerformanceTest -q=LinearCast -t=2 -s=ConvexVsMesh "-validate_hash=$env:CONVEX_VS_MESH_HASH"
  48. - name: Test Ragdoll
  49. working-directory: ${{github.workspace}}/Build/VS2022_CL/Distribution
  50. run: ./PerformanceTest -q=LinearCast -t=2 -s=Ragdoll "-validate_hash=$env:RAGDOLL_HASH"
  51. msvc_cl_32:
  52. runs-on: windows-latest
  53. name: Visual Studio CL 32-bit Determinism Check
  54. steps:
  55. - name: Checkout Code
  56. uses: actions/checkout@v4
  57. - name: Add msbuild to PATH
  58. uses: microsoft/setup-msbuild@v2
  59. - name: Configure CMake
  60. working-directory: ${{github.workspace}}/Build
  61. run: ./cmake_vs2022_cl_32bit.bat -DCROSS_PLATFORM_DETERMINISTIC=ON -DTARGET_VIEWER=OFF -DTARGET_SAMPLES=OFF -DTARGET_HELLO_WORLD=OFF -DTARGET_UNIT_TESTS=OFF
  62. - name: Build
  63. run: msbuild Build\VS2022_CL_32BIT\JoltPhysics.sln /property:Configuration=Distribution
  64. - name: Test ConvexVsMesh
  65. working-directory: ${{github.workspace}}/Build/VS2022_CL_32BIT/Distribution
  66. run: ./PerformanceTest -q=LinearCast -t=2 -s=ConvexVsMesh "-validate_hash=$env:CONVEX_VS_MESH_HASH"
  67. - name: Test Ragdoll
  68. working-directory: ${{github.workspace}}/Build/VS2022_CL_32BIT/Distribution
  69. run: ./PerformanceTest -q=LinearCast -t=2 -s=Ragdoll "-validate_hash=$env:RAGDOLL_HASH"
  70. macos:
  71. runs-on: macos-latest
  72. name: macOS Determinism Check
  73. steps:
  74. - name: Checkout Code
  75. uses: actions/checkout@v4
  76. - name: Configure CMake
  77. run: cmake -B ${{github.workspace}}/Build/Linux_Distribution -DCMAKE_BUILD_TYPE=Distribution Build -DCROSS_PLATFORM_DETERMINISTIC=ON -DTARGET_VIEWER=OFF -DTARGET_SAMPLES=OFF -DTARGET_HELLO_WORLD=OFF -DTARGET_UNIT_TESTS=OFF -DUSE_AVX2=OFF -DUSE_AVX512=OFF -DUSE_LZCNT=OFF -DUSE_TZCNT=OFF
  78. - name: Build
  79. run: cmake --build ${{github.workspace}}/Build/Linux_Distribution
  80. - name: Test ConvexVsMesh
  81. working-directory: ${{github.workspace}}/Build/Linux_Distribution
  82. run: ./PerformanceTest -q=LinearCast -t=2 -s=ConvexVsMesh -validate_hash=${CONVEX_VS_MESH_HASH}
  83. - name: Test Ragdoll
  84. working-directory: ${{github.workspace}}/Build/Linux_Distribution
  85. run: ./PerformanceTest -q=LinearCast -t=2 -s=Ragdoll -validate_hash=${RAGDOLL_HASH}
  86. arm:
  87. runs-on: ubuntu-latest
  88. name: ARM Determinism Check
  89. steps:
  90. - name: Checkout Code
  91. uses: actions/checkout@v4
  92. - name: Update index
  93. run: sudo apt-get update
  94. - name: Install Cross Compiler
  95. run: sudo apt-get install gcc-11-aarch64-linux-gnu gcc-11-multilib g++-11-multilib libstdc++-11-dev-arm64-cross qemu-user -y
  96. - name: Configure CMake
  97. run: cmake -B ${{github.workspace}}/Build/Linux_Distribution -DCMAKE_BUILD_TYPE=Distribution -DCMAKE_CXX_COMPILER=clang++ Build -DCROSS_PLATFORM_DETERMINISTIC=ON -DCROSS_COMPILE_ARM=ON -DTARGET_VIEWER=OFF -DTARGET_SAMPLES=OFF -DTARGET_HELLO_WORLD=OFF -DTARGET_UNIT_TESTS=ON
  98. - name: Build
  99. run: cmake --build ${{github.workspace}}/Build/Linux_Distribution
  100. - name: Test
  101. working-directory: ${{github.workspace}}/Build/Linux_Distribution
  102. run: qemu-aarch64 -L /usr/aarch64-linux-gnu/ ./UnitTests
  103. - name: Test ConvexVsMesh
  104. working-directory: ${{github.workspace}}/Build/Linux_Distribution
  105. run: qemu-aarch64 -L /usr/aarch64-linux-gnu/ ./PerformanceTest -q=LinearCast -t=2 -s=ConvexVsMesh -validate_hash=${CONVEX_VS_MESH_HASH}
  106. - name: Test Ragdoll
  107. working-directory: ${{github.workspace}}/Build/Linux_Distribution
  108. run: qemu-aarch64 -L /usr/aarch64-linux-gnu/ ./PerformanceTest -q=LinearCast -t=2 -s=Ragdoll -validate_hash=${RAGDOLL_HASH}