diff --git a/jni/Android.mk b/jni/Android.mk index 4396ffa9..a0254a4d 100644 --- a/jni/Android.mk +++ b/jni/Android.mk @@ -6,4 +6,58 @@ override TARGET_arm_debug_CFLAGS := override TARGET_thumb_debug_CFLAGS := override TARGET_CFLAGS := +obj/local/x86/objs/xash/client/gl_studio.o: NDK_APP_CFLAGS += -a --aaaa -ftree-parallelize-loops=$(XASH_THREAD_NUM) aaa +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/cl_game.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/cl_frame.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/cl_parse.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/gl_warp.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/cl_main.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/cl_tent.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/cl_events.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/gl_sprite.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/gl_image.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/gl_cull.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/gl_rpart.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/gl_beams.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) + +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/gl_rlight.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/gl_rsurf.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/gl_rmain.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) + +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/s_dsp.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/s_utils.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/s_vox.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/s_mouth.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/s_stream.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/s_load.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/s_mix.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/gl_draw.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/gl_decals.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/soundlib/snd_wav.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/imagelib/img_tga.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/imagelib/img_wad.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/imagelib/img_bmp.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/imagelib/img_quant.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/console.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/net_buffer.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/net_encode.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/mod_studio.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/pm_trace.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/pm_surface.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/cvar.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/cmd.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/network.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/crtlib.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/crclib.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/filesystem.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/infostring.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/gamma.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/mathlib.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/matrixlib.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/touch.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/server/sv_move.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/server/sv_pmove.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/server/sv_world.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/server/sv_phys.o: override NDK_APP_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) + include $(call all-subdir-makefiles) diff --git a/jni/Application.mk b/jni/Application.mk index 299cb32e..ea3a3907 100644 --- a/jni/Application.mk +++ b/jni/Application.mk @@ -11,11 +11,13 @@ else APP_PLATFORM := android-8 endif +# if non-zero, works only if single ABI selected +XASH_THREAD_NUM ?= 0 -CFLAGS_OPT := -O3 -fomit-frame-pointer -ggdb -funsafe-math-optimizations -ftree-vectorize -fgraphite-identity -floop-interchange -funsafe-loop-optimizations -finline-limit=1024 -CFLAGS_OPT_ARM := -mthumb -mfpu=neon -mcpu=cortex-a9 -pipe -mvectorize-with-neon-quad -DVECTORIZE_SINCOS -fPIC -CFLAGS_OPT_ARMv5 :=-march=armv6 -mfpu=vfp -marm -pipe -CFLAGS_OPT_X86 := -mtune=atom -march=atom -mssse3 -mfpmath=sse -funroll-loops -pipe -DVECTORIZE_SINCOS +CFLAGS_OPT := -O3 -fno-omit-frame-pointer -ggdb -funsafe-math-optimizations -ftree-vectorize -fgraphite-identity -floop-interchange -funsafe-loop-optimizations -finline-limit=512 -ftree-loop-distribution -fprefetch-loop-arrays -floop-strip-mine -ftree-loop-if-convert -ftree-loop-distribution -pipe +CFLAGS_OPT_ARM := -mthumb -mfpu=neon -mcpu=cortex-a9 -mvectorize-with-neon-quad -DVECTORIZE_SINCOS -fPIC +CFLAGS_OPT_ARMv5 :=-march=armv6 -mfpu=vfp -marm +CFLAGS_OPT_X86 := -mtune=atom -march=atom -mssse3 -mfpmath=sse -funroll-loops -DVECTORIZE_SINCOS CFLAGS_HARDFP := -D_NDK_MATH_NO_SOFTFP=1 -mhard-float -mfloat-abi=hard -DLOAD_HARDFP -DSOFTFP_LINK APPLICATIONMK_PATH = $(call my-dir) diff --git a/jni/xash3d_config.mk b/jni/xash3d_config.mk index d569969c..bea4492d 100644 --- a/jni/xash3d_config.mk +++ b/jni/xash3d_config.mk @@ -11,3 +11,66 @@ endif ifeq ($(TARGET_ARCH_ABI),x86) LOCAL_CFLAGS += $(CFLAGS_OPT_X86) endif + +ifneq ($(XASH_THREAD_NUM),0) +ifneq (,$(findstring $(LOCAL_MODULE),nanogl server client)) +#LOCAL_LDFLAGS += -fopenmp -ftree-parallelize-loops=$(XASH_THREAD_NUM) +LOCAL_CFLAGS += -ftree-parallelize-loops=$(XASH_THREAD_NUM) +endif +LOCAL_LDFLAGS += -fopenmp -ftree-parallelize-loops=$(XASH_THREAD_NUM) +# this works only if single ABI selected +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/gl_studio.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/cl_game.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/cl_frame.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/cl_parse.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/gl_warp.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/cl_main.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/cl_tent.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/cl_events.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/gl_sprite.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/gl_image.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/gl_cull.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/gl_rpart.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/gl_beams.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) + +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/gl_rlight.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +#obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/gl_rsurf.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/gl_rmain.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) + +#obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/s_dsp.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +#obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/s_utils.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +#obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/s_vox.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +#obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/s_mouth.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +#obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/s_stream.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +#obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/s_load.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +#obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/s_mix.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/gl_draw.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/client/gl_decals.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/soundlib/snd_wav.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/imagelib/img_tga.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/imagelib/img_wad.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/imagelib/img_bmp.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/imagelib/img_quant.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/console.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/net_buffer.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/net_encode.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/mod_studio.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/pm_trace.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/pm_surface.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/cvar.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/cmd.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/network.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/crtlib.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/crclib.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/filesystem.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/infostring.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/gamma.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/mathlib.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/matrixlib.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/common/touch.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/server/sv_move.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/server/sv_pmove.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/server/sv_world.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) +obj/local/$(TARGET_ARCH_ABI)/objs/xash/server/sv_phys.o: override PRIVATE_CC = $(TARGET_CC) -ftree-parallelize-loops=$(XASH_THREAD_NUM) + +endif