> On Jun 12, 2016, at 3:56 AM, Steven Newbury <st...@snewbury.org.uk> wrote: > > On Fri, 2016-06-10 at 16:05 -0400, Ilia Mirkin wrote: >> On Fri, Jun 10, 2016 at 3:43 PM, Tim Rowley <timothy.o.rowley@intel.c >> om> wrote: >>> >>> Previously used core-avx-i was for ivybridge; >>> corei7-avx allows sandybridge. >>> --- >>> src/gallium/drivers/swr/Makefile.am | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/src/gallium/drivers/swr/Makefile.am >>> b/src/gallium/drivers/swr/Makefile.am >>> index d211f2e..8156cf2 100644 >>> --- a/src/gallium/drivers/swr/Makefile.am >>> +++ b/src/gallium/drivers/swr/Makefile.am >>> @@ -124,7 +124,7 @@ COMMON_LDFLAGS = \ >>> lib_LTLIBRARIES = libswrAVX.la libswrAVX2.la >>> >>> libswrAVX_la_CXXFLAGS = \ >>> - -march=core-avx-i \ >>> + -march=corei7-avx \ >> Just wondering if it'd be enough to say like >> >> -march=x86_64 >> -mavx >> >> and add -mavx2 for libswrAVX2. >> >> I suspect you've iterated through this 20 times and this has some >> shortcoming I'm not thinking of, but figured I'd point it out just in >> case it helps. >> >> -ilia >> > Maybe I'm the only one who finds it horrible to override -march from > within project build systems. It causes no end of problems with LTO, > and results in objects being built inappropriately for the target as > specified by the builder.
I agree that the way swr is built can be improved and welcome ideas/discussion for work on the master branch, but for the moment I’m trying to get the 12.0 branch in good shape for swr with non-invasive changes (as we’ve tested the current setup pretty extensively). > Why not use function attributes? Either compile a function > specifically for a particular target, or specifically enable AVX though > "__attribute__ ((__target__ ("avx")))" (ideally with a fall-back > implementation detected at run-time when the instruction set isn't > supported). Even better, have it also protected at build-time by a > simple check for __AVX__ so the code can be compiled out entirely where > the package builder has specified -march(=native) as a build flag. One problem with the function attribute path is that as far as I know, MSVC does not have a similar feature. -Tim >>> >>> -DKNOB_ARCH=KNOB_ARCH_AVX \ >>> $(COMMON_CXXFLAGS) _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev