[Mesa-dev] [PATCH V5] mesa: add SSE optimisation for glDrawElements

Timothy Arceri t_arceri at yahoo.com.au
Wed Nov 5 12:50:19 PST 2014


There have been quite a few eyes over this now but nobody has given it a
reviewed by yet. 

Would be nice to get it in before the code freeze. Any takers?


On Wed, 2014-10-29 at 23:05 +1100, Timothy Arceri wrote:
> Makes use of SSE 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
> 
> Signed-off-by: Timothy Arceri <t_arceri at yahoo.com.au>
> ---
>  src/mesa/Android.libmesa_dricore.mk |  8 ++-
>  src/mesa/Android.libmesa_st_mesa.mk |  5 ++
>  src/mesa/Makefile.am                |  3 +-
>  src/mesa/main/sse_minmax.c          | 97 +++++++++++++++++++++++++++++++++++++
>  src/mesa/main/sse_minmax.h          | 30 ++++++++++++
>  src/mesa/vbo/vbo_exec_array.c       | 14 ++++--
>  6 files changed, 152 insertions(+), 5 deletions(-)
>  create mode 100644 src/mesa/main/sse_minmax.c
>  create mode 100644 src/mesa/main/sse_minmax.h




More information about the mesa-dev mailing list