Return()
if not env['llvm']:
- print 'warning: LLVM disabled: not building swr'
+ print('warning: LLVM disabled: not building swr')
env['swr'] = False
Return()
-if env['LLVM_VERSION'] < distutils.version.LooseVersion('3.9'):
- print "warning: swr requires LLVM >= 3.9: not building swr"
+if env['LLVM_VERSION'] < distutils.version.LooseVersion('6.0'):
+ print("warning: swr requires LLVM >= 6.0: not building swr")
env['swr'] = False
Return()
else:
llvm_config = os.environ.get('LLVM_CONFIG', 'llvm-config')
llvm_includedir = env.backtick('%s --includedir' % llvm_config).rstrip()
- print "llvm include dir %s" % llvm_includedir
-
-# the loader is included in the mesa lib itself
-# All the remaining files are in loadable modules
-loadersource = env.ParseSourceList('Makefile.sources', [
- 'LOADER_SOURCES'
-])
+ print("llvm include dir %s" % llvm_includedir)
if not env['msvc'] :
env.Append(CCFLAGS = [
])
swrroot = '#src/gallium/drivers/swr/'
+srcroot = Dir(swrroot).abspath
bldroot = Dir('.').abspath
env.CodeGenerate(
source = '',
command = python_cmd + ' $SCRIPT --output $TARGET --gen_h'
)
-Depends('rasterizer/codegen/gen_knobs.cpp',
- swrroot + 'rasterizer/codegen/templates/gen_knobs.cpp')
+Depends('rasterizer/codegen/gen_knobs.h',
+ swrroot + 'rasterizer/codegen/templates/gen_knobs.h')
env.CodeGenerate(
target = 'rasterizer/jitter/gen_state_llvm.h',
swrroot + 'rasterizer/codegen/templates/gen_builder.hpp')
env.CodeGenerate(
- target = 'rasterizer/jitter/gen_builder_x86.hpp',
+ target = 'rasterizer/jitter/gen_builder_meta.hpp',
script = swrroot + 'rasterizer/codegen/gen_llvm_ir_macros.py',
source = '',
- command = python_cmd + ' $SCRIPT --output ' + bldroot + '/rasterizer/jitter --gen_x86_h'
+ command = python_cmd + ' $SCRIPT --output ' + bldroot + '/rasterizer/jitter --gen_meta_h'
+)
+Depends('rasterizer/jitter/gen_builder.hpp',
+ swrroot + 'rasterizer/codegen/templates/gen_builder.hpp')
+
+env.CodeGenerate(
+ target = 'rasterizer/jitter/gen_builder_intrin.hpp',
+ script = swrroot + 'rasterizer/codegen/gen_llvm_ir_macros.py',
+ source = '',
+ command = python_cmd + ' $SCRIPT --output ' + bldroot + '/rasterizer/jitter --gen_intrin_h'
)
Depends('rasterizer/jitter/gen_builder.hpp',
swrroot + 'rasterizer/codegen/templates/gen_builder.hpp')
swrroot + 'rasterizer/codegen/templates/gen_llvm.hpp')
env.CodeGenerate(
- target = 'rasterizer/archrast/gen_ar_event.hpp',
- script = swrroot + 'rasterizer/codegen/gen_archrast.py',
- source = 'rasterizer/archrast/events.proto',
- command = python_cmd + ' $SCRIPT --proto $SOURCE --output $TARGET --gen_event_h'
+ target = './gen_surf_state_llvm.h',
+ script = swrroot + 'rasterizer/codegen/gen_llvm_types.py',
+ source = 'rasterizer/memory/SurfaceState.h',
+ command = python_cmd + ' $SCRIPT --input $SOURCE --output $TARGET'
)
Depends('rasterizer/jitter/gen_state_llvm.h',
- swrroot + 'rasterizer/codegen/templates/gen_ar_event.hpp')
+ swrroot + 'rasterizer/codegen/templates/gen_llvm.hpp')
+
env.CodeGenerate(
- target = 'rasterizer/archrast/gen_ar_event.cpp',
script = swrroot + 'rasterizer/codegen/gen_archrast.py',
- source = 'rasterizer/archrast/events.proto',
- command = python_cmd + ' $SCRIPT --proto $SOURCE --output $TARGET --gen_event_cpp'
-)
+ target = ['rasterizer/archrast/gen_ar_event.hpp',
+ 'rasterizer/archrast/gen_ar_event.cpp',
+ 'rasterizer/archrast/gen_ar_eventhandler.hpp',
+ 'rasterizer/archrast/gen_ar_eventhandlerfile.hpp'],
+ source = [srcroot + '/rasterizer/archrast/events.proto',
+ srcroot + '/rasterizer/archrast/events_private.proto'],
+ command = python_cmd + ' $SCRIPT --proto $SOURCES --output-dir ' + bldroot + '/rasterizer/archrast')
+Depends('rasterizer/archrast/gen_ar_event.hpp',
+ swrroot + 'rasterizer/archrast/events_private.proto')
+Depends('rasterizer/jitter/gen_state_llvm.h',
+ swrroot + 'rasterizer/codegen/templates/gen_ar_event.hpp')
+Depends('rasterizer/archrast/gen_ar_event.cpp',
+ swrroot + 'rasterizer/archrast/events_private.proto')
Depends('rasterizer/jitter/gen_state_llvm.h',
swrroot + 'rasterizer/codegen/templates/gen_ar_event.cpp')
-
-env.CodeGenerate(
- target = 'rasterizer/archrast/gen_ar_eventhandler.hpp',
- script = swrroot + 'rasterizer/codegen/gen_archrast.py',
- source = 'rasterizer/archrast/events.proto',
- command = python_cmd + ' $SCRIPT --proto $SOURCE --output $TARGET --gen_eventhandler_h'
-)
+Depends('rasterizer/archrast/gen_ar_eventhandler.hpp',
+ swrroot + 'rasterizer/archrast/events_private.proto')
Depends('rasterizer/jitter/gen_state_llvm.h',
swrroot + 'rasterizer/codegen/templates/gen_ar_eventhandler.hpp')
-
-env.CodeGenerate(
- target = 'rasterizer/archrast/gen_ar_eventhandlerfile.hpp',
- script = swrroot + 'rasterizer/codegen/gen_archrast.py',
- source = 'rasterizer/archrast/events.proto',
- command = python_cmd + ' $SCRIPT --proto $SOURCE --output $TARGET --gen_eventhandlerfile_h'
-)
+Depends('rasterizer/archrast/gen_ar_eventhandlerfile.hpp',
+ swrroot + 'rasterizer/archrast/events_private.proto')
Depends('rasterizer/jitter/gen_state_llvm.h',
swrroot + 'rasterizer/codegen/templates/gen_ar_eventhandlerfile.hpp')
# 2 canEarlyZ
backendPixelRateFileCount = 4
backendPixelRateFilePat = "rasterizer/core/backends/gen_BackendPixelRate%s.cpp"
-backendPixelRateFiles = map(lambda x: backendPixelRateFilePat % x,
- range(0, backendPixelRateFileCount))
+backendPixelRateFiles = list(backendPixelRateFilePat % x for x in range(0, backendPixelRateFileCount))
env.CodeGenerate(
target = 'rasterizer/core/backends/gen_BackendPixelRate.hpp',
script = swrroot + 'rasterizer/codegen/gen_backends.py',
Depends(backendPixelRateFiles,
['rasterizer/core/backends/gen_BackendPixelRate.hpp',
'rasterizer/archrast/gen_ar_event.hpp',
+ 'rasterizer/archrast/gen_ar_eventhandler.hpp',
+ 'rasterizer/codegen/gen_knobs.h']
+ )
+
+# 5 SWR_MULTISAMPLE_TYPE_COUNT
+# 2 CenterPattern
+# 2 Conservative
+# 3 SWR_INPUT_COVERAGE_COUNT
+# 5 STATE_VALID_TRI_EDGE_COUNT
+# 2 RasterScissorEdges
+genRasterizerFileCount = 4
+genRasterizerFilePat = "rasterizer/core/backends/gen_rasterizer%s.cpp"
+genRasterizerFiles = list(genRasterizerFilePat % x for x in range(0, genRasterizerFileCount))
+env.CodeGenerate(
+ target = 'rasterizer/core/backends/gen_rasterizer.hpp',
+ script = swrroot + 'rasterizer/codegen/gen_backends.py',
+ source = '',
+ command = python_cmd + ' $SCRIPT --outdir ' + bldroot + '/rasterizer/core/backends --rast --dim 5 2 2 3 5 2 --numfiles ' + str(genRasterizerFileCount) + ' --cpp --hpp'
+ )
+Depends(genRasterizerFiles,
+ ['rasterizer/core/backends/gen_rasterizer.hpp',
+ 'rasterizer/archrast/gen_ar_event.hpp',
+ 'rasterizer/archrast/gen_ar_eventhandler.hpp',
'rasterizer/codegen/gen_knobs.h']
)
'rasterizer/archrast/gen_ar_event.cpp',
]
-built_sources += backendPixelRateFiles
+built_sources += [backendPixelRateFiles, genRasterizerFiles]
source = built_sources
source += env.ParseSourceList(swrroot + 'Makefile.sources', [
- 'CXX_SOURCES',
'ARCHRAST_CXX_SOURCES',
'COMMON_CXX_SOURCES',
'CORE_CXX_SOURCES',
- 'JITTER_CXX_SOURCES',
'MEMORY_CXX_SOURCES'
])
-env.Prepend(LIBS = [ mesautil, mesa, gallium ])
-
env.Prepend(CPPPATH = [
'.',
'rasterizer',
)
env.Alias('swrAVX2', swrAVX2)
+source = env.ParseSourceList(swrroot + 'Makefile.sources', [
+ 'CXX_SOURCES',
+ 'COMMON_CXX_SOURCES',
+ 'JITTER_CXX_SOURCES',
+ 'LOADER_SOURCES'
+])
+source += [
+ 'rasterizer/codegen/gen_knobs.cpp',
+ 'rasterizer/archrast/gen_ar_event.cpp',
+ ]
# main SWR lib
-swr = env.ConvenienceLibrary(
+envSWR = envavx.Clone() # pick up the arch flag for intrinsic usage
+envSWR.Append(CPPDEFINES = ['HAVE_SWR_AVX', 'HAVE_SWR_AVX2'])
+swr = envSWR.ConvenienceLibrary(
target = 'swr',
- source = loadersource,
+ source = source,
)
-
# treat arch libs as dependencies, even though they are not linked
# into swr, so we don't have to build them separately
Depends(swr, ['swrAVX', 'swrAVX2'])