diff options
Diffstat (limited to 'extensions')
| -rw-r--r-- | extensions/compiler/makeandroid/Makefile | 19 | ||||
| -rw-r--r-- | extensions/compiler/makeandroid/Makefile.flexExtCUDA.mk | 48 | ||||
| -rw-r--r-- | extensions/compiler/makeandroid_aarch64/Makefile | 202 | ||||
| -rw-r--r-- | extensions/compiler/makeandroid_aarch64/Makefile.flexCUDA.mk | 227 | ||||
| -rw-r--r-- | extensions/compiler/makeandroid_aarch64/Makefile.flexExtCUDA.mk | 207 | ||||
| -rw-r--r-- | extensions/compiler/vc12win32/vc120.pdb | bin | 487424 -> 528384 bytes | |||
| -rw-r--r-- | extensions/compiler/vc12win64/vc120.pdb | bin | 479232 -> 528384 bytes | |||
| -rw-r--r-- | extensions/compiler/vc14win32/vc140.pdb | bin | 0 -> 405504 bytes | |||
| -rw-r--r-- | extensions/compiler/xpj/flexExtCUDA.xpj | 44 | ||||
| -rw-r--r-- | extensions/compiler/xpj/flexExtD3D12.xpj | 170 | ||||
| -rw-r--r-- | extensions/dx/flexExt.cpp | 2 | ||||
| -rw-r--r-- | extensions/flexExtContainer.cpp | 86 | ||||
| -rw-r--r-- | extensions/flexExtRigid.cpp | 51 | ||||
| -rw-r--r-- | extensions/flexExtSoft.cpp | 66 |
14 files changed, 1027 insertions, 95 deletions
diff --git a/extensions/compiler/makeandroid/Makefile b/extensions/compiler/makeandroid/Makefile index e03f411..865fd94 100644 --- a/extensions/compiler/makeandroid/Makefile +++ b/extensions/compiler/makeandroid/Makefile @@ -2,11 +2,11 @@ # Makefile generated by XPJ for android DEPSDIR = .deps -NDKROOT = "$(NDK_ROOT)"/"$(NDK_VERSION)" -NDK_BIN_DIR = "$(NDK_ROOT)"/"$(NDK_VERSION)"/toolchains/"$(NDK_TOOLCHAIN)"/prebuilt/"linux-x86_64"/bin +NDKROOT = ./../../../../../../external/android-ndk/android-ndk-r10e-linux +NDK_BIN_DIR = ./../../../../../../external/android-ndk/android-ndk-r10e-linux/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin NDK_PREFIX = arm-linux-androideabi- -JAVA_HOME = ./../xpj/"$(JAVA_HOME)" -ANT_TOOL = ./../xpj/"$(ANT_HOME}"/bin/ant +JAVA_HOME = ./../../../../../../external/java/jdk1.8.0_20 +ANT_TOOL = ./../../../../../../external/ant/apache-ant-1.8.2/bin/ant #default defines OBJS_DIR = build RMDIR = rm -fr @@ -23,22 +23,23 @@ OBJCOPY = $(NDK_BIN_DIR)/$(NDK_PREFIX)objcopy all: debug release -debug: build_flexExtCUDA_debug +debug: build_flexCUDA_debug build_flexExtCUDA_debug -release: build_flexExtCUDA_release +release: build_flexCUDA_release build_flexExtCUDA_release -clean: clean_flexExtCUDA_release clean_flexExtCUDA_debug +clean: clean_flexCUDA_release clean_flexCUDA_debug clean_flexExtCUDA_release clean_flexExtCUDA_debug rm -rf $(DEPSDIR) -clean_release: clean_flexExtCUDA_release +clean_release: clean_flexCUDA_release clean_flexExtCUDA_release rm -rf $(DEPSDIR) -clean_debug: clean_flexExtCUDA_debug +clean_debug: clean_flexCUDA_debug clean_flexExtCUDA_debug rm -rf $(DEPSDIR) +include Makefile.flexCUDA.mk include Makefile.flexExtCUDA.mk diff --git a/extensions/compiler/makeandroid/Makefile.flexExtCUDA.mk b/extensions/compiler/makeandroid/Makefile.flexExtCUDA.mk index f8bf780..cffe816 100644 --- a/extensions/compiler/makeandroid/Makefile.flexExtCUDA.mk +++ b/extensions/compiler/makeandroid/Makefile.flexExtCUDA.mk @@ -24,28 +24,32 @@ flexExtCUDA_debug_dep = $(flexExtCUDA_cpp_debug_dep) $(flexExtCUDA_cc_debug -include $(flexExtCUDA_debug_dep) flexExtCUDA_release_hpaths := flexExtCUDA_release_hpaths += ./../../.. -flexExtCUDA_release_hpaths += $(NDK_ROOT)/$(NDK_VERSION)/platforms/android-15/arch-arm/usr/include -flexExtCUDA_release_hpaths += $(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/stlport/stlport -flexExtCUDA_release_hpaths += $(CUDA_PATH)/targets/armv7-linux-androideabi/include +flexExtCUDA_release_hpaths += ./../../../../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-15/arch-arm/usr/include +flexExtCUDA_release_hpaths += ./../../../../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/stlport/stlport +flexExtCUDA_release_hpaths += ./../../../../../../external/CUDA/cuda-6.0-linux/targets/armv7-linux-androideabi/include flexExtCUDA_release_lpaths := -flexExtCUDA_release_lpaths += $(CUDA_PATH)/targets/armv7-linux-androideabi/lib +flexExtCUDA_release_lpaths += ./../../../../../../external/CUDA/cuda-6.0-linux/targets/armv7-linux-androideabi/lib +flexExtCUDA_release_lpaths += ./../../../lib/android +flexExtCUDA_release_lpaths += ./../../../../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/stlport/libs/armeabi-v7a flexExtCUDA_release_lpaths += ./../../../lib/android -flexExtCUDA_release_lpaths += $(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/stlport/libs/armeabi-v7a flexExtCUDA_release_defines := $(flexExtCUDA_custom_defines) flexExtCUDA_release_defines += android flexExtCUDA_release_defines += ANDROID=1 flexExtCUDA_release_defines += ANDROID_PLAT=1 flexExtCUDA_release_defines += DISABLE_IMPORTGL flexExtCUDA_release_libraries := +flexExtCUDA_release_libraries += NvFlexReleaseCUDA_armv7l flexExtCUDA_release_libraries += ./../../../lib/android/libNvFlexRelease_armv7l.a flexExtCUDA_release_common_cflags := $(flexExtCUDA_custom_cflags) flexExtCUDA_release_common_cflags += -MMD flexExtCUDA_release_common_cflags += $(addprefix -D, $(flexExtCUDA_release_defines)) flexExtCUDA_release_common_cflags += $(addprefix -I, $(flexExtCUDA_release_hpaths)) -flexExtCUDA_release_common_cflags += -Wall -std=c++11 -fpermissive -fno-strict-aliasing -fno-rtti -fno-exceptions -flexExtCUDA_release_common_cflags += -O3 -ffast-math flexExtCUDA_release_cflags := $(flexExtCUDA_release_common_cflags) +flexExtCUDA_release_cflags += -Wall -std=c++11 -fpermissive -fno-strict-aliasing -fno-rtti -fno-exceptions +flexExtCUDA_release_cflags += -O3 -ffast-math flexExtCUDA_release_cppflags := $(flexExtCUDA_release_common_cflags) +flexExtCUDA_release_cppflags += -Wall -std=c++11 -fpermissive -fno-strict-aliasing -fno-rtti -fno-exceptions +flexExtCUDA_release_cppflags += -O3 -ffast-math flexExtCUDA_release_lflags := $(flexExtCUDA_custom_lflags) flexExtCUDA_release_lflags += $(addprefix -L, $(flexExtCUDA_release_lpaths)) flexExtCUDA_release_lflags += -Wl,--start-group $(addprefix -l, $(flexExtCUDA_release_libraries)) -Wl,--end-group @@ -68,15 +72,15 @@ postbuild_flexExtCUDA_release: mainbuild_flexExtCUDA_release mainbuild_flexExtCUDA_release: prebuild_flexExtCUDA_release $(flexExtCUDA_release_bin) prebuild_flexExtCUDA_release: -$(flexExtCUDA_release_bin): $(flexExtCUDA_release_obj) +$(flexExtCUDA_release_bin): $(flexExtCUDA_release_obj) build_flexCUDA_release mkdir -p `dirname ./../../../lib/android/libflexExt_cuda_release_armv7l.a` @$(AR) rcs $(flexExtCUDA_release_bin) $(flexExtCUDA_release_obj) $(ECHO) building $@ complete! $(flexExtCUDA_release_cuda_cuda_flexExt_cu_o): $(flexExtCUDA_cuda_cuda_flexExt_cu) @mkdir -p `dirname $(OBJS_DIR)/flexExtCUDA_release/cuda/cudaflexExt.o` - $(ECHO) "$(CUDA_PATH)/bin/nvcc" -ccbin $(NDK_ROOT)/$(NDK_VERSION)/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++ -target-cpu-arch=ARM -m32 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"$(CUDA_PATH)/targets/armv7-linux-androideabi/include" -I"../../.." -I"$(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/stlport/stlport" -I"$(NDK_ROOT)/$(NDK_VERSION)/platforms/android-15/arch-arm/usr/include" --compile "./../../cuda/flexExt.cu" -o "$(OBJS_DIR)/flexExtCUDA_release/cuda/cudaflexExt.o" - "$(CUDA_PATH)/bin/nvcc" -ccbin $(NDK_ROOT)/$(NDK_VERSION)/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++ -target-cpu-arch=ARM -m32 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"$(CUDA_PATH)/targets/armv7-linux-androideabi/include" -I"../../.." -I"$(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/stlport/stlport" -I"$(NDK_ROOT)/$(NDK_VERSION)/platforms/android-15/arch-arm/usr/include" --compile "./../../cuda/flexExt.cu" -o "$(OBJS_DIR)/flexExtCUDA_release/cuda/cudaflexExt.o" + $(ECHO) "../../../../../../external/CUDA/cuda-6.0-linux/bin/nvcc" -ccbin /home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++ -target-cpu-arch=ARM -m32 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"../../../../../../external/CUDA/cuda-6.0-linux/targets/armv7-linux-androideabi/include" -I"../../.." -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/stlport/stlport" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-15/arch-arm/usr/include" --compile "../../cuda/flexExt.cu" -o "$(OBJS_DIR)/flexExtCUDA_release/cuda/cudaflexExt.o" + "../../../../../../external/CUDA/cuda-6.0-linux/bin/nvcc" -ccbin /home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++ -target-cpu-arch=ARM -m32 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"../../../../../../external/CUDA/cuda-6.0-linux/targets/armv7-linux-androideabi/include" -I"../../.." -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/stlport/stlport" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-15/arch-arm/usr/include" --compile "../../cuda/flexExt.cu" -o "$(OBJS_DIR)/flexExtCUDA_release/cuda/cudaflexExt.o" flexExtCUDA_release_DEPDIR = $(dir $(@))/$(*F) $(flexExtCUDA_release_cpp_o): $(flexExtCUDA_release_objsdir)/%.o: @@ -111,28 +115,32 @@ $(flexExtCUDA_release_c_o): $(flexExtCUDA_release_objsdir)/%.o: flexExtCUDA_debug_hpaths := flexExtCUDA_debug_hpaths += ./../../.. -flexExtCUDA_debug_hpaths += $(NDK_ROOT)/$(NDK_VERSION)/platforms/android-15/arch-arm/usr/include -flexExtCUDA_debug_hpaths += $(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/stlport/stlport -flexExtCUDA_debug_hpaths += $(CUDA_PATH)/targets/armv7-linux-androideabi/include +flexExtCUDA_debug_hpaths += ./../../../../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-15/arch-arm/usr/include +flexExtCUDA_debug_hpaths += ./../../../../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/stlport/stlport +flexExtCUDA_debug_hpaths += ./../../../../../../external/CUDA/cuda-6.0-linux/targets/armv7-linux-androideabi/include flexExtCUDA_debug_lpaths := -flexExtCUDA_debug_lpaths += $(CUDA_PATH)/targets/armv7-linux-androideabi/lib +flexExtCUDA_debug_lpaths += ./../../../../../../external/CUDA/cuda-6.0-linux/targets/armv7-linux-androideabi/lib +flexExtCUDA_debug_lpaths += ./../../../lib/android +flexExtCUDA_debug_lpaths += ./../../../../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/stlport/libs/armeabi-v7a flexExtCUDA_debug_lpaths += ./../../../lib/android -flexExtCUDA_debug_lpaths += $(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/stlport/libs/armeabi-v7a flexExtCUDA_debug_defines := $(flexExtCUDA_custom_defines) flexExtCUDA_debug_defines += android flexExtCUDA_debug_defines += ANDROID=1 flexExtCUDA_debug_defines += ANDROID_PLAT=1 flexExtCUDA_debug_defines += DISABLE_IMPORTGL flexExtCUDA_debug_libraries := +flexExtCUDA_debug_libraries += NvFlexDebugCUDA_armv7l flexExtCUDA_debug_libraries += ./../../../lib/android/libNvFlexDebug_armv7l.a flexExtCUDA_debug_common_cflags := $(flexExtCUDA_custom_cflags) flexExtCUDA_debug_common_cflags += -MMD flexExtCUDA_debug_common_cflags += $(addprefix -D, $(flexExtCUDA_debug_defines)) flexExtCUDA_debug_common_cflags += $(addprefix -I, $(flexExtCUDA_debug_hpaths)) -flexExtCUDA_debug_common_cflags += -Wall -std=c++11 -fpermissive -fno-strict-aliasing -fno-rtti -fno-exceptions -flexExtCUDA_debug_common_cflags += -g -O0 flexExtCUDA_debug_cflags := $(flexExtCUDA_debug_common_cflags) +flexExtCUDA_debug_cflags += -Wall -std=c++11 -fpermissive -fno-strict-aliasing -fno-rtti -fno-exceptions +flexExtCUDA_debug_cflags += -g -O0 flexExtCUDA_debug_cppflags := $(flexExtCUDA_debug_common_cflags) +flexExtCUDA_debug_cppflags += -Wall -std=c++11 -fpermissive -fno-strict-aliasing -fno-rtti -fno-exceptions +flexExtCUDA_debug_cppflags += -g -O0 flexExtCUDA_debug_lflags := $(flexExtCUDA_custom_lflags) flexExtCUDA_debug_lflags += $(addprefix -L, $(flexExtCUDA_debug_lpaths)) flexExtCUDA_debug_lflags += -Wl,--start-group $(addprefix -l, $(flexExtCUDA_debug_libraries)) -Wl,--end-group @@ -155,15 +163,15 @@ postbuild_flexExtCUDA_debug: mainbuild_flexExtCUDA_debug mainbuild_flexExtCUDA_debug: prebuild_flexExtCUDA_debug $(flexExtCUDA_debug_bin) prebuild_flexExtCUDA_debug: -$(flexExtCUDA_debug_bin): $(flexExtCUDA_debug_obj) +$(flexExtCUDA_debug_bin): $(flexExtCUDA_debug_obj) build_flexCUDA_debug mkdir -p `dirname ./../../../lib/android/libflexExt_cuda_debug_armv7l.a` @$(AR) rcs $(flexExtCUDA_debug_bin) $(flexExtCUDA_debug_obj) $(ECHO) building $@ complete! $(flexExtCUDA_debug_cuda_cuda_flexExt_cu_o): $(flexExtCUDA_cuda_cuda_flexExt_cu) @mkdir -p `dirname $(OBJS_DIR)/flexExtCUDA_debug/cuda/cudaflexExt.o` - $(ECHO) "$(CUDA_PATH)/bin/nvcc" -ccbin $(NDK_ROOT)/$(NDK_VERSION)/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++ -target-cpu-arch=ARM -m32 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"$(CUDA_PATH)/targets/armv7-linux-androideabi/include" -I"../../.." -I"$(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/stlport/stlport" -I"$(NDK_ROOT)/$(NDK_VERSION)/platforms/android-15/arch-arm/usr/include" --compile "./../../cuda/flexExt.cu" -o "$(OBJS_DIR)/flexExtCUDA_debug/cuda/cudaflexExt.o" - "$(CUDA_PATH)/bin/nvcc" -ccbin $(NDK_ROOT)/$(NDK_VERSION)/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++ -target-cpu-arch=ARM -m32 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"$(CUDA_PATH)/targets/armv7-linux-androideabi/include" -I"../../.." -I"$(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/stlport/stlport" -I"$(NDK_ROOT)/$(NDK_VERSION)/platforms/android-15/arch-arm/usr/include" --compile "./../../cuda/flexExt.cu" -o "$(OBJS_DIR)/flexExtCUDA_debug/cuda/cudaflexExt.o" + $(ECHO) "../../../../../../external/CUDA/cuda-6.0-linux/bin/nvcc" -ccbin /home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++ -target-cpu-arch=ARM -m32 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"../../../../../../external/CUDA/cuda-6.0-linux/targets/armv7-linux-androideabi/include" -I"../../.." -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/stlport/stlport" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-15/arch-arm/usr/include" --compile "../../cuda/flexExt.cu" -o "$(OBJS_DIR)/flexExtCUDA_debug/cuda/cudaflexExt.o" + "../../../../../../external/CUDA/cuda-6.0-linux/bin/nvcc" -ccbin /home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++ -target-cpu-arch=ARM -m32 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"../../../../../../external/CUDA/cuda-6.0-linux/targets/armv7-linux-androideabi/include" -I"../../.." -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/stlport/stlport" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-15/arch-arm/usr/include" --compile "../../cuda/flexExt.cu" -o "$(OBJS_DIR)/flexExtCUDA_debug/cuda/cudaflexExt.o" flexExtCUDA_debug_DEPDIR = $(dir $(@))/$(*F) $(flexExtCUDA_debug_cpp_o): $(flexExtCUDA_debug_objsdir)/%.o: diff --git a/extensions/compiler/makeandroid_aarch64/Makefile b/extensions/compiler/makeandroid_aarch64/Makefile new file mode 100644 index 0000000..c8cd55c --- /dev/null +++ b/extensions/compiler/makeandroid_aarch64/Makefile @@ -0,0 +1,202 @@ +#!/usr/bin/make +# Makefile generated by XPJ for android_aarch64 + +DEPSDIR = .deps +NDKROOT = "$(NDK_ROOT)"/"$(NDK_VERSION)" +NDK_BIN_DIR = "$(NDK_ROOT)"/"$(NDK_VERSION)"/toolchains/"$(NDK_TOOLCHAIN)"/prebuilt/"linux-x86_64"/bin +NDK_PREFIX = aarch64-linux-android- +JAVA_HOME = ./../xpj/"$(JAVA_HOME)" +ANT_TOOL = ./../xpj/"$(ANT_HOME}"/bin/ant +#default defines +OBJS_DIR = build +RMDIR = rm -fr +ECHO = echo +CCLD = $(NDK_BIN_DIR)/$(NDK_PREFIX)g++ +CXX = $(NDK_BIN_DIR)/$(NDK_PREFIX)g++ +CC = $(NDK_BIN_DIR)/$(NDK_PREFIX)gcc +RANLIB = $(NDK_BIN_DIR)/$(NDK_PREFIX)ranlib +AR = $(NDK_BIN_DIR)/$(NDK_PREFIX)ar +STRIP = $(NDK_BIN_DIR)/$(NDK_PREFIX)strip +OBJDUMP = $(NDK_BIN_DIR)/$(NDK_PREFIX)objdump +OBJCOPY = $(NDK_BIN_DIR)/$(NDK_PREFIX)objcopy +-include Makedefs.ANDROID.mk + +all: debug release + +debug: build_flexExtCUDA_debug + +release: build_flexExtCUDA_release + +clean: clean_flexExtCUDA_release clean_flexExtCUDA_debug + rm -rf $(DEPSDIR) + + +clean_release: clean_flexExtCUDA_release + rm -rf $(DEPSDIR) + + +clean_debug: clean_flexExtCUDA_debug + rm -rf $(DEPSDIR) + + +include Makefile.flexExtCUDA.mk + + +# Disable implicit rules to speedup build +.SUFFIXES: +SUFFIXES := +%.out: +%.a: +%.ln: +%.o: +%: %.o +%.c: +%: %.c +%.ln: %.c +%.o: %.c +%.cc: +%: %.cc +%.o: %.cc +%.C: +%: %.C +%.o: %.C +%.cpp: +%: %.cpp +%.o: %.cpp +%.p: +%: %.p +%.o: %.p +%.f: +%: + %.f%.o: %.f +%.F: +%: %.F +%.o: %.F +%.f: %.F +%.r: +%: %.r +%.o: %.r +%.f: %.r +%.y: +%.ln: %.y +%.c: %.y +%.l: +%.ln: %.l +%.c: %.l +%.r: %.l +%.s: +%: %.s +%.o: %.s +%.S: +%: %.S +%.o: %.S +%.s: %.S +%.mod: +%: %.mod +%.o: %.mod +%.sym: +%.def: +%.sym: %.def +%.h: +%.info: +%.dvi: +%.tex: +%.dvi: %.tex +%.texinfo: +%.info: %.texinfo +%.dvi: %.texinfo +%.texi: +%.info: %.texi +%.dvi: %.texi +%.txinfo: +%.info: %.txinfo +%.dvi: %.txinfo +%.w: +%.c: %.w +%.tex: %.w +%.ch: +%.web: +%.p: %.web +%.tex: %.web +%.sh: +%: %.sh +%.elc: +%.el: +(%): % +%.out: % +%.c: %.w %.ch +%.tex: %.w %.ch +%: %,v +%: RCS/%,v +%: RCS/% +%: s.% +%: SCCS/s.% +.web.p: +.l.r: +.dvi: +.F.o: +.l: +.y.ln: +.o: +.y: +.def.sym: +.p.o: +.p: +.txinfo.dvi: +.a: +.l.ln: +.w.c: +.texi.dvi: +.sh: +.cc: +.cc.o: +.def: +.c.o: +.r.o: +.r: +.info: +.elc: +.l.c: +.out: +.C: +.r.f: +.S: +.texinfo.info: +.c: +.w.tex: +.c.ln: +.s.o: +.s: +.texinfo.dvi: +.el: +.texinfo: +.y.c: +.web.tex: +.texi.info: +.DEFAULT: +.h: +.tex.dvi: +.cpp.o: +.cpp: +.C.o: +.ln: +.texi: +.txinfo: +.tex: +.txinfo.info: +.ch: +.S.s: +.mod: +.mod.o: +.F.f: +.w: +.S.o: +.F: +.web: +.sym: +.f: +.f.o: +export VERBOSE +ifndef VERBOSE +.SILENT: +endif diff --git a/extensions/compiler/makeandroid_aarch64/Makefile.flexCUDA.mk b/extensions/compiler/makeandroid_aarch64/Makefile.flexCUDA.mk new file mode 100644 index 0000000..bdfb113 --- /dev/null +++ b/extensions/compiler/makeandroid_aarch64/Makefile.flexCUDA.mk @@ -0,0 +1,227 @@ +# Makefile generated by XPJ for android_aarch64 +-include Makefile.custom +ProjectName = flexCUDA +flexCUDA_cppfiles += ./../../../src/cuda/util.cpp +flexCUDA_cuda_src_cuda_bvh_cu += ./../../../src/cuda/bvh.cu +flexCUDA_cuda_src_cuda_flex_cu += ./../../../src/cuda/flex.cu +flexCUDA_cuda_src_cuda_sort_cu += ./../../../src/cuda/sort.cu + +flexCUDA_cpp_release_dep = $(addprefix $(DEPSDIR)/flexCUDA/release/, $(subst ./, , $(subst ../, , $(patsubst %.cpp, %.cpp.P, $(flexCUDA_cppfiles))))) +flexCUDA_cc_release_dep = $(addprefix $(DEPSDIR)/, $(subst ./, , $(subst ../, , $(patsubst %.cc, %.cc.release.P, $(flexCUDA_ccfiles))))) +flexCUDA_c_release_dep = $(addprefix $(DEPSDIR)/flexCUDA/release/, $(subst ./, , $(subst ../, , $(patsubst %.c, %.c.P, $(flexCUDA_cfiles))))) +flexCUDA_release_dep = $(flexCUDA_cpp_release_dep) $(flexCUDA_cc_release_dep) $(flexCUDA_c_release_dep) +-include $(flexCUDA_release_dep) +flexCUDA_cpp_debug_dep = $(addprefix $(DEPSDIR)/flexCUDA/debug/, $(subst ./, , $(subst ../, , $(patsubst %.cpp, %.cpp.P, $(flexCUDA_cppfiles))))) +flexCUDA_cc_debug_dep = $(addprefix $(DEPSDIR)/, $(subst ./, , $(subst ../, , $(patsubst %.cc, %.cc.debug.P, $(flexCUDA_ccfiles))))) +flexCUDA_c_debug_dep = $(addprefix $(DEPSDIR)/flexCUDA/debug/, $(subst ./, , $(subst ../, , $(patsubst %.c, %.c.P, $(flexCUDA_cfiles))))) +flexCUDA_debug_dep = $(flexCUDA_cpp_debug_dep) $(flexCUDA_cc_debug_dep) $(flexCUDA_c_debug_dep) +-include $(flexCUDA_debug_dep) +flexCUDA_release_hpaths := +flexCUDA_release_hpaths += ./../../.. +flexCUDA_release_hpaths += ./../../../../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-21/arch-arm64/usr/include +flexCUDA_release_hpaths += ./../../../../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/include +flexCUDA_release_hpaths += ./../../../../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include +flexCUDA_release_hpaths += ./../../../../../../external/CUDA/cuda-7.0-linux/targets/aarch64-linux-androideabi/include +flexCUDA_release_lpaths := +flexCUDA_release_lpaths += ./../../../../../../external/CUDA/cuda-7.0-linux/targets/aarch64-linux-androideabi/lib +flexCUDA_release_lpaths += ./../../../lib/android +flexCUDA_release_lpaths += ./../../../../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a +flexCUDA_release_defines := $(flexCUDA_custom_defines) +flexCUDA_release_defines += android +flexCUDA_release_defines += ANDROID=1 +flexCUDA_release_defines += ANDROID_PLAT=1 +flexCUDA_release_defines += DISABLE_IMPORTGL +flexCUDA_release_libraries := +flexCUDA_release_common_cflags := $(flexCUDA_custom_cflags) +flexCUDA_release_common_cflags += -MMD +flexCUDA_release_common_cflags += $(addprefix -D, $(flexCUDA_release_defines)) +flexCUDA_release_common_cflags += $(addprefix -I, $(flexCUDA_release_hpaths)) +flexCUDA_release_cflags := $(flexCUDA_release_common_cflags) +flexCUDA_release_cflags += -Wall -std=c++11 -fpermissive -fno-strict-aliasing -fno-rtti -fno-exceptions +flexCUDA_release_cflags += -O3 -ffast-math +flexCUDA_release_cppflags := $(flexCUDA_release_common_cflags) +flexCUDA_release_cppflags += -Wall -std=c++11 -fpermissive -fno-strict-aliasing -fno-rtti -fno-exceptions +flexCUDA_release_cppflags += -O3 -ffast-math +flexCUDA_release_lflags := $(flexCUDA_custom_lflags) +flexCUDA_release_lflags += $(addprefix -L, $(flexCUDA_release_lpaths)) +flexCUDA_release_lflags += -Wl,--start-group $(addprefix -l, $(flexCUDA_release_libraries)) -Wl,--end-group +flexCUDA_release_objsdir = $(OBJS_DIR)/flexCUDA_release +flexCUDA_release_cpp_o = $(addprefix $(flexCUDA_release_objsdir)/, $(subst ./, , $(subst ../, , $(patsubst %.cpp, %.cpp.o, $(flexCUDA_cppfiles))))) +flexCUDA_release_cc_o = $(addprefix $(flexCUDA_release_objsdir)/, $(subst ./, , $(subst ../, , $(patsubst %.cc, %.cc.o, $(flexCUDA_ccfiles))))) +flexCUDA_release_c_o = $(addprefix $(flexCUDA_release_objsdir)/, $(subst ./, , $(subst ../, , $(patsubst %.c, %.c.o, $(flexCUDA_cfiles))))) +flexCUDA_release_cuda_src_cuda_bvh_cu_o += $(OBJS_DIR)/flexCUDA_release/cuda/src/cudabvh.o +flexCUDA_release_cuda_src_cuda_flex_cu_o += $(OBJS_DIR)/flexCUDA_release/cuda/src/cudaflex.o +flexCUDA_release_cuda_src_cuda_sort_cu_o += $(OBJS_DIR)/flexCUDA_release/cuda/src/cudasort.o +flexCUDA_release_obj = $(flexCUDA_release_cpp_o) $(flexCUDA_release_cc_o) $(flexCUDA_release_c_o) $(flexCUDA_release_cuda_src_cuda_bvh_cu_o) $(flexCUDA_release_cuda_src_cuda_flex_cu_o) $(flexCUDA_release_cuda_src_cuda_sort_cu_o) +flexCUDA_release_bin := ./../../../lib/android_aarch64/libNvFlexReleaseCUDA_aarch64.a + +clean_flexCUDA_release: + @$(ECHO) clean flexCUDA release + @$(RMDIR) $(flexCUDA_release_objsdir) + @$(RMDIR) $(flexCUDA_release_bin) + @$(RMDIR) $(DEPSDIR)/flexCUDA/release + +build_flexCUDA_release: postbuild_flexCUDA_release +postbuild_flexCUDA_release: mainbuild_flexCUDA_release +mainbuild_flexCUDA_release: prebuild_flexCUDA_release $(flexCUDA_release_bin) +prebuild_flexCUDA_release: + +$(flexCUDA_release_bin): $(flexCUDA_release_obj) + mkdir -p `dirname ./../../../lib/android_aarch64/libNvFlexReleaseCUDA_aarch64.a` + @$(AR) rcs $(flexCUDA_release_bin) $(flexCUDA_release_obj) + $(ECHO) building $@ complete! + +$(flexCUDA_release_cuda_src_cuda_bvh_cu_o): $(flexCUDA_cuda_src_cuda_bvh_cu) + @mkdir -p `dirname $(OBJS_DIR)/flexCUDA_release/cuda/src/cudabvh.o` + $(ECHO) "../../../../../../external/CUDA/cuda-7.0-linux/bin/nvcc" -ccbin /home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++ -target-cpu-arch=ARM -m64 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"../../../../../../external/CUDA/cuda-7.0-linux/targets/aarch64-linux-androideabi/include" -I"../../.." -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-21/arch-arm64/usr/include" --compile "../../../src/cuda/bvh.cu" -o "$(OBJS_DIR)/flexCUDA_release/cuda/src/cudabvh.o" + "../../../../../../external/CUDA/cuda-7.0-linux/bin/nvcc" -ccbin /home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++ -target-cpu-arch=ARM -m64 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"../../../../../../external/CUDA/cuda-7.0-linux/targets/aarch64-linux-androideabi/include" -I"../../.." -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-21/arch-arm64/usr/include" --compile "../../../src/cuda/bvh.cu" -o "$(OBJS_DIR)/flexCUDA_release/cuda/src/cudabvh.o" + +$(flexCUDA_release_cuda_src_cuda_flex_cu_o): $(flexCUDA_cuda_src_cuda_flex_cu) + @mkdir -p `dirname $(OBJS_DIR)/flexCUDA_release/cuda/src/cudaflex.o` + $(ECHO) "../../../../../../external/CUDA/cuda-7.0-linux/bin/nvcc" -ccbin /home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++ -target-cpu-arch=ARM -m64 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"../../../../../../external/CUDA/cuda-7.0-linux/targets/aarch64-linux-androideabi/include" -I"../../.." -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-21/arch-arm64/usr/include" --compile "../../../src/cuda/flex.cu" -o "$(OBJS_DIR)/flexCUDA_release/cuda/src/cudaflex.o" + "../../../../../../external/CUDA/cuda-7.0-linux/bin/nvcc" -ccbin /home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++ -target-cpu-arch=ARM -m64 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"../../../../../../external/CUDA/cuda-7.0-linux/targets/aarch64-linux-androideabi/include" -I"../../.." -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-21/arch-arm64/usr/include" --compile "../../../src/cuda/flex.cu" -o "$(OBJS_DIR)/flexCUDA_release/cuda/src/cudaflex.o" + +$(flexCUDA_release_cuda_src_cuda_sort_cu_o): $(flexCUDA_cuda_src_cuda_sort_cu) + @mkdir -p `dirname $(OBJS_DIR)/flexCUDA_release/cuda/src/cudasort.o` + $(ECHO) "../../../../../../external/CUDA/cuda-7.0-linux/bin/nvcc" -ccbin /home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++ -target-cpu-arch=ARM -m64 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"../../../../../../external/CUDA/cuda-7.0-linux/targets/aarch64-linux-androideabi/include" -I"../../.." -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-21/arch-arm64/usr/include" --compile "../../../src/cuda/sort.cu" -o "$(OBJS_DIR)/flexCUDA_release/cuda/src/cudasort.o" + "../../../../../../external/CUDA/cuda-7.0-linux/bin/nvcc" -ccbin /home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++ -target-cpu-arch=ARM -m64 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"../../../../../../external/CUDA/cuda-7.0-linux/targets/aarch64-linux-androideabi/include" -I"../../.." -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-21/arch-arm64/usr/include" --compile "../../../src/cuda/sort.cu" -o "$(OBJS_DIR)/flexCUDA_release/cuda/src/cudasort.o" + +flexCUDA_release_DEPDIR = $(dir $(@))/$(*F) +$(flexCUDA_release_cpp_o): $(flexCUDA_release_objsdir)/%.o: + $(ECHO) flexCUDA: compiling release $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexCUDA_release_objsdir),, $@))), $(flexCUDA_cppfiles))... + mkdir -p $(dir $(@)) + $(CXX) $(flexCUDA_release_cppflags) -c $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexCUDA_release_objsdir),, $@))), $(flexCUDA_cppfiles)) -o $@ + @mkdir -p $(dir $(addprefix $(DEPSDIR)/flexCUDA/release/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexCUDA_release_objsdir),, $@))), $(flexCUDA_cppfiles)))))) + cp $(flexCUDA_release_DEPDIR).d $(addprefix $(DEPSDIR)/flexCUDA/release/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexCUDA_release_objsdir),, $@))), $(flexCUDA_cppfiles))))).P; \ + sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \ + -e '/^$$/ d' -e 's/$$/ :/' < $(flexCUDA_release_DEPDIR).d >> $(addprefix $(DEPSDIR)/flexCUDA/release/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexCUDA_release_objsdir),, $@))), $(flexCUDA_cppfiles))))).P; \ + rm -f $(flexCUDA_release_DEPDIR).d + +$(flexCUDA_release_cc_o): $(flexCUDA_release_objsdir)/%.o: + $(ECHO) flexCUDA: compiling release $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexCUDA_release_objsdir),, $@))), $(flexCUDA_ccfiles))... + mkdir -p $(dir $(@)) + $(CXX) $(flexCUDA_release_cppflags) -c $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexCUDA_release_objsdir),, $@))), $(flexCUDA_ccfiles)) -o $@ + mkdir -p $(dir $(addprefix $(DEPSDIR)/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexCUDA_release_objsdir),, $@))), $(flexCUDA_ccfiles)))))) + cp $(flexCUDA_release_DEPDIR).d $(addprefix $(DEPSDIR)/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexCUDA_release_objsdir),, $@))), $(flexCUDA_ccfiles))))).release.P; \ + sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \ + -e '/^$$/ d' -e 's/$$/ :/' < $(flexCUDA_release_DEPDIR).d >> $(addprefix $(DEPSDIR)/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexCUDA_release_objsdir),, $@))), $(flexCUDA_ccfiles))))).release.P; \ + rm -f $(flexCUDA_release_DEPDIR).d + +$(flexCUDA_release_c_o): $(flexCUDA_release_objsdir)/%.o: + $(ECHO) flexCUDA: compiling release $(filter %$(strip $(subst .c.o,.c, $(subst $(flexCUDA_release_objsdir),, $@))), $(flexCUDA_cfiles))... + mkdir -p $(dir $(@)) + $(CC) $(flexCUDA_release_cflags) -c $(filter %$(strip $(subst .c.o,.c, $(subst $(flexCUDA_release_objsdir),, $@))), $(flexCUDA_cfiles)) -o $@ + @mkdir -p $(dir $(addprefix $(DEPSDIR)/flexCUDA/release/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .c.o,.c, $(subst $(flexCUDA_release_objsdir),, $@))), $(flexCUDA_cfiles)))))) + cp $(flexCUDA_release_DEPDIR).d $(addprefix $(DEPSDIR)/flexCUDA/release/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .c.o,.c, $(subst $(flexCUDA_release_objsdir),, $@))), $(flexCUDA_cfiles))))).P; \ + sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \ + -e '/^$$/ d' -e 's/$$/ :/' < $(flexCUDA_release_DEPDIR).d >> $(addprefix $(DEPSDIR)/flexCUDA/release/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .c.o,.c, $(subst $(flexCUDA_release_objsdir),, $@))), $(flexCUDA_cfiles))))).P; \ + rm -f $(flexCUDA_release_DEPDIR).d + +flexCUDA_debug_hpaths := +flexCUDA_debug_hpaths += ./../../.. +flexCUDA_debug_hpaths += ./../../../../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-21/arch-arm64/usr/include +flexCUDA_debug_hpaths += ./../../../../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/include +flexCUDA_debug_hpaths += ./../../../../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include +flexCUDA_debug_hpaths += ./../../../../../../external/CUDA/cuda-7.0-linux/targets/aarch64-linux-androideabi/include +flexCUDA_debug_lpaths := +flexCUDA_debug_lpaths += ./../../../../../../external/CUDA/cuda-7.0-linux/targets/aarch64-linux-androideabi/lib +flexCUDA_debug_lpaths += ./../../../lib/android +flexCUDA_debug_lpaths += ./../../../../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a +flexCUDA_debug_defines := $(flexCUDA_custom_defines) +flexCUDA_debug_defines += android +flexCUDA_debug_defines += ANDROID=1 +flexCUDA_debug_defines += ANDROID_PLAT=1 +flexCUDA_debug_defines += DISABLE_IMPORTGL +flexCUDA_debug_libraries := +flexCUDA_debug_common_cflags := $(flexCUDA_custom_cflags) +flexCUDA_debug_common_cflags += -MMD +flexCUDA_debug_common_cflags += $(addprefix -D, $(flexCUDA_debug_defines)) +flexCUDA_debug_common_cflags += $(addprefix -I, $(flexCUDA_debug_hpaths)) +flexCUDA_debug_cflags := $(flexCUDA_debug_common_cflags) +flexCUDA_debug_cflags += -Wall -std=c++11 -fpermissive -fno-strict-aliasing -fno-rtti -fno-exceptions +flexCUDA_debug_cflags += -g -O0 +flexCUDA_debug_cppflags := $(flexCUDA_debug_common_cflags) +flexCUDA_debug_cppflags += -Wall -std=c++11 -fpermissive -fno-strict-aliasing -fno-rtti -fno-exceptions +flexCUDA_debug_cppflags += -g -O0 +flexCUDA_debug_lflags := $(flexCUDA_custom_lflags) +flexCUDA_debug_lflags += $(addprefix -L, $(flexCUDA_debug_lpaths)) +flexCUDA_debug_lflags += -Wl,--start-group $(addprefix -l, $(flexCUDA_debug_libraries)) -Wl,--end-group +flexCUDA_debug_objsdir = $(OBJS_DIR)/flexCUDA_debug +flexCUDA_debug_cpp_o = $(addprefix $(flexCUDA_debug_objsdir)/, $(subst ./, , $(subst ../, , $(patsubst %.cpp, %.cpp.o, $(flexCUDA_cppfiles))))) +flexCUDA_debug_cc_o = $(addprefix $(flexCUDA_debug_objsdir)/, $(subst ./, , $(subst ../, , $(patsubst %.cc, %.cc.o, $(flexCUDA_ccfiles))))) +flexCUDA_debug_c_o = $(addprefix $(flexCUDA_debug_objsdir)/, $(subst ./, , $(subst ../, , $(patsubst %.c, %.c.o, $(flexCUDA_cfiles))))) +flexCUDA_debug_cuda_src_cuda_bvh_cu_o += $(OBJS_DIR)/flexCUDA_debug/cuda/src/cudabvh.o +flexCUDA_debug_cuda_src_cuda_flex_cu_o += $(OBJS_DIR)/flexCUDA_debug/cuda/src/cudaflex.o +flexCUDA_debug_cuda_src_cuda_sort_cu_o += $(OBJS_DIR)/flexCUDA_debug/cuda/src/cudasort.o +flexCUDA_debug_obj = $(flexCUDA_debug_cpp_o) $(flexCUDA_debug_cc_o) $(flexCUDA_debug_c_o) $(flexCUDA_debug_cuda_src_cuda_bvh_cu_o) $(flexCUDA_debug_cuda_src_cuda_flex_cu_o) $(flexCUDA_debug_cuda_src_cuda_sort_cu_o) +flexCUDA_debug_bin := ./../../../lib/android_aarch64/libNvFlexDebugCUDA_aarch64.a + +clean_flexCUDA_debug: + @$(ECHO) clean flexCUDA debug + @$(RMDIR) $(flexCUDA_debug_objsdir) + @$(RMDIR) $(flexCUDA_debug_bin) + @$(RMDIR) $(DEPSDIR)/flexCUDA/debug + +build_flexCUDA_debug: postbuild_flexCUDA_debug +postbuild_flexCUDA_debug: mainbuild_flexCUDA_debug +mainbuild_flexCUDA_debug: prebuild_flexCUDA_debug $(flexCUDA_debug_bin) +prebuild_flexCUDA_debug: + +$(flexCUDA_debug_bin): $(flexCUDA_debug_obj) + mkdir -p `dirname ./../../../lib/android_aarch64/libNvFlexDebugCUDA_aarch64.a` + @$(AR) rcs $(flexCUDA_debug_bin) $(flexCUDA_debug_obj) + $(ECHO) building $@ complete! + +$(flexCUDA_debug_cuda_src_cuda_bvh_cu_o): $(flexCUDA_cuda_src_cuda_bvh_cu) + @mkdir -p `dirname $(OBJS_DIR)/flexCUDA_debug/cuda/src/cudabvh.o` + $(ECHO) "../../../../../../external/CUDA/cuda-7.0-linux/bin/nvcc" -ccbin /home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++ -target-cpu-arch=ARM -m64 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"../../../../../../external/CUDA/cuda-7.0-linux/targets/aarch64-linux-androideabi/include" -I"../../.." -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-21/arch-arm64/usr/include" --compile "../../../src/cuda/bvh.cu" -o "$(OBJS_DIR)/flexCUDA_debug/cuda/src/cudabvh.o" + "../../../../../../external/CUDA/cuda-7.0-linux/bin/nvcc" -ccbin /home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++ -target-cpu-arch=ARM -m64 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"../../../../../../external/CUDA/cuda-7.0-linux/targets/aarch64-linux-androideabi/include" -I"../../.." -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-21/arch-arm64/usr/include" --compile "../../../src/cuda/bvh.cu" -o "$(OBJS_DIR)/flexCUDA_debug/cuda/src/cudabvh.o" + +$(flexCUDA_debug_cuda_src_cuda_flex_cu_o): $(flexCUDA_cuda_src_cuda_flex_cu) + @mkdir -p `dirname $(OBJS_DIR)/flexCUDA_debug/cuda/src/cudaflex.o` + $(ECHO) "../../../../../../external/CUDA/cuda-7.0-linux/bin/nvcc" -ccbin /home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++ -target-cpu-arch=ARM -m64 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"../../../../../../external/CUDA/cuda-7.0-linux/targets/aarch64-linux-androideabi/include" -I"../../.." -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-21/arch-arm64/usr/include" --compile "../../../src/cuda/flex.cu" -o "$(OBJS_DIR)/flexCUDA_debug/cuda/src/cudaflex.o" + "../../../../../../external/CUDA/cuda-7.0-linux/bin/nvcc" -ccbin /home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++ -target-cpu-arch=ARM -m64 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"../../../../../../external/CUDA/cuda-7.0-linux/targets/aarch64-linux-androideabi/include" -I"../../.." -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-21/arch-arm64/usr/include" --compile "../../../src/cuda/flex.cu" -o "$(OBJS_DIR)/flexCUDA_debug/cuda/src/cudaflex.o" + +$(flexCUDA_debug_cuda_src_cuda_sort_cu_o): $(flexCUDA_cuda_src_cuda_sort_cu) + @mkdir -p `dirname $(OBJS_DIR)/flexCUDA_debug/cuda/src/cudasort.o` + $(ECHO) "../../../../../../external/CUDA/cuda-7.0-linux/bin/nvcc" -ccbin /home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++ -target-cpu-arch=ARM -m64 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"../../../../../../external/CUDA/cuda-7.0-linux/targets/aarch64-linux-androideabi/include" -I"../../.." -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-21/arch-arm64/usr/include" --compile "../../../src/cuda/sort.cu" -o "$(OBJS_DIR)/flexCUDA_debug/cuda/src/cudasort.o" + "../../../../../../external/CUDA/cuda-7.0-linux/bin/nvcc" -ccbin /home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++ -target-cpu-arch=ARM -m64 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"../../../../../../external/CUDA/cuda-7.0-linux/targets/aarch64-linux-androideabi/include" -I"../../.." -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-21/arch-arm64/usr/include" --compile "../../../src/cuda/sort.cu" -o "$(OBJS_DIR)/flexCUDA_debug/cuda/src/cudasort.o" + +flexCUDA_debug_DEPDIR = $(dir $(@))/$(*F) +$(flexCUDA_debug_cpp_o): $(flexCUDA_debug_objsdir)/%.o: + $(ECHO) flexCUDA: compiling debug $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexCUDA_debug_objsdir),, $@))), $(flexCUDA_cppfiles))... + mkdir -p $(dir $(@)) + $(CXX) $(flexCUDA_debug_cppflags) -c $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexCUDA_debug_objsdir),, $@))), $(flexCUDA_cppfiles)) -o $@ + @mkdir -p $(dir $(addprefix $(DEPSDIR)/flexCUDA/debug/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexCUDA_debug_objsdir),, $@))), $(flexCUDA_cppfiles)))))) + cp $(flexCUDA_debug_DEPDIR).d $(addprefix $(DEPSDIR)/flexCUDA/debug/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexCUDA_debug_objsdir),, $@))), $(flexCUDA_cppfiles))))).P; \ + sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \ + -e '/^$$/ d' -e 's/$$/ :/' < $(flexCUDA_debug_DEPDIR).d >> $(addprefix $(DEPSDIR)/flexCUDA/debug/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexCUDA_debug_objsdir),, $@))), $(flexCUDA_cppfiles))))).P; \ + rm -f $(flexCUDA_debug_DEPDIR).d + +$(flexCUDA_debug_cc_o): $(flexCUDA_debug_objsdir)/%.o: + $(ECHO) flexCUDA: compiling debug $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexCUDA_debug_objsdir),, $@))), $(flexCUDA_ccfiles))... + mkdir -p $(dir $(@)) + $(CXX) $(flexCUDA_debug_cppflags) -c $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexCUDA_debug_objsdir),, $@))), $(flexCUDA_ccfiles)) -o $@ + mkdir -p $(dir $(addprefix $(DEPSDIR)/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexCUDA_debug_objsdir),, $@))), $(flexCUDA_ccfiles)))))) + cp $(flexCUDA_debug_DEPDIR).d $(addprefix $(DEPSDIR)/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexCUDA_debug_objsdir),, $@))), $(flexCUDA_ccfiles))))).debug.P; \ + sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \ + -e '/^$$/ d' -e 's/$$/ :/' < $(flexCUDA_debug_DEPDIR).d >> $(addprefix $(DEPSDIR)/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexCUDA_debug_objsdir),, $@))), $(flexCUDA_ccfiles))))).debug.P; \ + rm -f $(flexCUDA_debug_DEPDIR).d + +$(flexCUDA_debug_c_o): $(flexCUDA_debug_objsdir)/%.o: + $(ECHO) flexCUDA: compiling debug $(filter %$(strip $(subst .c.o,.c, $(subst $(flexCUDA_debug_objsdir),, $@))), $(flexCUDA_cfiles))... + mkdir -p $(dir $(@)) + $(CC) $(flexCUDA_debug_cflags) -c $(filter %$(strip $(subst .c.o,.c, $(subst $(flexCUDA_debug_objsdir),, $@))), $(flexCUDA_cfiles)) -o $@ + @mkdir -p $(dir $(addprefix $(DEPSDIR)/flexCUDA/debug/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .c.o,.c, $(subst $(flexCUDA_debug_objsdir),, $@))), $(flexCUDA_cfiles)))))) + cp $(flexCUDA_debug_DEPDIR).d $(addprefix $(DEPSDIR)/flexCUDA/debug/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .c.o,.c, $(subst $(flexCUDA_debug_objsdir),, $@))), $(flexCUDA_cfiles))))).P; \ + sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \ + -e '/^$$/ d' -e 's/$$/ :/' < $(flexCUDA_debug_DEPDIR).d >> $(addprefix $(DEPSDIR)/flexCUDA/debug/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .c.o,.c, $(subst $(flexCUDA_debug_objsdir),, $@))), $(flexCUDA_cfiles))))).P; \ + rm -f $(flexCUDA_debug_DEPDIR).d + +clean_flexCUDA: clean_flexCUDA_release clean_flexCUDA_debug + rm -rf $(DEPSDIR) + +export VERBOSE +ifndef VERBOSE +.SILENT: +endif diff --git a/extensions/compiler/makeandroid_aarch64/Makefile.flexExtCUDA.mk b/extensions/compiler/makeandroid_aarch64/Makefile.flexExtCUDA.mk new file mode 100644 index 0000000..6f5c84a --- /dev/null +++ b/extensions/compiler/makeandroid_aarch64/Makefile.flexExtCUDA.mk @@ -0,0 +1,207 @@ +# Makefile generated by XPJ for android_aarch64 +-include Makefile.custom +ProjectName = flexExtCUDA +flexExtCUDA_cppfiles += ./../../flexExtCloth.cpp +flexExtCUDA_cppfiles += ./../../flexExtContainer.cpp +flexExtCUDA_cppfiles += ./../../flexExtMovingFrame.cpp +flexExtCUDA_cppfiles += ./../../flexExtRigid.cpp +flexExtCUDA_cppfiles += ./../../flexExtSoft.cpp +flexExtCUDA_cuda_cuda_flexExt_cu += ./../../cuda/flexExt.cu +flexExtCUDA_cppfiles += ./../../../core/sdf.cpp +flexExtCUDA_cppfiles += ./../../../core/voxelize.cpp +flexExtCUDA_cppfiles += ./../../../core/maths.cpp +flexExtCUDA_cppfiles += ./../../../core/aabbtree.cpp + +flexExtCUDA_cpp_release_dep = $(addprefix $(DEPSDIR)/flexExtCUDA/release/, $(subst ./, , $(subst ../, , $(patsubst %.cpp, %.cpp.P, $(flexExtCUDA_cppfiles))))) +flexExtCUDA_cc_release_dep = $(addprefix $(DEPSDIR)/, $(subst ./, , $(subst ../, , $(patsubst %.cc, %.cc.release.P, $(flexExtCUDA_ccfiles))))) +flexExtCUDA_c_release_dep = $(addprefix $(DEPSDIR)/flexExtCUDA/release/, $(subst ./, , $(subst ../, , $(patsubst %.c, %.c.P, $(flexExtCUDA_cfiles))))) +flexExtCUDA_release_dep = $(flexExtCUDA_cpp_release_dep) $(flexExtCUDA_cc_release_dep) $(flexExtCUDA_c_release_dep) +-include $(flexExtCUDA_release_dep) +flexExtCUDA_cpp_debug_dep = $(addprefix $(DEPSDIR)/flexExtCUDA/debug/, $(subst ./, , $(subst ../, , $(patsubst %.cpp, %.cpp.P, $(flexExtCUDA_cppfiles))))) +flexExtCUDA_cc_debug_dep = $(addprefix $(DEPSDIR)/, $(subst ./, , $(subst ../, , $(patsubst %.cc, %.cc.debug.P, $(flexExtCUDA_ccfiles))))) +flexExtCUDA_c_debug_dep = $(addprefix $(DEPSDIR)/flexExtCUDA/debug/, $(subst ./, , $(subst ../, , $(patsubst %.c, %.c.P, $(flexExtCUDA_cfiles))))) +flexExtCUDA_debug_dep = $(flexExtCUDA_cpp_debug_dep) $(flexExtCUDA_cc_debug_dep) $(flexExtCUDA_c_debug_dep) +-include $(flexExtCUDA_debug_dep) +flexExtCUDA_release_hpaths := +flexExtCUDA_release_hpaths += ./../../.. +flexExtCUDA_release_hpaths += $(NDK_ROOT)/$(NDK_VERSION)/platforms/android-21/arch-arm64/usr/include +flexExtCUDA_release_hpaths += $(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/gnu-libstdc++/4.9/include +flexExtCUDA_release_hpaths += $(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include +flexExtCUDA_release_hpaths += $(CUDA_PATH)/targets/aarch64-linux-androideabi/include +flexExtCUDA_release_lpaths := +flexExtCUDA_release_lpaths += $(CUDA_PATH)/targets/aarch64-linux-androideabi/lib +flexExtCUDA_release_lpaths += ./../../../lib/android +flexExtCUDA_release_lpaths += $(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a +flexExtCUDA_release_defines := $(flexExtCUDA_custom_defines) +flexExtCUDA_release_defines += android +flexExtCUDA_release_defines += ANDROID=1 +flexExtCUDA_release_defines += ANDROID_PLAT=1 +flexExtCUDA_release_defines += DISABLE_IMPORTGL +flexExtCUDA_release_libraries := +flexExtCUDA_release_libraries += ./../../../lib/android_aarch64/libNvFlexRelease_aarch64.a +flexExtCUDA_release_common_cflags := $(flexExtCUDA_custom_cflags) +flexExtCUDA_release_common_cflags += -MMD +flexExtCUDA_release_common_cflags += $(addprefix -D, $(flexExtCUDA_release_defines)) +flexExtCUDA_release_common_cflags += $(addprefix -I, $(flexExtCUDA_release_hpaths)) +flexExtCUDA_release_common_cflags += -Wall -std=c++11 -fpermissive -fno-strict-aliasing -fno-rtti -fno-exceptions +flexExtCUDA_release_common_cflags += -O3 -ffast-math +flexExtCUDA_release_cflags := $(flexExtCUDA_release_common_cflags) +flexExtCUDA_release_cppflags := $(flexExtCUDA_release_common_cflags) +flexExtCUDA_release_lflags := $(flexExtCUDA_custom_lflags) +flexExtCUDA_release_lflags += $(addprefix -L, $(flexExtCUDA_release_lpaths)) +flexExtCUDA_release_lflags += -Wl,--start-group $(addprefix -l, $(flexExtCUDA_release_libraries)) -Wl,--end-group +flexExtCUDA_release_objsdir = $(OBJS_DIR)/flexExtCUDA_release +flexExtCUDA_release_cpp_o = $(addprefix $(flexExtCUDA_release_objsdir)/, $(subst ./, , $(subst ../, , $(patsubst %.cpp, %.cpp.o, $(flexExtCUDA_cppfiles))))) +flexExtCUDA_release_cc_o = $(addprefix $(flexExtCUDA_release_objsdir)/, $(subst ./, , $(subst ../, , $(patsubst %.cc, %.cc.o, $(flexExtCUDA_ccfiles))))) +flexExtCUDA_release_c_o = $(addprefix $(flexExtCUDA_release_objsdir)/, $(subst ./, , $(subst ../, , $(patsubst %.c, %.c.o, $(flexExtCUDA_cfiles))))) +flexExtCUDA_release_cuda_cuda_flexExt_cu_o += $(OBJS_DIR)/flexExtCUDA_release/cuda/cudaflexExt.o +flexExtCUDA_release_obj = $(flexExtCUDA_release_cpp_o) $(flexExtCUDA_release_cc_o) $(flexExtCUDA_release_c_o) $(flexExtCUDA_release_cuda_cuda_flexExt_cu_o) +flexExtCUDA_release_bin := ./../../../lib/android_aarch64/libNvFlexExtReleaseCUDA_aarch64.a + +clean_flexExtCUDA_release: + @$(ECHO) clean flexExtCUDA release + @$(RMDIR) $(flexExtCUDA_release_objsdir) + @$(RMDIR) $(flexExtCUDA_release_bin) + @$(RMDIR) $(DEPSDIR)/flexExtCUDA/release + +build_flexExtCUDA_release: postbuild_flexExtCUDA_release +postbuild_flexExtCUDA_release: mainbuild_flexExtCUDA_release +mainbuild_flexExtCUDA_release: prebuild_flexExtCUDA_release $(flexExtCUDA_release_bin) +prebuild_flexExtCUDA_release: + +$(flexExtCUDA_release_bin): $(flexExtCUDA_release_obj) + mkdir -p `dirname ./../../../lib/android_aarch64/libNvFlexExtReleaseCUDA_aarch64.a` + @$(AR) rcs $(flexExtCUDA_release_bin) $(flexExtCUDA_release_obj) + $(ECHO) building $@ complete! + +$(flexExtCUDA_release_cuda_cuda_flexExt_cu_o): $(flexExtCUDA_cuda_cuda_flexExt_cu) + @mkdir -p `dirname $(OBJS_DIR)/flexExtCUDA_release/cuda/cudaflexExt.o` + $(ECHO) "$(CUDA_PATH)/bin/nvcc" -ccbin $(NDK_ROOT)/$(NDK_VERSION)/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++ -target-cpu-arch=ARM -m64 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"$(CUDA_PATH)/targets/aarch64-linux-androideabi/include" -I"../../.." -I"$(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"$(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" -I"$(NDK_ROOT)/$(NDK_VERSION)/platforms/android-21/arch-arm64/usr/include" --compile "./../../cuda/flexExt.cu" -o "$(OBJS_DIR)/flexExtCUDA_release/cuda/cudaflexExt.o" + "$(CUDA_PATH)/bin/nvcc" -ccbin $(NDK_ROOT)/$(NDK_VERSION)/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++ -target-cpu-arch=ARM -m64 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"$(CUDA_PATH)/targets/aarch64-linux-androideabi/include" -I"../../.." -I"$(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"$(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" -I"$(NDK_ROOT)/$(NDK_VERSION)/platforms/android-21/arch-arm64/usr/include" --compile "./../../cuda/flexExt.cu" -o "$(OBJS_DIR)/flexExtCUDA_release/cuda/cudaflexExt.o" + +flexExtCUDA_release_DEPDIR = $(dir $(@))/$(*F) +$(flexExtCUDA_release_cpp_o): $(flexExtCUDA_release_objsdir)/%.o: + $(ECHO) flexExtCUDA: compiling release $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexExtCUDA_release_objsdir),, $@))), $(flexExtCUDA_cppfiles))... + mkdir -p $(dir $(@)) + $(CXX) $(flexExtCUDA_release_cppflags) -c $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexExtCUDA_release_objsdir),, $@))), $(flexExtCUDA_cppfiles)) -o $@ + @mkdir -p $(dir $(addprefix $(DEPSDIR)/flexExtCUDA/release/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexExtCUDA_release_objsdir),, $@))), $(flexExtCUDA_cppfiles)))))) + cp $(flexExtCUDA_release_DEPDIR).d $(addprefix $(DEPSDIR)/flexExtCUDA/release/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexExtCUDA_release_objsdir),, $@))), $(flexExtCUDA_cppfiles))))).P; \ + sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \ + -e '/^$$/ d' -e 's/$$/ :/' < $(flexExtCUDA_release_DEPDIR).d >> $(addprefix $(DEPSDIR)/flexExtCUDA/release/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexExtCUDA_release_objsdir),, $@))), $(flexExtCUDA_cppfiles))))).P; \ + rm -f $(flexExtCUDA_release_DEPDIR).d + +$(flexExtCUDA_release_cc_o): $(flexExtCUDA_release_objsdir)/%.o: + $(ECHO) flexExtCUDA: compiling release $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexExtCUDA_release_objsdir),, $@))), $(flexExtCUDA_ccfiles))... + mkdir -p $(dir $(@)) + $(CXX) $(flexExtCUDA_release_cppflags) -c $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexExtCUDA_release_objsdir),, $@))), $(flexExtCUDA_ccfiles)) -o $@ + mkdir -p $(dir $(addprefix $(DEPSDIR)/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexExtCUDA_release_objsdir),, $@))), $(flexExtCUDA_ccfiles)))))) + cp $(flexExtCUDA_release_DEPDIR).d $(addprefix $(DEPSDIR)/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexExtCUDA_release_objsdir),, $@))), $(flexExtCUDA_ccfiles))))).release.P; \ + sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \ + -e '/^$$/ d' -e 's/$$/ :/' < $(flexExtCUDA_release_DEPDIR).d >> $(addprefix $(DEPSDIR)/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexExtCUDA_release_objsdir),, $@))), $(flexExtCUDA_ccfiles))))).release.P; \ + rm -f $(flexExtCUDA_release_DEPDIR).d + +$(flexExtCUDA_release_c_o): $(flexExtCUDA_release_objsdir)/%.o: + $(ECHO) flexExtCUDA: compiling release $(filter %$(strip $(subst .c.o,.c, $(subst $(flexExtCUDA_release_objsdir),, $@))), $(flexExtCUDA_cfiles))... + mkdir -p $(dir $(@)) + $(CC) $(flexExtCUDA_release_cflags) -c $(filter %$(strip $(subst .c.o,.c, $(subst $(flexExtCUDA_release_objsdir),, $@))), $(flexExtCUDA_cfiles)) -o $@ + @mkdir -p $(dir $(addprefix $(DEPSDIR)/flexExtCUDA/release/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .c.o,.c, $(subst $(flexExtCUDA_release_objsdir),, $@))), $(flexExtCUDA_cfiles)))))) + cp $(flexExtCUDA_release_DEPDIR).d $(addprefix $(DEPSDIR)/flexExtCUDA/release/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .c.o,.c, $(subst $(flexExtCUDA_release_objsdir),, $@))), $(flexExtCUDA_cfiles))))).P; \ + sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \ + -e '/^$$/ d' -e 's/$$/ :/' < $(flexExtCUDA_release_DEPDIR).d >> $(addprefix $(DEPSDIR)/flexExtCUDA/release/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .c.o,.c, $(subst $(flexExtCUDA_release_objsdir),, $@))), $(flexExtCUDA_cfiles))))).P; \ + rm -f $(flexExtCUDA_release_DEPDIR).d + +flexExtCUDA_debug_hpaths := +flexExtCUDA_debug_hpaths += ./../../.. +flexExtCUDA_debug_hpaths += $(NDK_ROOT)/$(NDK_VERSION)/platforms/android-21/arch-arm64/usr/include +flexExtCUDA_debug_hpaths += $(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/gnu-libstdc++/4.9/include +flexExtCUDA_debug_hpaths += $(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include +flexExtCUDA_debug_hpaths += $(CUDA_PATH)/targets/aarch64-linux-androideabi/include +flexExtCUDA_debug_lpaths := +flexExtCUDA_debug_lpaths += $(CUDA_PATH)/targets/aarch64-linux-androideabi/lib +flexExtCUDA_debug_lpaths += ./../../../lib/android +flexExtCUDA_debug_lpaths += $(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a +flexExtCUDA_debug_defines := $(flexExtCUDA_custom_defines) +flexExtCUDA_debug_defines += android +flexExtCUDA_debug_defines += ANDROID=1 +flexExtCUDA_debug_defines += ANDROID_PLAT=1 +flexExtCUDA_debug_defines += DISABLE_IMPORTGL +flexExtCUDA_debug_libraries := +flexExtCUDA_debug_libraries += ./../../../lib/android_aarch64/libNvFlexDebug_aarch64.a +flexExtCUDA_debug_common_cflags := $(flexExtCUDA_custom_cflags) +flexExtCUDA_debug_common_cflags += -MMD +flexExtCUDA_debug_common_cflags += $(addprefix -D, $(flexExtCUDA_debug_defines)) +flexExtCUDA_debug_common_cflags += $(addprefix -I, $(flexExtCUDA_debug_hpaths)) +flexExtCUDA_debug_common_cflags += -Wall -std=c++11 -fpermissive -fno-strict-aliasing -fno-rtti -fno-exceptions +flexExtCUDA_debug_common_cflags += -g -O0 +flexExtCUDA_debug_cflags := $(flexExtCUDA_debug_common_cflags) +flexExtCUDA_debug_cppflags := $(flexExtCUDA_debug_common_cflags) +flexExtCUDA_debug_lflags := $(flexExtCUDA_custom_lflags) +flexExtCUDA_debug_lflags += $(addprefix -L, $(flexExtCUDA_debug_lpaths)) +flexExtCUDA_debug_lflags += -Wl,--start-group $(addprefix -l, $(flexExtCUDA_debug_libraries)) -Wl,--end-group +flexExtCUDA_debug_objsdir = $(OBJS_DIR)/flexExtCUDA_debug +flexExtCUDA_debug_cpp_o = $(addprefix $(flexExtCUDA_debug_objsdir)/, $(subst ./, , $(subst ../, , $(patsubst %.cpp, %.cpp.o, $(flexExtCUDA_cppfiles))))) +flexExtCUDA_debug_cc_o = $(addprefix $(flexExtCUDA_debug_objsdir)/, $(subst ./, , $(subst ../, , $(patsubst %.cc, %.cc.o, $(flexExtCUDA_ccfiles))))) +flexExtCUDA_debug_c_o = $(addprefix $(flexExtCUDA_debug_objsdir)/, $(subst ./, , $(subst ../, , $(patsubst %.c, %.c.o, $(flexExtCUDA_cfiles))))) +flexExtCUDA_debug_cuda_cuda_flexExt_cu_o += $(OBJS_DIR)/flexExtCUDA_debug/cuda/cudaflexExt.o +flexExtCUDA_debug_obj = $(flexExtCUDA_debug_cpp_o) $(flexExtCUDA_debug_cc_o) $(flexExtCUDA_debug_c_o) $(flexExtCUDA_debug_cuda_cuda_flexExt_cu_o) +flexExtCUDA_debug_bin := ./../../../lib/android_aarch64/libNvFlexExtDebugCUDA_aarch64.a + +clean_flexExtCUDA_debug: + @$(ECHO) clean flexExtCUDA debug + @$(RMDIR) $(flexExtCUDA_debug_objsdir) + @$(RMDIR) $(flexExtCUDA_debug_bin) + @$(RMDIR) $(DEPSDIR)/flexExtCUDA/debug + +build_flexExtCUDA_debug: postbuild_flexExtCUDA_debug +postbuild_flexExtCUDA_debug: mainbuild_flexExtCUDA_debug +mainbuild_flexExtCUDA_debug: prebuild_flexExtCUDA_debug $(flexExtCUDA_debug_bin) +prebuild_flexExtCUDA_debug: + +$(flexExtCUDA_debug_bin): $(flexExtCUDA_debug_obj) + mkdir -p `dirname ./../../../lib/android_aarch64/libNvFlexExtDebugCUDA_aarch64.a` + @$(AR) rcs $(flexExtCUDA_debug_bin) $(flexExtCUDA_debug_obj) + $(ECHO) building $@ complete! + +$(flexExtCUDA_debug_cuda_cuda_flexExt_cu_o): $(flexExtCUDA_cuda_cuda_flexExt_cu) + @mkdir -p `dirname $(OBJS_DIR)/flexExtCUDA_debug/cuda/cudaflexExt.o` + $(ECHO) "$(CUDA_PATH)/bin/nvcc" -ccbin $(NDK_ROOT)/$(NDK_VERSION)/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++ -target-cpu-arch=ARM -m64 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"$(CUDA_PATH)/targets/aarch64-linux-androideabi/include" -I"../../.." -I"$(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"$(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" -I"$(NDK_ROOT)/$(NDK_VERSION)/platforms/android-21/arch-arm64/usr/include" --compile "./../../cuda/flexExt.cu" -o "$(OBJS_DIR)/flexExtCUDA_debug/cuda/cudaflexExt.o" + "$(CUDA_PATH)/bin/nvcc" -ccbin $(NDK_ROOT)/$(NDK_VERSION)/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++ -target-cpu-arch=ARM -m64 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"$(CUDA_PATH)/targets/aarch64-linux-androideabi/include" -I"../../.." -I"$(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"$(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" -I"$(NDK_ROOT)/$(NDK_VERSION)/platforms/android-21/arch-arm64/usr/include" --compile "./../../cuda/flexExt.cu" -o "$(OBJS_DIR)/flexExtCUDA_debug/cuda/cudaflexExt.o" + +flexExtCUDA_debug_DEPDIR = $(dir $(@))/$(*F) +$(flexExtCUDA_debug_cpp_o): $(flexExtCUDA_debug_objsdir)/%.o: + $(ECHO) flexExtCUDA: compiling debug $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexExtCUDA_debug_objsdir),, $@))), $(flexExtCUDA_cppfiles))... + mkdir -p $(dir $(@)) + $(CXX) $(flexExtCUDA_debug_cppflags) -c $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexExtCUDA_debug_objsdir),, $@))), $(flexExtCUDA_cppfiles)) -o $@ + @mkdir -p $(dir $(addprefix $(DEPSDIR)/flexExtCUDA/debug/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexExtCUDA_debug_objsdir),, $@))), $(flexExtCUDA_cppfiles)))))) + cp $(flexExtCUDA_debug_DEPDIR).d $(addprefix $(DEPSDIR)/flexExtCUDA/debug/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexExtCUDA_debug_objsdir),, $@))), $(flexExtCUDA_cppfiles))))).P; \ + sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \ + -e '/^$$/ d' -e 's/$$/ :/' < $(flexExtCUDA_debug_DEPDIR).d >> $(addprefix $(DEPSDIR)/flexExtCUDA/debug/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexExtCUDA_debug_objsdir),, $@))), $(flexExtCUDA_cppfiles))))).P; \ + rm -f $(flexExtCUDA_debug_DEPDIR).d + +$(flexExtCUDA_debug_cc_o): $(flexExtCUDA_debug_objsdir)/%.o: + $(ECHO) flexExtCUDA: compiling debug $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexExtCUDA_debug_objsdir),, $@))), $(flexExtCUDA_ccfiles))... + mkdir -p $(dir $(@)) + $(CXX) $(flexExtCUDA_debug_cppflags) -c $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexExtCUDA_debug_objsdir),, $@))), $(flexExtCUDA_ccfiles)) -o $@ + mkdir -p $(dir $(addprefix $(DEPSDIR)/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexExtCUDA_debug_objsdir),, $@))), $(flexExtCUDA_ccfiles)))))) + cp $(flexExtCUDA_debug_DEPDIR).d $(addprefix $(DEPSDIR)/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexExtCUDA_debug_objsdir),, $@))), $(flexExtCUDA_ccfiles))))).debug.P; \ + sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \ + -e '/^$$/ d' -e 's/$$/ :/' < $(flexExtCUDA_debug_DEPDIR).d >> $(addprefix $(DEPSDIR)/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexExtCUDA_debug_objsdir),, $@))), $(flexExtCUDA_ccfiles))))).debug.P; \ + rm -f $(flexExtCUDA_debug_DEPDIR).d + +$(flexExtCUDA_debug_c_o): $(flexExtCUDA_debug_objsdir)/%.o: + $(ECHO) flexExtCUDA: compiling debug $(filter %$(strip $(subst .c.o,.c, $(subst $(flexExtCUDA_debug_objsdir),, $@))), $(flexExtCUDA_cfiles))... + mkdir -p $(dir $(@)) + $(CC) $(flexExtCUDA_debug_cflags) -c $(filter %$(strip $(subst .c.o,.c, $(subst $(flexExtCUDA_debug_objsdir),, $@))), $(flexExtCUDA_cfiles)) -o $@ + @mkdir -p $(dir $(addprefix $(DEPSDIR)/flexExtCUDA/debug/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .c.o,.c, $(subst $(flexExtCUDA_debug_objsdir),, $@))), $(flexExtCUDA_cfiles)))))) + cp $(flexExtCUDA_debug_DEPDIR).d $(addprefix $(DEPSDIR)/flexExtCUDA/debug/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .c.o,.c, $(subst $(flexExtCUDA_debug_objsdir),, $@))), $(flexExtCUDA_cfiles))))).P; \ + sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \ + -e '/^$$/ d' -e 's/$$/ :/' < $(flexExtCUDA_debug_DEPDIR).d >> $(addprefix $(DEPSDIR)/flexExtCUDA/debug/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .c.o,.c, $(subst $(flexExtCUDA_debug_objsdir),, $@))), $(flexExtCUDA_cfiles))))).P; \ + rm -f $(flexExtCUDA_debug_DEPDIR).d + +clean_flexExtCUDA: clean_flexExtCUDA_release clean_flexExtCUDA_debug + rm -rf $(DEPSDIR) + +export VERBOSE +ifndef VERBOSE +.SILENT: +endif diff --git a/extensions/compiler/vc12win32/vc120.pdb b/extensions/compiler/vc12win32/vc120.pdb Binary files differindex 893ff50..4bb28ac 100644 --- a/extensions/compiler/vc12win32/vc120.pdb +++ b/extensions/compiler/vc12win32/vc120.pdb diff --git a/extensions/compiler/vc12win64/vc120.pdb b/extensions/compiler/vc12win64/vc120.pdb Binary files differindex 4b0714b..48ac2a4 100644 --- a/extensions/compiler/vc12win64/vc120.pdb +++ b/extensions/compiler/vc12win64/vc120.pdb diff --git a/extensions/compiler/vc14win32/vc140.pdb b/extensions/compiler/vc14win32/vc140.pdb Binary files differnew file mode 100644 index 0000000..77acd50 --- /dev/null +++ b/extensions/compiler/vc14win32/vc140.pdb diff --git a/extensions/compiler/xpj/flexExtCUDA.xpj b/extensions/compiler/xpj/flexExtCUDA.xpj index 434b2fe..6e80a6f 100644 --- a/extensions/compiler/xpj/flexExtCUDA.xpj +++ b/extensions/compiler/xpj/flexExtCUDA.xpj @@ -12,7 +12,7 @@ </Conditional> <Export platforms="Win32 Win64">../${xpj:TOOL}${xpj:PLATFORM}</Export> - <Export platform="android{x}" tool="make">../makeandroid</Export> + <Export platform="android_aarch64" tool="make">../makeandroid_aarch64</Export> <Export platform="Linux64" tool="make">../makelinux64</Export> <Target name="flexExtCUDA"> @@ -118,47 +118,43 @@ </Config> - <!-- Android --> + <!-- Android aarch64--> - <Config name="default" type="lib" platforms="android{x}"> + <Config name="default" type="lib" platforms="android_aarch64"> - <apply-template name="android-common"/> + <apply-template name="android-aarch64-common"/> <FileTemplate name="cuda" command='${user:NVCC} ${user:NVCCInclude} --compile "%s" -o "%o"' buildtype="CustomBuild" /> - <OutDir platforms="android{x}" tool="make">${user:ProjectRoot}/lib/android</OutDir> + <OutDir platforms="android_aarch64" tool="make">${user:ProjectRoot}/lib/android_aarch64</OutDir> - <Preprocessor type="define" platform="android{x}"> - android + <Preprocessor type="define" platform="android_aarch64"> + android ANDROID=1 ANDROID_PLAT=1 DISABLE_IMPORTGL </Preprocessor> - <CFlags tool="make"> - -Wall -std=c++11 -fpermissive -fno-strict-aliasing -fno-rtti -fno-exceptions - </CFlags> - + <CFlags tool="make">-Wall -std=c++11 -fpermissive -fno-strict-aliasing -fno-rtti -fno-exceptions</CFlags> + </Config> - <Config name="release" type="lib" platforms="android{x}"> + <Config name="release" type="lib" platforms="android_aarch64"> <cflags> -O3 -ffast-math </cflags> - <OutFile>libflexExt_cuda_release_armv7l.a</OutFile> - + <OutFile>libNvFlexExtReleaseCUDA_aarch64.a</OutFile> + <Libraries> - ${user:ProjectRoot}/lib/android/libNvFlexRelease_armv7l.a - </Libraries> - + ${user:ProjectRoot}/lib/android_aarch64/libNvFlexRelease_aarch64.a + </Libraries> </Config> - <Config name="debug" type="lib" platforms="android{x}"> + <Config name="debug" type="lib" platforms="android_aarch64"> <cflags> -g -O0 </cflags> - <OutFile>libflexExt_cuda_debug_armv7l.a</OutFile> - + <OutFile>libNvFlexExtDebugCUDA_aarch64.a</OutFile> + <Libraries> - ${user:ProjectRoot}/lib/android/libNvFlexDebug_armv7l.a - </Libraries> - + ${user:ProjectRoot}/lib/android_aarch64/libNvFlexDebug_aarch64.a + </Libraries> </Config> @@ -236,4 +232,4 @@ </Target> </Project> -</XPJ>
\ No newline at end of file +</XPJ> diff --git a/extensions/compiler/xpj/flexExtD3D12.xpj b/extensions/compiler/xpj/flexExtD3D12.xpj new file mode 100644 index 0000000..7ba5bd8 --- /dev/null +++ b/extensions/compiler/xpj/flexExtD3D12.xpj @@ -0,0 +1,170 @@ +<?xml version="1.0" encoding="utf-8" ?> + +<XPJ version="4"> + + <Project name="flexExtD3D12"> + + <!-- depends on flex solver project --> + <Conditional value="${config}" match="internal"> + <Import file="../../../src/compiler/xpj/flexD3D12.xpj" /> + </Conditional> + + <Export platforms="Win32 Win64">../${xpj:TOOL}${xpj:PLATFORM}</Export> + + <Target name="flexExtD3D12"> + + <Var name="ProjectRoot" value="../../.." /> + + <!-- Windows --> + + <Config name="default" type="dll" platforms="Win32 Win64"> + + <OutDir platform="Win32">../../../bin/win32/</OutDir> + <OutDir platform="Win64">../../../bin/win64/</OutDir> + + <Preprocessor type="define"> + _CONSOLE + WIN32 + </Preprocessor> + + <WarningLevel>3</WarningLevel> + <GenerateDebugInformation>true</GenerateDebugInformation> + <CharacterSet>MultiByte</CharacterSet> + + <SearchPaths type="header"> + ..\..\..\..\.. + </SearchPaths> + + <Libraries> + kernel32.lib + user32.lib + gdi32.lib + winspool.lib + comdlg32.lib + advapi32.lib + shell32.lib + ole32.lib + oleaut32.lib + uuid.lib + odbc32.lib + odbccp32.lib + </Libraries> + + </Config> + + <Config name="debug" type="dll" platforms="Win32 Win64"> + + <OutFile platform="Win32">flexExt_d3d12_debug_x86.dll</OutFile> + <OutFile platform="Win64">flexExt_d3d12_debug_x64.dll</OutFile> + + <IntDir>./build/${xpj:PLATFORM}/DX/debug/</IntDir> + + <Preprocessor type="define"> + _DEBUG + </Preprocessor> + <Preprocessor type="define"> + _ITERATOR_DEBUG_LEVEL=0 + </Preprocessor> + <RuntimeLibrary>MTd</RuntimeLibrary> + <GenerateDebugInformation>true</GenerateDebugInformation> + <FloatingPointModel>Precise</FloatingPointModel> + <ExportLibrary platform="Win32">..\..\..\lib\win32\flexExt_d3d12_debug_x86.lib</ExportLibrary> + <ExportLibrary platform="Win64">..\..\..\lib\win64\flexExt_d3d12_debug_x64.lib</ExportLibrary> + + <Libraries platforms="Win32"> + ${user:ProjectRoot}/lib/win32/flex_d3d12_debug_x86.lib + </Libraries> + + <Libraries platforms="Win64"> + ${user:ProjectRoot}/lib/win64/flex_d3d12_debug_x64.lib + </Libraries> + + </Config> + + <Config name="release" type="dll" platforms="Win32 Win64"> + + <OutFile platform="Win32">flexExt_d3d12_release_x86.dll</OutFile> + <OutFile platform="Win64">flexExt_d3d12_release_x64.dll</OutFile> + + <IntDir>./build/${xpj:PLATFORM}/DX/release/</IntDir> + + <Preprocessor type="define"> + NDEBUG + </Preprocessor> + <RuntimeLibrary>MT</RuntimeLibrary> + <WholeProgramOptimization>1</WholeProgramOptimization> + <Optimization>3</Optimization> + <EnableIntrinsicFunctions>true</EnableIntrinsicFunctions> + <BufferSecurityCheck>false</BufferSecurityCheck> + <EnableFunctionLevelLinking>true</EnableFunctionLevelLinking> + <FloatingPointModel>Fast</FloatingPointModel> + + <ExportLibrary platform="Win32">..\..\..\lib\win32\flexExt_d3d12_release_x86.lib</ExportLibrary> + <ExportLibrary platform="Win64">..\..\..\lib\win64\flexExt_d3d12_release_x64.lib</ExportLibrary> + + <Libraries platforms="Win32"> + ${user:ProjectRoot}/lib/win32/flex_d3d12_release_x86.lib + </Libraries> + + <Libraries platforms="Win64"> + ${user:ProjectRoot}/lib/win64/flex_d3d12_release_x64.lib + </Libraries> + + </Config> + + + <SearchPaths type="header"> + ..\..\..\ + ..\..\..\external\D3D12\include + </SearchPaths> + + <SearchPaths type="lib" platform="Win32"> + ..\..\..\external\D3D12\libs\x86 + ..\..\..\lib\x86 + </SearchPaths> + + <SearchPaths type="lib" platform="Win64"> + ..\..\..\external\D3D12\libs\x64 + ..\..\..\lib\win64 + </SearchPaths> + + <!-- Source --> + + <Files name="Core" type="source" root="${user:ProjectRoot}/core"> + sdf.cpp + voxelize.cpp + maths.cpp + aabbtree.cpp + </Files> + + <Files name="src" type="source" root="${user:ProjectRoot}/extensions/dx"> + flexExt.cpp + flexExt.hlsl + flexExt_dx_common.h + </Files> + + <Files name="src" type="source" root="${user:ProjectRoot}/include"> + flexExt.h + </Files> + + <Files name="src" type="source" root="${user:ProjectRoot}/extensions"> + flexExtCloth.cpp + flexExtRigid.cpp + flexExtSoft.cpp + flexExtMovingFrame.cpp + flexExtContainer.cpp + </Files> + + <HLSL Configurations="release" DisableOptim="No" Debug="No" ShaderModel="5.0" Platforms="Win32 Win64" ObjectFileOutput=" " WarningAsErrors="false" OutputHeaderFileName="${user:ProjectRoot}/extensions/dx/shaders/%(Filename).h"> + <File ShaderType="Compute" EntryPoint="UpdateForceFields::execute" OutputHeaderVarName="g_flexExt_UpdateForceFields"> "${user:ProjectRoot}/extensions/dx/shaders/flexExt.UpdateForceFields.hlsl" </File> + </HLSL> + + <Conditional value="${config}" match="internal"> + <Dependencies> + flexD3D12 + </Dependencies> + </Conditional> + + </Target> + </Project> +</XPJ>
\ No newline at end of file diff --git a/extensions/dx/flexExt.cpp b/extensions/dx/flexExt.cpp index 4dcc0e4..2b340cc 100644 --- a/extensions/dx/flexExt.cpp +++ b/extensions/dx/flexExt.cpp @@ -175,7 +175,7 @@ void NvFlexExtSetForceFields(NvFlexExtForceFieldCallback* c, const NvFlexExtForc if (numForceFields > 0) { // update staging buffer - void* dstPtr = c->mContext->mapUpload(c->mForceFieldsGpu); + void* dstPtr = c->mContext->map(c->mForceFieldsGpu, NvFlex::eMapWrite); memcpy(dstPtr, forceFields, numForceFields*sizeof(NvFlexExtForceField)); c->mContext->unmap(c->mForceFieldsGpu); diff --git a/extensions/flexExtContainer.cpp b/extensions/flexExtContainer.cpp index 92cb958..60d0230 100644 --- a/extensions/flexExtContainer.cpp +++ b/extensions/flexExtContainer.cpp @@ -107,6 +107,8 @@ struct NvFlexExtContainer NvFlexVector<int> mShapeOffsets; NvFlexVector<int> mShapeIndices; NvFlexVector<float> mShapeCoefficients; + NvFlexVector<float> mShapePlasticThresholds; + NvFlexVector<float> mShapePlasticCreeps; NvFlexVector<Quat> mShapeRotations; NvFlexVector<Vec3> mShapeTranslations; NvFlexVector<Vec3> mShapeRestPositions; @@ -139,7 +141,8 @@ struct NvFlexExtContainer mMaxParticles(0), mSolver(NULL), mFlexLib(l), mActiveList(l),mParticles(l),mParticlesRest(l),mVelocities(l), mPhases(l),mNormals(l),mShapeOffsets(l),mShapeIndices(l), - mShapeCoefficients(l),mShapeRotations(l),mShapeTranslations(l), + mShapeCoefficients(l),mShapePlasticThresholds(l), + mShapePlasticCreeps(l),mShapeRotations(l),mShapeTranslations(l), mShapeRestPositions(l),mSpringIndices(l),mSpringLengths(l), mSpringCoefficients(l),mTriangleIndices(l),mTriangleNormals(l), mInflatableStarts(l),mInflatableCounts(l),mInflatableRestVolumes(l), @@ -161,6 +164,8 @@ void CompactObjects(NvFlexExtContainer* c) int totalNumShapes = 0; int totalNumShapeIndices = 0; + bool plasticDeformation = false; + // pre-calculate array sizes for (size_t i = 0; i < c->mInstances.size(); ++i) { @@ -176,6 +181,11 @@ void CompactObjects(NvFlexExtContainer* c) totalNumShapeIndices += asset->numShapeIndices; totalNumShapes += asset->numShapes; + + if (asset->shapePlasticThresholds && asset->shapePlasticCreeps) + { + plasticDeformation = true; + } } //---------------------- @@ -203,6 +213,9 @@ void CompactObjects(NvFlexExtContainer* c) c->mShapeOffsets.map(); c->mShapeCoefficients.map(); + c->mShapePlasticThresholds.map(); + c->mShapePlasticCreeps.map(); + c->mShapeTranslations.map(); c->mShapeRotations.map(); @@ -231,6 +244,17 @@ void CompactObjects(NvFlexExtContainer* c) c->mShapeOffsets.resize(1 + totalNumShapes); c->mShapeCoefficients.resize(totalNumShapes); + if (plasticDeformation) + { + c->mShapePlasticThresholds.resize(totalNumShapes); + c->mShapePlasticCreeps.resize(totalNumShapes); + } + else + { + c->mShapePlasticThresholds.resize(0); + c->mShapePlasticCreeps.resize(0); + } + c->mShapeTranslations.resize(totalNumShapes); c->mShapeRotations.resize(totalNumShapes); @@ -244,6 +268,13 @@ void CompactObjects(NvFlexExtContainer* c) Vec3* __restrict dstShapeRestPositions = (totalNumShapeIndices) ? &c->mShapeRestPositions[0] : NULL; int* __restrict dstShapeOffsets = (totalNumShapes) ? &c->mShapeOffsets[0] : NULL; float* __restrict dstShapeCoefficients = (totalNumShapes) ? &c->mShapeCoefficients[0] : NULL; + float* __restrict dstShapePlasticThresholds = NULL; + float* __restrict dstShapePlasticCreeps = NULL; + if (plasticDeformation) + { + dstShapePlasticThresholds = (totalNumShapes) ? &c->mShapePlasticThresholds[0] : NULL; + dstShapePlasticCreeps = (totalNumShapes) ? &c->mShapePlasticCreeps[0] : NULL; + } Vec3* __restrict dstShapeTranslations = (totalNumShapes) ? &c->mShapeTranslations[0] : NULL; Quat* __restrict dstShapeRotations = (totalNumShapes) ? &c->mShapeRotations[0] : NULL; @@ -300,6 +331,18 @@ void CompactObjects(NvFlexExtContainer* c) { dstShapeOffsets[shapeIndex] = asset->shapeOffsets[s] + indexOffset; dstShapeCoefficients[shapeIndex] = asset->shapeCoefficients[s]; + if (plasticDeformation) + { + if (asset->shapePlasticThresholds) + dstShapePlasticThresholds[shapeIndex] = asset->shapePlasticThresholds[s]; + else + dstShapePlasticThresholds[shapeIndex] = 0.0f; + + if (asset->shapePlasticCreeps) + dstShapePlasticCreeps[shapeIndex] = asset->shapePlasticCreeps[s]; + else + dstShapePlasticCreeps[shapeIndex] = 0.0f; + } dstShapeTranslations[shapeIndex] = Vec3(&inst->shapeTranslations[s*3]); dstShapeRotations[shapeIndex] = Quat(&inst->shapeRotations[s*4]); @@ -309,15 +352,10 @@ void CompactObjects(NvFlexExtContainer* c) for (int i=shapeStart; i < shapeEnd; ++i) { - const int firstParticle = asset->shapeIndices[0]; const int currentParticle = asset->shapeIndices[i]; // remap indices and create local space positions for each shape - // To make this calculation more robust, subtract the position of the first particle from both, the positions of the current - // particle and the shapeCenter. Without this one would subtract two very similar floating point values, which can lead to ghost forces. - dstShapeRestPositions[shapeIndexOffset] = (Vec3(&asset->particles[currentParticle*4]) - Vec3(&asset->particles[firstParticle])) - - (Vec3(&asset->shapeCenters[s*3]) - Vec3(&asset->particles[firstParticle])); - + dstShapeRestPositions[shapeIndexOffset] = Vec3(&asset->particles[currentParticle*4]) - Vec3(&asset->shapeCenters[s*3]); dstShapeIndices[shapeIndexOffset] = remap[asset->shapeIndices[i]]; ++shapeIndexOffset; @@ -378,6 +416,9 @@ void CompactObjects(NvFlexExtContainer* c) c->mShapeOffsets.unmap(); c->mShapeCoefficients.unmap(); + c->mShapePlasticThresholds.unmap(); + c->mShapePlasticCreeps.unmap(); + c->mShapeTranslations.unmap(); c->mShapeRotations.unmap(); @@ -393,14 +434,14 @@ void CompactObjects(NvFlexExtContainer* c) // shapes if (c->mShapeCoefficients.size()) { - NvFlexSetRigids(c->mSolver, c->mShapeOffsets.buffer, c->mShapeIndices.buffer, c->mShapeRestPositions.buffer, NULL, c->mShapeCoefficients.buffer, c->mShapeRotations.buffer, c->mShapeTranslations.buffer, int(c->mShapeCoefficients.size()), c->mShapeIndices.size()); + NvFlexSetRigids(c->mSolver, c->mShapeOffsets.buffer, c->mShapeIndices.buffer, c->mShapeRestPositions.buffer, NULL, c->mShapeCoefficients.buffer, c->mShapePlasticThresholds.buffer, c->mShapePlasticCreeps.buffer, c->mShapeRotations.buffer, c->mShapeTranslations.buffer, int(c->mShapeCoefficients.size()), c->mShapeIndices.size()); } else { c->mShapeRotations.resize(0); c->mShapeTranslations.resize(0); - NvFlexSetRigids(c->mSolver, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0); + NvFlexSetRigids(c->mSolver, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0); } // triangles @@ -729,18 +770,19 @@ void NvFlexExtPushToDevice(NvFlexExtContainer* c) int n = NvFlexExtGetActiveList(c, &c->mActiveList[0]); c->mActiveList.unmap(); - NvFlexSetActive(c->mSolver, c->mActiveList.buffer, n); + NvFlexSetActive(c->mSolver, c->mActiveList.buffer, NULL); + NvFlexSetActiveCount(c->mSolver, n); c->mNeedsActiveListRebuild = false; } // push any changes to solver - NvFlexSetParticles(c->mSolver, c->mParticles.buffer, int(c->mParticles.size())); - NvFlexSetRestParticles(c->mSolver, c->mParticlesRest.buffer, int(c->mParticlesRest.size())); + NvFlexSetParticles(c->mSolver, c->mParticles.buffer, NULL); + NvFlexSetRestParticles(c->mSolver, c->mParticlesRest.buffer, NULL); - NvFlexSetVelocities(c->mSolver, c->mVelocities.buffer, int(c->mVelocities.size())); - NvFlexSetPhases(c->mSolver, c->mPhases.buffer, int(c->mPhases.size())); - NvFlexSetNormals(c->mSolver, c->mNormals.buffer, int(c->mNormals.size())); + NvFlexSetVelocities(c->mSolver, c->mVelocities.buffer, NULL); + NvFlexSetPhases(c->mSolver, c->mPhases.buffer, NULL); + NvFlexSetNormals(c->mSolver, c->mNormals.buffer, NULL); if (c->mNeedsCompact) CompactObjects(c); @@ -748,18 +790,16 @@ void NvFlexExtPushToDevice(NvFlexExtContainer* c) void NvFlexExtPullFromDevice(NvFlexExtContainer* c) { - // read back particle data - NvFlexGetParticles(c->mSolver, c->mParticles.buffer, int(c->mParticles.size())); - NvFlexGetVelocities(c->mSolver, c->mVelocities.buffer, int(c->mVelocities.size())); - NvFlexGetPhases(c->mSolver, c->mPhases.buffer, int(c->mPhases.size())); - NvFlexGetNormals(c->mSolver, c->mNormals.buffer, int(c->mNormals.size())); + NvFlexGetParticles(c->mSolver, c->mParticles.buffer, NULL); + NvFlexGetVelocities(c->mSolver, c->mVelocities.buffer, NULL); + NvFlexGetPhases(c->mSolver, c->mPhases.buffer, NULL); + NvFlexGetNormals(c->mSolver, c->mNormals.buffer, NULL); NvFlexGetBounds(c->mSolver, c->mBoundsLower.buffer, c->mBoundsUpper.buffer); // read back shape transforms if (c->mShapeCoefficients.size()) - NvFlexGetRigidTransforms(c->mSolver, c->mShapeRotations.buffer, c->mShapeTranslations.buffer); - + NvFlexGetRigids(c->mSolver, NULL, NULL, NULL, NULL, NULL, NULL, NULL, c->mShapeRotations.buffer, c->mShapeTranslations.buffer); } void NvFlexExtUpdateInstances(NvFlexExtContainer* c) @@ -800,6 +840,8 @@ void NvFlexExtDestroyAsset(NvFlexExtAsset* asset) delete[] asset->shapeOffsets; delete[] asset->shapeCenters; delete[] asset->shapeCoefficients; + delete[] asset->shapePlasticThresholds; + delete[] asset->shapePlasticCreeps; delete asset; } diff --git a/extensions/flexExtRigid.cpp b/extensions/flexExtRigid.cpp index 9c37c28..897d009 100644 --- a/extensions/flexExtRigid.cpp +++ b/extensions/flexExtRigid.cpp @@ -68,11 +68,26 @@ Vec3 SampleSDFGrad(const float* sdf, int dim, int x, int y, int z) NvFlexExtAsset* NvFlexExtCreateRigidFromMesh(const float* vertices, int numVertices, const int* indices, int numTriangleIndices, float spacing, float expand) { + // Switch to relative coordinates by computing the mean position of the vertices and subtracting the result from every vertex position + // The increased precision will prevent ghost forces caused by inaccurate center of mass computations + Vec3 meshOffset(0.0f); + for (int i = 0; i < numVertices; i++) + { + meshOffset += ((Vec3*)vertices)[i]; + } + meshOffset /= float(numVertices); + + Vec3* relativeVertices = new Vec3[numVertices]; + for (int i = 0; i < numVertices; i++) + { + relativeVertices[i] += ((Vec3*)vertices)[i] - meshOffset; + } + std::vector<Vec4> particles; std::vector<Vec4> normals; std::vector<int> phases; - const Vec3* positions = (Vec3*)vertices; + const Vec3* positions = relativeVertices; Vec3 meshLower(FLT_MAX), meshUpper(-FLT_MAX); for (int i=0; i < numVertices; ++i) @@ -105,11 +120,11 @@ NvFlexExtAsset* NvFlexExtCreateRigidFromMesh(const float* vertices, int numVerti // lie symmetrically to the center of the object. this reduces the // chance of missing features, and also better aligns the particles // with the mesh - Vec3 meshOffset; - meshOffset.x = 0.5f * (spacing - (edges.x - (dx-1)*spacing)); - meshOffset.y = 0.5f * (spacing - (edges.y - (dy-1)*spacing)); - meshOffset.z = 0.5f * (spacing - (edges.z - (dz-1)*spacing)); - meshLower -= meshOffset; + Vec3 meshShift; + meshShift.x = 0.5f * (spacing - (edges.x - (dx-1)*spacing)); + meshShift.y = 0.5f * (spacing - (edges.y - (dy-1)*spacing)); + meshShift.z = 0.5f * (spacing - (edges.z - (dz-1)*spacing)); + meshLower -= meshShift; // don't allow samplings with > 64 per-side if (maxDim > 64) @@ -117,7 +132,9 @@ NvFlexExtAsset* NvFlexExtCreateRigidFromMesh(const float* vertices, int numVerti std::vector<uint32_t> voxels(maxDim*maxDim*maxDim); - Voxelize(vertices, numVertices, indices, numTriangleIndices, maxDim, maxDim, maxDim, &voxels[0], meshLower, meshLower + Vec3(maxDim*spacing)); + Voxelize(relativeVertices, numVertices, indices, numTriangleIndices, maxDim, maxDim, maxDim, &voxels[0], meshLower, meshLower + Vec3(maxDim*spacing)); + + delete[] relativeVertices; std::vector<float> sdf(maxDim*maxDim*maxDim); MakeSDF(&voxels[0], maxDim, maxDim, maxDim, &sdf[0]); @@ -153,23 +170,27 @@ NvFlexExtAsset* NvFlexExtCreateRigidFromMesh(const float* vertices, int numVerti } } } + const int numParticles = int(particles.size()); + + // Switch back to absolute coordinates by adding meshOffset to the center of mass and to each particle positions + center /= float(numParticles); + center += meshOffset; + + for (int i = 0; i < numParticles; i++) { + particles[i] += Vec4(meshOffset, 0.0f); + } NvFlexExtAsset* asset = new NvFlexExtAsset(); memset(asset, 0, sizeof(*asset)); - if (particles.size()) + if (numParticles) { - const int numParticles = int(particles.size()); - asset->numParticles = numParticles; asset->maxParticles = numParticles; asset->particles = new float[numParticles*4]; memcpy(asset->particles, &particles[0], sizeof(Vec4)*numParticles); - // store center of mass - center /= float(numParticles); - asset->numShapes = 1; asset->numShapeIndices = numParticles; @@ -179,11 +200,15 @@ NvFlexExtAsset* NvFlexExtCreateRigidFromMesh(const float* vertices, int numVerti for (int i = 0; i < numParticles; ++i) asset->shapeIndices[i] = i; + // store center of mass asset->shapeCenters = new float[4]; asset->shapeCenters[0] = center.x; asset->shapeCenters[1] = center.y; asset->shapeCenters[2] = center.z; + asset->shapePlasticThresholds = NULL; + asset->shapePlasticCreeps = NULL; + asset->shapeCoefficients = new float[1]; asset->shapeCoefficients[0] = 1.0f; diff --git a/extensions/flexExtSoft.cpp b/extensions/flexExtSoft.cpp index 53537c4..aafdc56 100644 --- a/extensions/flexExtSoft.cpp +++ b/extensions/flexExtSoft.cpp @@ -441,7 +441,7 @@ void SampleMesh(const Vec3* vertices, int numVertices, const int* indices, int n meshOffset.z = 0.5f * (spacing - (edges.z - (dz - 1)*spacing)); meshLower -= meshOffset; - Voxelize((const float*)vertices, numVertices, indices, numIndices, maxDim, maxDim, maxDim, &voxels[0], meshLower, meshLower + Vec3(maxDim*spacing)); + Voxelize(vertices, numVertices, indices, numIndices, maxDim, maxDim, maxDim, &voxels[0], meshLower, meshLower + Vec3(maxDim*spacing)); // sample interior for (int x = 0; x < maxDim; ++x) @@ -507,14 +507,31 @@ void SampleMesh(const Vec3* vertices, int numVertices, const int* indices, int n // API methods -NvFlexExtAsset* NvFlexExtCreateSoftFromMesh(const float* vertices, int numVertices, const int* indices, int numIndices, float particleSpacing, float volumeSampling, float surfaceSampling, float clusterSpacing, float clusterRadius, float clusterStiffness, float linkRadius, float linkStiffness, float globalStiffness) +NvFlexExtAsset* NvFlexExtCreateSoftFromMesh(const float* vertices, int numVertices, const int* indices, int numIndices, float particleSpacing, float volumeSampling, float surfaceSampling, float clusterSpacing, float clusterRadius, float clusterStiffness, float linkRadius, float linkStiffness, float globalStiffness, float clusterPlasticThreshold, float clusterPlasticCreep) { + // Switch to relative coordinates by computing the mean position of the vertices and subtracting the result from every vertex position + // The increased precision will prevent ghost forces caused by inaccurate center of mass computations + Vec3 meshOffset(0.0f); + for (int i = 0; i < numVertices; i++) + { + meshOffset += ((Vec3*)vertices)[i]; + } + meshOffset /= float(numVertices); + + Vec3* relativeVertices = new Vec3[numVertices]; + for (int i = 0; i < numVertices; i++) + { + relativeVertices[i] += ((Vec3*)vertices)[i] - meshOffset; + } + // construct asset definition NvFlexExtAsset* asset = new NvFlexExtAsset(); // create particle sampling std::vector<Vec3> samples; - SampleMesh((Vec3*)vertices, numVertices, indices, numIndices, particleSpacing, volumeSampling, surfaceSampling, samples); + SampleMesh(relativeVertices, numVertices, indices, numIndices, particleSpacing, volumeSampling, surfaceSampling, samples); + + delete[] relativeVertices; const int numParticles = int(samples.size()); @@ -522,6 +539,8 @@ NvFlexExtAsset* NvFlexExtCreateSoftFromMesh(const float* vertices, int numVertic std::vector<int> clusterOffsets; std::vector<Vec3> clusterPositions; std::vector<float> clusterCoefficients; + std::vector<float> clusterPlasticThresholds; + std::vector<float> clusterPlasticCreeps; // priority (not currently used) std::vector<float> priority(numParticles); @@ -534,6 +553,15 @@ NvFlexExtAsset* NvFlexExtCreateSoftFromMesh(const float* vertices, int numVertic // assign all clusters the same stiffness clusterCoefficients.resize(numClusters, clusterStiffness); + if (clusterPlasticCreep) + { + // assign all clusters the same plastic threshold + clusterPlasticThresholds.resize(numClusters, clusterPlasticThreshold); + + // assign all clusters the same plastic creep + clusterPlasticCreeps.resize(numClusters, clusterPlasticCreep); + } + // create links between clusters if (linkRadius > 0.0f) { @@ -565,26 +593,38 @@ NvFlexExtAsset* NvFlexExtCreateSoftFromMesh(const float* vertices, int numVertic { numClusters += 1; clusterCoefficients.push_back(globalStiffness); + if (clusterPlasticCreep) + { + clusterPlasticThresholds.push_back(clusterPlasticThreshold); + clusterPlasticCreeps.push_back(clusterPlasticCreep); + } for (int i = 0; i < numParticles; ++i) { clusterIndices.push_back(i); } - clusterOffsets.push_back((int)clusterIndices.size()); // the mean of the global cluster is the mean of all particles Vec3 globalMeanPosition(0.0f); - for (int i = 0; i < numParticles; ++i) { globalMeanPosition += samples[i]; } globalMeanPosition /= float(numParticles); - clusterPositions.push_back(globalMeanPosition); } + // Switch back to absolute coordinates by adding meshOffset to the centers of mass and to each particle positions + for (int i = 0; i < numParticles; ++i) + { + samples[i] += meshOffset; + } + for (int i = 0; i < numClusters; ++i) + { + clusterPositions[i] += meshOffset; + } + // assign particles asset->particles = new float[numParticles * 4]; asset->numParticles = numParticles; @@ -611,6 +651,20 @@ NvFlexExtAsset* NvFlexExtCreateSoftFromMesh(const float* vertices, int numVertic asset->shapeCoefficients = new float[numClusters]; memcpy(asset->shapeCoefficients, &clusterCoefficients[0], sizeof(float)*numClusters); + if (clusterPlasticCreep) + { + asset->shapePlasticThresholds = new float[numClusters]; + memcpy(asset->shapePlasticThresholds, &clusterPlasticThresholds[0], sizeof(float)*numClusters); + + asset->shapePlasticCreeps = new float[numClusters]; + memcpy(asset->shapePlasticCreeps, &clusterPlasticCreeps[0], sizeof(float)*numClusters); + } + else + { + asset->shapePlasticThresholds = NULL; + asset->shapePlasticCreeps = NULL; + } + asset->numShapeIndices = int(clusterIndices.size()); asset->numShapes = numClusters; |