[Mesa-dev] [PATCH] i965: Compile the driver with -march=core2.
Matt Turner
mattst88 at gmail.com
Fri Jan 25 16:09:01 PST 2013
On Thu, Jan 24, 2013 at 7:33 PM, Eric Anholt <eric at anholt.net> wrote:
> While most of our development and testing is on x86-64, some of our
> major consumers of the driver are on i386 still. This meant they aren't
> taking advantage of SSE for floating point math or cmov instructions,
> unless the user went out of their way to choose a -march flag
> (unlikely). Given that the driver can only get probed on i965 and newer
> chipsets, which only support core2 and above CPUs, this is safe.
>
> Improves (32-bit) GLbenchmark 2.1 offscreen performance by .76 +/- 0.35%
> (n=19)
> ---
> configure.ac | 17 +++++++++++++++++
> src/mesa/drivers/dri/i965/Makefile.am | 3 ++-
> 2 files changed, 19 insertions(+), 1 deletion(-)
>
> diff --git a/configure.ac b/configure.ac
> index e769eda..0af3176 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -492,6 +492,23 @@ if test "x$enable_asm" = xyes; then
> fi
> AC_SUBST([MESA_ASM_FILES])
>
> +# If the user hasn't set an explicit -march flag, then autodetect a few for
> +# use by the i965 driver.
> +if echo $CFLAGS | grep -v march > /dev/null; then
> + case "$host_cpu" in
> + i?86 | x86_64)
> + save_CFLAGS="$CFLAGS"
> + AC_MSG_CHECKING([whether $CC supports -march=core2])
> + CFLAGS="$save_CFLAGS -march=core2"
> + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[]])],
> + [AC_MSG_RESULT([yes]); MARCH_CORE2="-march=core2"],
> + [AC_MSG_RESULT([no]); MARCH_CORE2=""])
> + CFLAGS="$save_CFLAGS"
> + ;;
> + esac
> +fi
> +AC_SUBST([MARCH_CORE2])
> +
> dnl Check to see if dlopen is in default libraries (like Solaris, which
> dnl has it in libc), or if libdl is needed to get it.
> AC_CHECK_FUNC([dlopen], [DEFINES="$DEFINES -DHAVE_DLOPEN"],
> diff --git a/src/mesa/drivers/dri/i965/Makefile.am b/src/mesa/drivers/dri/i965/Makefile.am
> index dc140df..d5d0631 100644
> --- a/src/mesa/drivers/dri/i965/Makefile.am
> +++ b/src/mesa/drivers/dri/i965/Makefile.am
> @@ -38,7 +38,8 @@ AM_CFLAGS = \
> $(DEFINES) \
> $(API_DEFINES) \
> $(VISIBILITY_CFLAGS) \
> - $(INTEL_CFLAGS)
> + $(INTEL_CFLAGS) \
> + $(MARCH_CORE2)
>
> AM_CXXFLAGS = $(AM_CFLAGS)
>
> --
> 1.7.10.4
Nice. Reviewed-by: Matt Turner <mattst88 at gmail.com>
More information about the mesa-dev
mailing list