mesa: Enable asm unconditionally, now that gen_matypes is gone.
Reviewed-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
@@ -103,12 +103,9 @@ ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 26 && echo true),true)
|
|||||||
LOCAL_CFLAGS += -DHAVE_SYS_SHM_H
|
LOCAL_CFLAGS += -DHAVE_SYS_SHM_H
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(strip $(MESA_ENABLE_ASM)),true)
|
|
||||||
ifeq ($(TARGET_ARCH),x86)
|
ifeq ($(TARGET_ARCH),x86)
|
||||||
LOCAL_CFLAGS += \
|
LOCAL_CFLAGS += \
|
||||||
-DUSE_X86_ASM
|
-DUSE_X86_ASM
|
||||||
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
ifeq ($(ARCH_ARM_HAVE_NEON),true)
|
ifeq ($(ARCH_ARM_HAVE_NEON),true)
|
||||||
LOCAL_CFLAGS_arm += -DUSE_ARM_ASM
|
LOCAL_CFLAGS_arm += -DUSE_ARM_ASM
|
||||||
|
@@ -83,13 +83,6 @@ endif
|
|||||||
|
|
||||||
$(foreach d, $(MESA_BUILD_CLASSIC) $(MESA_BUILD_GALLIUM), $(eval $(d) := true))
|
$(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)),)
|
ifneq ($(filter true, $(HAVE_GALLIUM_RADEONSI)),)
|
||||||
MESA_ENABLE_LLVM := true
|
MESA_ENABLE_LLVM := true
|
||||||
endif
|
endif
|
||||||
|
92
meson.build
92
meson.build
@@ -49,7 +49,6 @@ with_vulkan_icd_dir = get_option('vulkan-icd-dir')
|
|||||||
with_tests = get_option('build-tests')
|
with_tests = get_option('build-tests')
|
||||||
with_valgrind = get_option('valgrind')
|
with_valgrind = get_option('valgrind')
|
||||||
with_libunwind = get_option('libunwind')
|
with_libunwind = get_option('libunwind')
|
||||||
with_asm = get_option('asm')
|
|
||||||
with_glx_read_only_text = get_option('glx-read-only-text')
|
with_glx_read_only_text = get_option('glx-read-only-text')
|
||||||
with_glx_direct = get_option('glx-direct')
|
with_glx_direct = get_option('glx-direct')
|
||||||
with_osmesa = get_option('osmesa')
|
with_osmesa = get_option('osmesa')
|
||||||
@@ -972,69 +971,42 @@ endif
|
|||||||
|
|
||||||
# TODO: shared/static? Is this even worth doing?
|
# 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 = ''
|
with_asm_arch = ''
|
||||||
if with_asm
|
if host_machine.cpu_family() == 'x86'
|
||||||
if host_machine.cpu_family() == 'x86'
|
if system_has_kms_drm or host_machine.system() == 'gnu'
|
||||||
if system_has_kms_drm or host_machine.system() == 'gnu'
|
with_asm_arch = 'x86'
|
||||||
with_asm_arch = 'x86'
|
pre_args += ['-DUSE_X86_ASM', '-DUSE_MMX_ASM', '-DUSE_3DNOW_ASM',
|
||||||
pre_args += ['-DUSE_X86_ASM', '-DUSE_MMX_ASM', '-DUSE_3DNOW_ASM',
|
'-DUSE_SSE_ASM']
|
||||||
'-DUSE_SSE_ASM']
|
|
||||||
|
|
||||||
if with_glx_read_only_text
|
if with_glx_read_only_text
|
||||||
pre_args += ['-DGLX_X86_READONLY_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
|
||||||
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
|
endif
|
||||||
|
|
||||||
# Check for standard headers and functions
|
# Check for standard headers and functions
|
||||||
|
@@ -227,12 +227,6 @@ option(
|
|||||||
value : false,
|
value : false,
|
||||||
description : 'Enable GLVND support.'
|
description : 'Enable GLVND support.'
|
||||||
)
|
)
|
||||||
option(
|
|
||||||
'asm',
|
|
||||||
type : 'boolean',
|
|
||||||
value : true,
|
|
||||||
description : 'Build assembly code if possible'
|
|
||||||
)
|
|
||||||
option(
|
option(
|
||||||
'glx-read-only-text',
|
'glx-read-only-text',
|
||||||
type : 'boolean',
|
type : 'boolean',
|
||||||
|
@@ -39,11 +39,9 @@ LOCAL_MODULE_CLASS := STATIC_LIBRARIES
|
|||||||
LOCAL_SRC_FILES := \
|
LOCAL_SRC_FILES := \
|
||||||
$(MESA_FILES)
|
$(MESA_FILES)
|
||||||
|
|
||||||
ifeq ($(strip $(MESA_ENABLE_ASM)),true)
|
|
||||||
ifeq ($(TARGET_ARCH),x86)
|
ifeq ($(TARGET_ARCH),x86)
|
||||||
LOCAL_SRC_FILES += $(X86_FILES)
|
LOCAL_SRC_FILES += $(X86_FILES)
|
||||||
endif # x86
|
endif # x86
|
||||||
endif # MESA_ENABLE_ASM
|
|
||||||
|
|
||||||
ifeq ($(ARCH_X86_HAVE_SSE4_1),true)
|
ifeq ($(ARCH_X86_HAVE_SSE4_1),true)
|
||||||
LOCAL_WHOLE_STATIC_LIBRARIES := \
|
LOCAL_WHOLE_STATIC_LIBRARIES := \
|
||||||
|
@@ -42,11 +42,9 @@ LOCAL_GENERATED_SOURCES := \
|
|||||||
$(MESA_GEN_GLSL_H) \
|
$(MESA_GEN_GLSL_H) \
|
||||||
$(MESA_GEN_NIR_H)
|
$(MESA_GEN_NIR_H)
|
||||||
|
|
||||||
ifeq ($(strip $(MESA_ENABLE_ASM)),true)
|
|
||||||
ifeq ($(TARGET_ARCH),x86)
|
ifeq ($(TARGET_ARCH),x86)
|
||||||
LOCAL_SRC_FILES += $(X86_FILES)
|
LOCAL_SRC_FILES += $(X86_FILES)
|
||||||
endif # x86
|
endif # x86
|
||||||
endif # MESA_ENABLE_ASM
|
|
||||||
|
|
||||||
ifeq ($(ARCH_X86_HAVE_SSE4_1),true)
|
ifeq ($(ARCH_X86_HAVE_SSE4_1),true)
|
||||||
LOCAL_WHOLE_STATIC_LIBRARIES := \
|
LOCAL_WHOLE_STATIC_LIBRARIES := \
|
||||||
|
Reference in New Issue
Block a user