[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