aboutsummaryrefslogtreecommitdiff
path: root/NvCloth/compiler
diff options
context:
space:
mode:
authorMarijn Tamis <[email protected]>2017-07-31 13:52:20 +0200
committerMarijn Tamis <[email protected]>2017-07-31 13:52:20 +0200
commit223aff8b3f73bb786dce5c67b83ff55208d43969 (patch)
tree2e3e2760cb49afbf8d9379e23e27d175bbba27aa /NvCloth/compiler
parentRemove unused copy of PxShared. (diff)
downloadnvcloth-1.1.2.tar.xz
nvcloth-1.1.2.zip
NvCloth 1.1.2 Release. (22576033)v1.1.2
Diffstat (limited to 'NvCloth/compiler')
-rw-r--r--NvCloth/compiler/cmake/Linux/CMakeLists.txt6
-rw-r--r--NvCloth/compiler/cmake/Linux/NvCloth.cmake4
-rw-r--r--NvCloth/compiler/cmake/Mac/CMakeLists.txt10
-rw-r--r--NvCloth/compiler/cmake/Mac/NvCloth.cmake4
-rw-r--r--NvCloth/compiler/cmake/windows/CMakeLists.txt5
-rw-r--r--NvCloth/compiler/cmake/windows/NvCloth.cmake57
6 files changed, 61 insertions, 25 deletions
diff --git a/NvCloth/compiler/cmake/Linux/CMakeLists.txt b/NvCloth/compiler/cmake/Linux/CMakeLists.txt
index 9425dde..d6c8db6 100644
--- a/NvCloth/compiler/cmake/Linux/CMakeLists.txt
+++ b/NvCloth/compiler/cmake/Linux/CMakeLists.txt
@@ -1,9 +1,9 @@
cmake_minimum_required(VERSION 3.3)
-MESSAGE("[NvCloth]cmake/Linux/CMakeList.txt")
+MESSAGE("[NvCloth]cmake/linux/CMakeList.txt")
include(../common/CMakeLists.txt)
-IF(NOT DEFINED TARGET_BUILD_PLATFORM) # Not defined, default to Linux
+IF(NOT DEFINED TARGET_BUILD_PLATFORM) # Not defined, default to linux
SET(TARGET_BUILD_PLATFORM "linux")
ENDIF()
@@ -33,7 +33,7 @@ SET(CMAKE_CXX_FLAGS_RELEASE "-std=c++11 -O3 -g")
# Controls PX_NVTX for all projects on linux
SET(PHYSX_LINUX_ENABLE_NVTX 0)
-# Disable cuda and dx for all projects on Linux
+# Disable cuda and dx for all projects on linux
SET(PHYSX_LINUX_COMPILE_DEFS DISABLE_COMPUTE_PHYSX)
SET(PHYSX_LINUX_DEBUG_COMPILE_DEFS _DEBUG;PX_DEBUG=1;PX_CHECKED=1;PX_NVTX=${PHYSX_MAC_ENABLE_NVTX};PX_SUPPORT_PVD=0)
SET(PHYSX_LINUX_CHECKED_COMPILE_DEFS NDEBUG;PX_CHECKED=1;PX_NVTX=${PHYSX_MAC_ENABLE_NVTX};PX_SUPPORT_PVD=0)
diff --git a/NvCloth/compiler/cmake/Linux/NvCloth.cmake b/NvCloth/compiler/cmake/Linux/NvCloth.cmake
index f1b19d0..19038c6 100644
--- a/NvCloth/compiler/cmake/Linux/NvCloth.cmake
+++ b/NvCloth/compiler/cmake/Linux/NvCloth.cmake
@@ -2,7 +2,7 @@
# Build NvCloth (PROJECT not SOLUTION)
#
-MESSAGE("[NvCloth]cmake/Linux/NvCloth.cmake")
+MESSAGE("[NvCloth]cmake/linux/NvCloth.cmake")
SET(GW_DEPS_ROOT $ENV{GW_DEPS_ROOT})
FIND_PACKAGE(PxShared REQUIRED)
@@ -56,4 +56,4 @@ SET_TARGET_PROPERTIES(NvCloth PROPERTIES
# enable -fPIC so we can link static libs with the editor
SET_TARGET_PROPERTIES(NvCloth PROPERTIES POSITION_INDEPENDENT_CODE TRUE)
-MESSAGE("[NvCloth]cmake/Linux/NvCloth.cmake END") \ No newline at end of file
+MESSAGE("[NvCloth]cmake/linux/NvCloth.cmake END") \ No newline at end of file
diff --git a/NvCloth/compiler/cmake/Mac/CMakeLists.txt b/NvCloth/compiler/cmake/Mac/CMakeLists.txt
index 4e1c124..b99d60e 100644
--- a/NvCloth/compiler/cmake/Mac/CMakeLists.txt
+++ b/NvCloth/compiler/cmake/Mac/CMakeLists.txt
@@ -1,9 +1,9 @@
cmake_minimum_required(VERSION 3.3)
-MESSAGE("[NvCloth]cmake/Mac/CMakeList.txt")
+MESSAGE("[NvCloth]cmake/mac/CMakeList.txt")
include(../common/CMakeLists.txt)
-IF(NOT DEFINED TARGET_BUILD_PLATFORM) # Not defined, default to Mac
+IF(NOT DEFINED TARGET_BUILD_PLATFORM) # Not defined, default to mac
SET(TARGET_BUILD_PLATFORM "mac")
ENDIF()
@@ -32,10 +32,10 @@ SET(CMAKE_OSX_DEPLOYMENT_TARGET "10.9")
#set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym")
-# Controls PX_NVTX for all projects on Mac
+# Controls PX_NVTX for all projects on mac
SET(PHYSX_MAC_ENABLE_NVTX 0)
-# Disable cuda and dx for all projects on Mac
+# Disable cuda and dx for all projects on mac
SET(PHYSX_MAC_COMPILE_DEFS DISABLE_COMPUTE_PHYSX)
SET(PHYSX_MAC_DEBUG_COMPILE_DEFS _DEBUG;PX_DEBUG=1;PX_CHECKED=1;PX_NVTX=${PHYSX_MAC_ENABLE_NVTX};PX_SUPPORT_PVD=0)
SET(PHYSX_MAC_CHECKED_COMPILE_DEFS NDEBUG;PX_CHECKED=1;PX_NVTX=${PHYSX_MAC_ENABLE_NVTX};PX_SUPPORT_PVD=0)
@@ -49,7 +49,7 @@ FIND_PACKAGE(PxShared REQUIRED)
# such as - we don't want to be installing any built artifacts on this server, etc. So for now we hack it.
# Add PxShared as a dependency so that we can use project references
-ADD_SUBDIRECTORY(${PXSHARED_ROOT_DIR}/src/compiler/cmake/Mac "${CMAKE_CURRENT_BINARY_DIR}/pxshared_bin")
+ADD_SUBDIRECTORY(${PXSHARED_ROOT_DIR}/src/compiler/cmake/mac "${CMAKE_CURRENT_BINARY_DIR}/pxshared_bin")
# Include all of the projects
INCLUDE(NvCloth.cmake)
diff --git a/NvCloth/compiler/cmake/Mac/NvCloth.cmake b/NvCloth/compiler/cmake/Mac/NvCloth.cmake
index fc10992..faea6fd 100644
--- a/NvCloth/compiler/cmake/Mac/NvCloth.cmake
+++ b/NvCloth/compiler/cmake/Mac/NvCloth.cmake
@@ -2,7 +2,7 @@
# Build NvCloth (PROJECT not SOLUTION)
#
-MESSAGE("[NvCloth]cmake/Mac/NvCloth.cmake")
+MESSAGE("[NvCloth]cmake/mac/NvCloth.cmake")
SET(GW_DEPS_ROOT $ENV{GW_DEPS_ROOT})
FIND_PACKAGE(PxShared REQUIRED)
@@ -56,4 +56,4 @@ SET_TARGET_PROPERTIES(NvCloth PROPERTIES
# enable -fPIC so we can link static libs with the editor
SET_TARGET_PROPERTIES(NvCloth PROPERTIES POSITION_INDEPENDENT_CODE TRUE)
-MESSAGE("[NvCloth]cmake/Mac/NvCloth.cmake END") \ No newline at end of file
+MESSAGE("[NvCloth]cmake/mac/NvCloth.cmake END") \ No newline at end of file
diff --git a/NvCloth/compiler/cmake/windows/CMakeLists.txt b/NvCloth/compiler/cmake/windows/CMakeLists.txt
index 81d8289..9e8f66b 100644
--- a/NvCloth/compiler/cmake/windows/CMakeLists.txt
+++ b/NvCloth/compiler/cmake/windows/CMakeLists.txt
@@ -49,12 +49,7 @@ ENDIF(CMAKE_CL_64)
# Controls PX_NVTX for all projects on windows
SET(PHYSX_WINDOWS_ENABLE_NVTX 0)
-IF(DEFINED PX_GENERATE_GPU_PROJECTS)
SET(NVCLOTH_WINDOWS_COMPILE_DEFS WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_WINSOCK_DEPRECATED_NO_WARNINGS)
-ELSE()
-# Disable cuda and dx for all projects on windows
-SET(NVCLOTH_WINDOWS_COMPILE_DEFS DISABLE_COMPUTE_PHYSX;WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_WINSOCK_DEPRECATED_NO_WARNINGS)
-ENDIF()
SET(NVCLOTH_WINDOWS_DEBUG_COMPILE_DEFS _DEBUG;PX_DEBUG=1;PX_CHECKED=1;PX_NVTX=${PHYSX_WINDOWS_ENABLE_NVTX};)
SET(NVCLOTH_WINDOWS_CHECKED_COMPILE_DEFS NDEBUG;PX_CHECKED=1;PX_NVTX=${PHYSX_WINDOWS_ENABLE_NVTX};)
SET(NVCLOTH_WINDOWS_PROFILE_COMPILE_DEFS NDEBUG;PX_PROFILE=1;PX_NVTX=${PHYSX_WINDOWS_ENABLE_NVTX};)
diff --git a/NvCloth/compiler/cmake/windows/NvCloth.cmake b/NvCloth/compiler/cmake/windows/NvCloth.cmake
index c71c974..a867a75 100644
--- a/NvCloth/compiler/cmake/windows/NvCloth.cmake
+++ b/NvCloth/compiler/cmake/windows/NvCloth.cmake
@@ -4,15 +4,26 @@
MESSAGE("[NvCloth]cmake/windows/NvCloth.cmake")
+IF(NOT DEFINED NV_CLOTH_ENABLE_CUDA)
+SET(NV_CLOTH_ENABLE_CUDA 1)
+ENDIF()
+IF(NOT DEFINED NV_CLOTH_ENABLE_DX11)
+SET(NV_CLOTH_ENABLE_DX11 1)
+ENDIF()
+
SET(GW_DEPS_ROOT $ENV{GW_DEPS_ROOT})
-#FIND_PACKAGE(PxShared REQUIRED)
+IF(${NV_CLOTH_ENABLE_CUDA})
FIND_PACKAGE(CUDA 8 REQUIRED)
MESSAGE("Found CUDA:" ${CUDA_INCLUDE_DIRS})
+ENDIF()
SET(NVCLOTH_PLATFORM_INCLUDES PRIVATE ${CUDA_INCLUDE_DIRS})
-SET(NVCLOTH_PLATFORM_SOURCE_FILES
+
+SET(NVCLOTH_PLATFORM_SOURCE_FILES "" )
+IF(${NV_CLOTH_ENABLE_CUDA})
+LIST(APPEND NVCLOTH_PLATFORM_SOURCE_FILES
${PROJECT_ROOT_DIR}/src/cuda/CuCheckSuccess.h
${PROJECT_ROOT_DIR}/src/cuda/CuCloth.cpp
${PROJECT_ROOT_DIR}/src/cuda/CuCloth.h
@@ -33,9 +44,14 @@ SET(NVCLOTH_PLATFORM_SOURCE_FILES
${PROJECT_ROOT_DIR}/src/cuda/CuSelfCollision.h
${PROJECT_ROOT_DIR}/src/cuda/CuSolver.cpp
${PROJECT_ROOT_DIR}/src/cuda/CuSolver.h
-
${PROJECT_ROOT_DIR}/src/cuda/CuSolverKernel.h
${PROJECT_ROOT_DIR}/src/cuda/CuSolverKernelBlob.h
+)
+ENDIF()
+
+IF(${NV_CLOTH_ENABLE_DX11})
+LIST(APPEND NVCLOTH_PLATFORM_SOURCE_FILES
+
${PROJECT_ROOT_DIR}/src/dx/DxBatchedVector.h
${PROJECT_ROOT_DIR}/src/dx/DxCheckSuccess.h
${PROJECT_ROOT_DIR}/src/dx/DxCloth.cpp
@@ -60,6 +76,7 @@ SET(NVCLOTH_PLATFORM_SOURCE_FILES
#${PROJECT_ROOT_DIR}/src/neon/NeonSolverKernel.cpp
#${PROJECT_ROOT_DIR}/src/neon/SwCollisionHelpers.h
)
+ENDIF()
SET(NVCLOTH_AVX_SOURCE_FILES
${PROJECT_ROOT_DIR}/src/avx/SwSolveConstraints.cpp
@@ -69,16 +86,25 @@ set_source_files_properties(${NVCLOTH_AVX_SOURCE_FILES} PROPERTIES COMPILE_FLAGS
-
+SET(NVCLOTH_HLSL_FILES "")
+IF(${NV_CLOTH_ENABLE_DX11})
SET(NVCLOTH_HLSL_FILES
${PROJECT_ROOT_DIR}/src/dx/DxSolverKernel.hlsl
)
set_source_files_properties(${NVCLOTH_HLSL_FILES} PROPERTIES VS_SHADER_TYPE Compute VS_SHADER_MODEL 5.0 VS_SHADER_FLAGS "/Vn gDxSolverKernel /Fh ${PROJECT_ROOT_DIR}/src/dx/DxSolverKernelBlob.h")
+ENDIF()
+
SET(NVCLOTH_PLATFORM_SOURCE_FILES ${NVCLOTH_PLATFORM_SOURCE_FILES} ${NVCLOTH_HLSL_FILES} ${NVCLOTH_AVX_SOURCE_FILES})
+IF(${NV_CLOTH_ENABLE_CUDA})
set(
CUDA_NVCC_FLAGS
${CUDA_NVCC_FLAGS};
+
+ # Options are documented on http://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#command-option-types-and-notation
+ # Important: to be able to debug CUDA kernel (correct stepping and workable warp watches),
+ # you should add the -G (short for --device-debug) option to the line below.
+ # Don't forget to remove it afterwards, since the code execution will be very slow with this flag.
-use_fast_math -ftz=true -prec-div=false -prec-sqrt=false -lineinfo -gencode arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_50,code=compute_50 -D_USE_MATH_DEFINES -DNDEBUG -DPX_PROFILE=1
)
SET(NVCLOTH_CUDA_FILES
@@ -99,20 +125,35 @@ COMMAND ${CUDA_TOOLKIT_ROOT_DIR}/bin/bin2c.exe --name kCuSolverKernel ${CUDA_FAT
DEPENDS ${CUDA_FATBIN}
VERBATIM
)
+ENDIF()
SET(NVCLOTH_COMPILE_DEFS
NV_CLOTH_IMPORT=PX_DLL_EXPORT
- NV_CLOTH_ENABLE_DX11=1
- NV_CLOTH_ENABLE_CUDA=1
$<$<CONFIG:debug>:${NVCLOTH_WINDOWS_DEBUG_COMPILE_DEFS};PX_PHYSX_DLL_NAME_POSTFIX=DEBUG;>
$<$<CONFIG:checked>:${NVCLOTH_WINDOWS_CHECKED_COMPILE_DEFS};PX_PHYSX_DLL_NAME_POSTFIX=CHECKED;>
$<$<CONFIG:profile>:${NVCLOTH_WINDOWS_PROFILE_COMPILE_DEFS};PX_PHYSX_DLL_NAME_POSTFIX=PROFILE;>
$<$<CONFIG:release>:${NVCLOTH_WINDOWS_RELEASE_COMPILE_DEFS};>
)
-
-
+IF(${NV_CLOTH_ENABLE_DX11})
+LIST(APPEND NVCLOTH_COMPILE_DEFS
+ NV_CLOTH_ENABLE_DX11=1
+)
+ELSE()
+LIST(APPEND NVCLOTH_COMPILE_DEFS
+ NV_CLOTH_ENABLE_DX11=0
+)
+ENDIF()
+IF(${NV_CLOTH_ENABLE_CUDA})
+LIST(APPEND NVCLOTH_COMPILE_DEFS
+ NV_CLOTH_ENABLE_CUDA=1
+)
+ELSE()
+LIST(APPEND NVCLOTH_COMPILE_DEFS
+ NV_CLOTH_ENABLE_CUDA=0
+)
+ENDIF()
SET(NVCLOTH_LIBTYPE SHARED)