summaryrefslogtreecommitdiffstats
path: root/src/mesa/Android.libmesa_st_mesa.mk
diff options
context:
space:
mode:
authorTimothy Arceri <t_arceri@yahoo.com.au>2014-10-29 23:05:59 +1100
committerMatt Turner <mattst88@gmail.com>2014-11-06 11:39:59 -0800
commit13786172181bf5a753c706a7f5c3eb5d448e244e (patch)
treeae36df3acf02742f3e8b0e9beb57ca8d82064c71 /src/mesa/Android.libmesa_st_mesa.mk
parent9557cf7d0d2e5a76a5277c2a4825e265609b2fca (diff)
downloadexternal_mesa3d-13786172181bf5a753c706a7f5c3eb5d448e244e.zip
external_mesa3d-13786172181bf5a753c706a7f5c3eb5d448e244e.tar.gz
external_mesa3d-13786172181bf5a753c706a7f5c3eb5d448e244e.tar.bz2
mesa: Add SSE 4.1 optimisation for glDrawElements.
Makes use of SSE 4.1 to speed up compute of min and max elements. Callgrind cpu usage results from pts benchmarks: Openarena 0.8.8: 3.67% -> 1.03% UrbanTerror: 2.36% -> 0.81% V5: - actually make use of the optimisation in android (Emil Velikov) - set a better array size limit for using SSE and added TODO V4: - fixed bugs with incrementing pointer and updating counters V3: - Removed sse_minmax.c from Makefile.sources - handle the first few values without SSE until the pointer is aligned and use _mm_load_si128 rather than _mm_loadu_si128 - guard the call to the SSE code better at build time V2: - removed GL* types - use _mm_store_si128() rather than _mm_store_ps() - add runtime check for SSE - use aligned attribute for local mix/max - bunch of tidyups Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Reviewed-by: Matt Turner <mattst88@gmail.com> Signed-off-by: Timothy Arceri <t_arceri@yahoo.com.au>
Diffstat (limited to 'src/mesa/Android.libmesa_st_mesa.mk')
-rw-r--r--src/mesa/Android.libmesa_st_mesa.mk5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mesa/Android.libmesa_st_mesa.mk b/src/mesa/Android.libmesa_st_mesa.mk
index 8b8d652..618d6bf 100644
--- a/src/mesa/Android.libmesa_st_mesa.mk
+++ b/src/mesa/Android.libmesa_st_mesa.mk
@@ -48,6 +48,11 @@ ifeq ($(TARGET_ARCH),x86)
endif # x86
endif # MESA_ENABLE_ASM
+ifeq ($(ARCH_X86_HAVE_SSE4_1),true)
+LOCAL_CFLAGS := \
+ -DUSE_SSE41
+endif
+
LOCAL_C_INCLUDES := \
$(call intermediates-dir-for STATIC_LIBRARIES,libmesa_program,,) \
$(MESA_TOP)/src/gallium/auxiliary \