summaryrefslogtreecommitdiff
path: root/lib/mesa/src/gallium/drivers/swr/meson.build
diff options
context:
space:
mode:
Diffstat (limited to 'lib/mesa/src/gallium/drivers/swr/meson.build')
-rw-r--r--lib/mesa/src/gallium/drivers/swr/meson.build272
1 files changed, 90 insertions, 182 deletions
diff --git a/lib/mesa/src/gallium/drivers/swr/meson.build b/lib/mesa/src/gallium/drivers/swr/meson.build
index ac712d804..b95c8bc1b 100644
--- a/lib/mesa/src/gallium/drivers/swr/meson.build
+++ b/lib/mesa/src/gallium/drivers/swr/meson.build
@@ -1,4 +1,4 @@
-# Copyright © 2017-2020 Intel Corporation
+# Copyright © 2017-2018 Intel Corporation
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
@@ -82,9 +82,7 @@ files_swr_mesa = files(
'rasterizer/jitter/streamout_jit.cpp',
'rasterizer/jitter/streamout_jit.h',
'rasterizer/jitter/shader_lib/DebugOutput.cpp',
- 'rasterizer/jitter/shader_lib/Scatter.cpp',
'rasterizer/jitter/functionpasses/lower_x86.cpp',
- 'rasterizer/memory/SurfaceState.h'
)
files_swr_arch = files(
@@ -129,8 +127,6 @@ files_swr_arch = files(
'rasterizer/core/state.h',
'rasterizer/core/state_funcs.h',
'rasterizer/core/tessellator.h',
- 'rasterizer/core/tessellator.hpp',
- 'rasterizer/core/tessellator.cpp',
'rasterizer/core/threads.cpp',
'rasterizer/core/threads.h',
'rasterizer/core/tilemgr.cpp',
@@ -157,12 +153,10 @@ files_swr_arch = files(
'rasterizer/memory/tilingtraits.h',
'rasterizer/memory/InitMemory.h',
'rasterizer/memory/InitMemory.cpp',
- 'rasterizer/memory/SurfaceState.h'
)
swr_context_files = files('swr_context.h')
swr_state_files = files('rasterizer/core/state.h')
-swr_surf_state_files = files('rasterizer/memory/SurfaceState.h')
swr_event_proto_files = files('rasterizer/archrast/events.proto')
swr_event_pproto_files = files('rasterizer/archrast/events_private.proto')
swr_gen_backend_files = files('rasterizer/codegen/templates/gen_backend.cpp')
@@ -187,201 +181,124 @@ swr_incs = include_directories(
'rasterizer/archrast', 'rasterizer',
)
-swr_cpp_args = []
+swr_cpp_args = [cpp_vis_args]
if cpp.has_argument('-fno-strict-aliasing')
swr_cpp_args += '-fno-strict-aliasing'
endif
-if cpp.has_argument('-Wno-aligned-new')
- swr_cpp_args += '-Wno-aligned-new'
-endif
-
swr_arch_libs = []
-swr_defines = []
+swr_arch_defines = []
swr_avx_args = cpp.first_supported_argument(
'-target-cpu=sandybridge', '-mavx', '-march=core-avx', '-tp=sandybridge',
- '/arch:AVX',
+ prefix : '''
+ #if !defined(__AVX__)
+ # error
+ #endif ''',
)
if swr_avx_args == []
error('Cannot find AVX support for swr. (these are required for SWR an all architectures.)')
endif
-
-shared_swr = get_option('shared-swr')
-if not shared_swr
- if with_swr_arches.length() > 1
- error('When SWR is linked statically only one architecture is allowed.')
- endif
- swr_defines += '-DHAVE_SWR_BUILTIN'
+if with_swr_arches.contains('avx')
+ swr_arch_defines += '-DHAVE_SWR_AVX'
+ swr_arch_libs += shared_library(
+ 'swrAVX',
+ [files_swr_common, files_swr_arch],
+ cpp_args : [swr_cpp_args, swr_avx_args, '-DKNOB_ARCH=KNOB_ARCH_AVX'],
+ link_args : [ld_args_gc_sections],
+ include_directories : [swr_incs],
+ dependencies : [dep_thread, dep_llvm],
+ version : '0.0.0',
+ install : true,
+ )
endif
-if with_swr_arches.contains('skx')
- swr_skx_args = cpp.first_supported_argument(
- '-march=skylake-avx512', '-target-cpu=x86-skylake', '-xCORE-AVX512',
+if with_swr_arches.contains('avx2')
+ swr_avx2_args = cpp.first_supported_argument(
+ '-target-cpu=haswell', '-march=core-avx2', '-tp=haswell',
+ prefix : '''
+ #if !defined(__AVX2__)
+ # error
+ #endif ''',
)
- if swr_skx_args == []
- error('Cannot find SKX support for swr.')
+ if swr_avx2_args == []
+ if cpp.has_argument(['-mavx2', '-mfma', '-mbmi2', '-mf16c'],
+ prefix : '''
+ #if !defined(__AVX2__)
+ # error
+ #endif ''')
+ swr_avx2_args = ['-mavx2', '-mfma', '-mbmi2', '-mf16c']
+ else
+ error('Cannot find AVX2 support for swr.')
+ endif
endif
- swr_defines += '-DHAVE_SWR_SKX'
- if shared_swr
- swr_arch_libs += shared_library(
- 'swrSKX',
- [files_swr_common, files_swr_arch],
- cpp_args : [
- cpp_msvc_compat_args, swr_cpp_args, swr_skx_args,
- '-DKNOB_ARCH=KNOB_ARCH_AVX512',
- ],
- gnu_symbol_visibility : 'hidden',
- link_args : [ld_args_gc_sections],
- include_directories : [swr_incs],
- dependencies : [dep_thread, dep_llvm],
- version : '0.0.0',
- soversion : host_machine.system() == 'windows' ? '' : '0',
- install : true,
- name_prefix : host_machine.system() == 'windows' ? '' : 'lib',
- )
- else
- swr_arch_libs += static_library(
- 'swrSKX',
- [files_swr_common, files_swr_arch],
- cpp_args : [
- cpp_msvc_compat_args, swr_cpp_args, swr_skx_args,
- '-DKNOB_ARCH=KNOB_ARCH_AVX512',
- ],
- gnu_symbol_visibility : 'hidden',
- link_args : [ld_args_gc_sections],
- include_directories : [swr_incs],
- dependencies : [dep_thread, dep_llvm],
- )
- endif
+ swr_arch_defines += '-DHAVE_SWR_AVX2'
+ swr_arch_libs += shared_library(
+ 'swrAVX2',
+ [files_swr_common, files_swr_arch],
+ cpp_args : [swr_cpp_args, swr_avx2_args, '-DKNOB_ARCH=KNOB_ARCH_AVX2'],
+ link_args : [ld_args_gc_sections],
+ include_directories : [swr_incs],
+ dependencies : [dep_thread, dep_llvm],
+ version : '0.0.0',
+ install : true,
+ )
endif
if with_swr_arches.contains('knl')
swr_knl_args = cpp.first_supported_argument(
- '-march=knl', '-target-cpu=mic-knl', '-xMIC-AVX512',
+ '-target-cpu=mic-knl', '-march=knl', '-xMIC-AVX512',
+ prefix : '''
+ #if !defined(__AVX512F__) || !defined(__AVX512ER__)
+ # error
+ #endif ''',
)
if swr_knl_args == []
error('Cannot find KNL support for swr.')
endif
- swr_defines += '-DHAVE_SWR_KNL'
- if shared_swr
- swr_arch_libs += shared_library(
- 'swrKNL',
- [files_swr_common, files_swr_arch],
- cpp_args : [
- cpp_msvc_compat_args, swr_cpp_args, swr_knl_args,
- '-DKNOB_ARCH=KNOB_ARCH_AVX512', '-DSIMD_ARCH_KNIGHTS',
- ],
- gnu_symbol_visibility : 'hidden',
- link_args : [ld_args_gc_sections],
- include_directories : [swr_incs],
- dependencies : [dep_thread, dep_llvm],
- version : '0.0.0',
- soversion : host_machine.system() == 'windows' ? '' : '0',
- install : true,
- name_prefix : host_machine.system() == 'windows' ? '' : 'lib',
- )
- else
- swr_arch_libs += static_library(
- 'swrKNL',
- [files_swr_common, files_swr_arch],
- cpp_args : [
- cpp_msvc_compat_args, swr_cpp_args, swr_knl_args,
- '-DKNOB_ARCH=KNOB_ARCH_AVX512', '-DSIMD_ARCH_KNIGHTS',
- ],
- gnu_symbol_visibility : 'hidden',
- link_args : [ld_args_gc_sections],
- include_directories : [swr_incs],
- dependencies : [dep_thread, dep_llvm],
- )
- endif
+ swr_arch_defines += '-DHAVE_SWR_KNL'
+ swr_arch_libs += shared_library(
+ 'swrKNL',
+ [files_swr_common, files_swr_arch],
+ cpp_args : [
+ swr_cpp_args, swr_knl_args, '-DKNOB_ARCH=KNOB_ARCH_AVX512',
+ '-DKNOB_ARCH_KNIGHTS',
+ ],
+ link_args : [ld_args_gc_sections],
+ include_directories : [swr_incs],
+ dependencies : [dep_thread, dep_llvm],
+ version : '0.0.0',
+ install : true,
+ )
endif
-
-if with_swr_arches.contains('avx2')
- swr_avx2_args = cpp.first_supported_argument(
- '-target-cpu=haswell', '-march=core-avx2', '-tp=haswell', '/arch:AVX2',
+if with_swr_arches.contains('skx')
+ swr_skx_args = cpp.first_supported_argument(
+ '-target-cpu=x86-skylake', '-march=skylake-avx512', '-xCORE-AVX512',
+ prefix : '''
+ #if !defined(__AVX512F__) || !defined(__AVX512BW__)
+ # error
+ #endif ''',
)
- if swr_avx2_args == []
- if cpp.has_argument(['-mavx2', '-mfma', '-mbmi2', '-mf16c'])
- swr_avx2_args = ['-mavx2', '-mfma', '-mbmi2', '-mf16c']
- else
- error('Cannot find AVX2 support for swr.')
- endif
- endif
-
- swr_defines += '-DHAVE_SWR_AVX2'
- if shared_swr
- swr_arch_libs += shared_library(
- 'swrAVX2',
- [files_swr_common, files_swr_arch],
- cpp_args : [
- cpp_msvc_compat_args, swr_cpp_args, swr_avx2_args,
- '-DKNOB_ARCH=KNOB_ARCH_AVX2',
- ],
- gnu_symbol_visibility : 'hidden',
- link_args : [ld_args_gc_sections],
- include_directories : [swr_incs],
- dependencies : [dep_thread, dep_llvm],
- version : '0.0.0',
- soversion : host_machine.system() == 'windows' ? '' : '0',
- install : true,
- name_prefix : host_machine.system() == 'windows' ? '' : 'lib',
- )
- else
- swr_arch_libs += static_library(
- 'swrAVX2',
- [files_swr_common, files_swr_arch],
- cpp_args : [
- cpp_msvc_compat_args, swr_cpp_args, swr_avx2_args,
- '-DKNOB_ARCH=KNOB_ARCH_AVX2',
- ],
- gnu_symbol_visibility : 'hidden',
- link_args : [ld_args_gc_sections],
- include_directories : [swr_incs],
- dependencies : [dep_thread, dep_llvm],
- )
+ if swr_skx_args == []
+ error('Cannot find SKX support for swr.')
endif
-endif
-if with_swr_arches.contains('avx')
- swr_defines += '-DHAVE_SWR_AVX'
- if shared_swr
- swr_arch_libs += shared_library(
- 'swrAVX',
- [files_swr_common, files_swr_arch],
- cpp_args : [
- cpp_msvc_compat_args, swr_cpp_args, swr_avx_args,
- '-DKNOB_ARCH=KNOB_ARCH_AVX',
- ],
- gnu_symbol_visibility : 'hidden',
- link_args : [ld_args_gc_sections],
- include_directories : [swr_incs],
- dependencies : [dep_thread, dep_llvm],
- version : '0.0.0',
- soversion : host_machine.system() == 'windows' ? '' : '0',
- install : true,
- name_prefix : host_machine.system() == 'windows' ? '' : 'lib',
- )
- else
- swr_arch_libs += static_library(
- 'swrAVX',
- [files_swr_common, files_swr_arch],
- cpp_args : [
- cpp_msvc_compat_args, swr_cpp_args, swr_avx_args,
- '-DKNOB_ARCH=KNOB_ARCH_AVX',
- ],
- gnu_symbol_visibility : 'hidden',
- link_args : [ld_args_gc_sections],
- include_directories : [swr_incs],
- dependencies : [dep_thread, dep_llvm],
- )
- endif
+ swr_arch_defines += '-DHAVE_SWR_SKX'
+ swr_arch_libs += shared_library(
+ 'swrSKX',
+ [files_swr_common, files_swr_arch],
+ cpp_args : [swr_cpp_args, swr_skx_args, '-DKNOB_ARCH=KNOB_ARCH_AVX512'],
+ link_args : [ld_args_gc_sections],
+ include_directories : [swr_incs],
+ dependencies : [dep_thread, dep_llvm],
+ version : '0.0.0',
+ install : true,
+ )
endif
-
if swr_arch_libs == []
error('SWR configured, but no SWR architectures configured')
endif
@@ -391,21 +308,12 @@ libmesaswr = static_library(
'mesaswr',
[files_swr_mesa, files_swr_common, gen_knobs_h, gen_knobs_cpp,
gen_builder_hpp, gen_builder_meta_hpp, gen_builder_intrin_hpp],
- cpp_args : [
- cpp_msvc_compat_args, swr_cpp_args, swr_avx_args,
- swr_defines,
- ],
- gnu_symbol_visibility : 'hidden',
- include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, swr_incs],
- dependencies : [dep_llvm, idep_mesautil],
+ cpp_args : [cpp_vis_args, swr_cpp_args, swr_avx_args, swr_arch_defines],
+ include_directories : [inc_common, swr_incs],
+ dependencies : dep_llvm,
)
-link_libs = [libmesaswr]
-if not shared_swr
- link_libs += swr_arch_libs
-endif
-
driver_swr = declare_dependency(
compile_args : '-DGALLIUM_SWR',
- link_with : link_libs
+ link_with : libmesaswr,
)