From 20294dceebc23236e33b22578245f7e6f41b6997 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 20 Jun 2019 10:27:28 -0700 Subject: [PATCH] mesa: Enable asm unconditionally, now that gen_matypes is gone. Reviewed-by: Eric Engestrom Reviewed-by: Matt Turner --- Android.common.mk | 3 - Android.mk | 7 --- meson.build | 94 ++++++++++------------------- meson_options.txt | 6 -- src/mesa/Android.libmesa_dricore.mk | 2 - src/mesa/Android.libmesa_st_mesa.mk | 2 - 6 files changed, 33 insertions(+), 81 deletions(-) diff --git a/Android.common.mk b/Android.common.mk index 327f13f5a38..825b60381d0 100644 --- a/Android.common.mk +++ b/Android.common.mk @@ -103,12 +103,9 @@ ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 26 && echo true),true) LOCAL_CFLAGS += -DHAVE_SYS_SHM_H endif -ifeq ($(strip $(MESA_ENABLE_ASM)),true) ifeq ($(TARGET_ARCH),x86) LOCAL_CFLAGS += \ -DUSE_X86_ASM - -endif endif ifeq ($(ARCH_ARM_HAVE_NEON),true) LOCAL_CFLAGS_arm += -DUSE_ARM_ASM diff --git a/Android.mk b/Android.mk index 5fe028c6d19..8d274e56836 100644 --- a/Android.mk +++ b/Android.mk @@ -83,13 +83,6 @@ endif $(foreach d, $(MESA_BUILD_CLASSIC) $(MESA_BUILD_GALLIUM), $(eval $(d) := true)) -# host and target must be the same arch to generate matypes.h -ifeq ($(TARGET_ARCH),$(HOST_ARCH)) -MESA_ENABLE_ASM := true -else -MESA_ENABLE_ASM := false -endif - ifneq ($(filter true, $(HAVE_GALLIUM_RADEONSI)),) MESA_ENABLE_LLVM := true endif diff --git a/meson.build b/meson.build index fd247fe00a9..5cce7eb018a 100644 --- a/meson.build +++ b/meson.build @@ -49,7 +49,6 @@ with_vulkan_icd_dir = get_option('vulkan-icd-dir') with_tests = get_option('build-tests') with_valgrind = get_option('valgrind') with_libunwind = get_option('libunwind') -with_asm = get_option('asm') with_glx_read_only_text = get_option('glx-read-only-text') with_glx_direct = get_option('glx-direct') with_osmesa = get_option('osmesa') @@ -972,69 +971,42 @@ endif # TODO: shared/static? Is this even worth doing? -# When cross compiling we generally need to turn off the use of assembly, -# because mesa's assembly relies on building an executable for the host system, -# and running it to get information about struct sizes. There is at least one -# case of cross compiling where we can use asm, and that's x86_64 -> x86 when -# host OS == build OS, since in that case the build machine can run the host's -# binaries. -if with_asm and meson.is_cross_build() - if build_machine.system() != host_machine.system() - # TODO: It may be possible to do this with an exe_wrapper (like wine). - message('Cross compiling from one OS to another, disabling assembly.') - with_asm = false - elif not (build_machine.cpu_family().startswith('x86') and host_machine.cpu_family() == 'x86') - # FIXME: Gentoo always sets -m32 for x86_64 -> x86 builds, resulting in an - # x86 -> x86 cross compile. We use startswith rather than == to handle this - # case. - # TODO: There may be other cases where the 64 bit version of the - # architecture can run 32 bit binaries (aarch64 and armv7 for example) - message(''' - Cross compiling to different architectures, and the host cannot run - the build machine's binaries. Disabling assembly. - ''') - with_asm = false - endif -endif - with_asm_arch = '' -if with_asm - if host_machine.cpu_family() == 'x86' - if system_has_kms_drm or host_machine.system() == 'gnu' - with_asm_arch = 'x86' - pre_args += ['-DUSE_X86_ASM', '-DUSE_MMX_ASM', '-DUSE_3DNOW_ASM', - '-DUSE_SSE_ASM'] - - if with_glx_read_only_text - pre_args += ['-DGLX_X86_READONLY_TEXT'] - endif - endif - elif host_machine.cpu_family() == 'x86_64' - if system_has_kms_drm - with_asm_arch = 'x86_64' - pre_args += ['-DUSE_X86_64_ASM'] - endif - elif host_machine.cpu_family() == 'arm' - if system_has_kms_drm - with_asm_arch = 'arm' - pre_args += ['-DUSE_ARM_ASM'] - endif - elif host_machine.cpu_family() == 'aarch64' - if system_has_kms_drm - with_asm_arch = 'aarch64' - pre_args += ['-DUSE_AARCH64_ASM'] - endif - elif host_machine.cpu_family() == 'sparc64' - if system_has_kms_drm - with_asm_arch = 'sparc' - pre_args += ['-DUSE_SPARC_ASM'] - endif - elif host_machine.cpu_family().startswith('ppc64') and host_machine.endian() == 'little' - if system_has_kms_drm - with_asm_arch = 'ppc64le' - pre_args += ['-DUSE_PPC64LE_ASM'] +if host_machine.cpu_family() == 'x86' + if system_has_kms_drm or host_machine.system() == 'gnu' + with_asm_arch = 'x86' + pre_args += ['-DUSE_X86_ASM', '-DUSE_MMX_ASM', '-DUSE_3DNOW_ASM', + '-DUSE_SSE_ASM'] + + if with_glx_read_only_text + pre_args += ['-DGLX_X86_READONLY_TEXT'] endif endif +elif host_machine.cpu_family() == 'x86_64' + if system_has_kms_drm + with_asm_arch = 'x86_64' + pre_args += ['-DUSE_X86_64_ASM'] + endif +elif host_machine.cpu_family() == 'arm' + if system_has_kms_drm + with_asm_arch = 'arm' + pre_args += ['-DUSE_ARM_ASM'] + endif +elif host_machine.cpu_family() == 'aarch64' + if system_has_kms_drm + with_asm_arch = 'aarch64' + pre_args += ['-DUSE_AARCH64_ASM'] + endif +elif host_machine.cpu_family() == 'sparc64' + if system_has_kms_drm + with_asm_arch = 'sparc' + pre_args += ['-DUSE_SPARC_ASM'] + endif +elif host_machine.cpu_family().startswith('ppc64') and host_machine.endian() == 'little' + if system_has_kms_drm + with_asm_arch = 'ppc64le' + pre_args += ['-DUSE_PPC64LE_ASM'] + endif endif # Check for standard headers and functions diff --git a/meson_options.txt b/meson_options.txt index 1f72faabee8..2a549c7dc37 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -227,12 +227,6 @@ option( value : false, description : 'Enable GLVND support.' ) -option( - 'asm', - type : 'boolean', - value : true, - description : 'Build assembly code if possible' -) option( 'glx-read-only-text', type : 'boolean', diff --git a/src/mesa/Android.libmesa_dricore.mk b/src/mesa/Android.libmesa_dricore.mk index 792117767b4..8eb6aabe836 100644 --- a/src/mesa/Android.libmesa_dricore.mk +++ b/src/mesa/Android.libmesa_dricore.mk @@ -39,11 +39,9 @@ LOCAL_MODULE_CLASS := STATIC_LIBRARIES LOCAL_SRC_FILES := \ $(MESA_FILES) -ifeq ($(strip $(MESA_ENABLE_ASM)),true) ifeq ($(TARGET_ARCH),x86) LOCAL_SRC_FILES += $(X86_FILES) endif # x86 -endif # MESA_ENABLE_ASM ifeq ($(ARCH_X86_HAVE_SSE4_1),true) LOCAL_WHOLE_STATIC_LIBRARIES := \ diff --git a/src/mesa/Android.libmesa_st_mesa.mk b/src/mesa/Android.libmesa_st_mesa.mk index ddfd03059c5..16153a3c5bd 100644 --- a/src/mesa/Android.libmesa_st_mesa.mk +++ b/src/mesa/Android.libmesa_st_mesa.mk @@ -42,11 +42,9 @@ LOCAL_GENERATED_SOURCES := \ $(MESA_GEN_GLSL_H) \ $(MESA_GEN_NIR_H) -ifeq ($(strip $(MESA_ENABLE_ASM)),true) ifeq ($(TARGET_ARCH),x86) LOCAL_SRC_FILES += $(X86_FILES) endif # x86 -endif # MESA_ENABLE_ASM ifeq ($(ARCH_X86_HAVE_SSE4_1),true) LOCAL_WHOLE_STATIC_LIBRARIES := \ -- 2.30.2