X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fdrivers%2Fswr%2FSConscript;h=a89d02c5db0828b8acf6013907cc90489ea69f15;hb=8449c33a279113f1b05d79f3e8439f0d537e18ff;hp=cdb85e2cad458061191686156b4c1e7cc5353438;hpb=0b80b025021f97d27520390867c20336dc891a16;p=mesa.git diff --git a/src/gallium/drivers/swr/SConscript b/src/gallium/drivers/swr/SConscript index cdb85e2cad4..a89d02c5db0 100644 --- a/src/gallium/drivers/swr/SConscript +++ b/src/gallium/drivers/swr/SConscript @@ -8,12 +8,12 @@ if not env['swr']: 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() @@ -28,13 +28,7 @@ if env['platform'] == 'windows': 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 = [ @@ -42,6 +36,7 @@ if not env['msvc'] : ]) swrroot = '#src/gallium/drivers/swr/' +srcroot = Dir(swrroot).abspath bldroot = Dir('.').abspath env.CodeGenerate( @@ -59,8 +54,8 @@ 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', @@ -81,10 +76,19 @@ Depends('rasterizer/jitter/gen_builder.hpp', 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_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_x86_h' + command = python_cmd + ' $SCRIPT --output ' + bldroot + '/rasterizer/jitter --gen_intrin_h' ) Depends('rasterizer/jitter/gen_builder.hpp', swrroot + 'rasterizer/codegen/templates/gen_builder.hpp') @@ -102,8 +106,10 @@ 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' + command = python_cmd + ' $SCRIPT --proto $SOURCE --proto_private ' + srcroot + '/rasterizer/archrast/events_private.proto --output $TARGET --gen_event_hpp' ) +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') @@ -111,8 +117,10 @@ 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' + command = python_cmd + ' $SCRIPT --proto $SOURCE --proto_private ' + srcroot + '/rasterizer/archrast/events_private.proto --output $TARGET --gen_event_cpp' ) +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') @@ -120,8 +128,10 @@ 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' + command = python_cmd + ' $SCRIPT --proto $SOURCE --proto_private ' + srcroot + '/rasterizer/archrast/events_private.proto --output $TARGET --gen_eventhandler_hpp' ) +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') @@ -129,8 +139,10 @@ 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' + command = python_cmd + ' $SCRIPT --proto $SOURCE --proto_private ' + srcroot + '/rasterizer/archrast/events_private.proto --output $TARGET --gen_eventhandlerfile_hpp' ) +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') @@ -140,12 +152,44 @@ Depends('rasterizer/jitter/gen_state_llvm.h', # 2 centroid # 2 forcedSampleCount # 2 canEarlyZ +backendPixelRateFileCount = 4 +backendPixelRateFilePat = "rasterizer/core/backends/gen_BackendPixelRate%s.cpp" +backendPixelRateFiles = list(backendPixelRateFilePat % x for x in range(0, backendPixelRateFileCount)) env.CodeGenerate( - target = 'rasterizer/core/gen_BackendPixelRate0.cpp', + target = 'rasterizer/core/backends/gen_BackendPixelRate.hpp', script = swrroot + 'rasterizer/codegen/gen_backends.py', source = '', - command = python_cmd + ' $SCRIPT --outdir ' + bldroot + '/rasterizer/core --dim 5 2 3 2 2 2 --split 0 --cpp' -) + command = python_cmd + ' $SCRIPT --outdir ' + bldroot + '/rasterizer/core/backends --dim 5 2 3 2 2 2 --numfiles ' + str(backendPixelRateFileCount) + ' --cpp --hpp' + ) +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'] + ) + Depends('rasterizer/jitter/gen_state_llvm.h', swrroot + 'rasterizer/codegen/templates/gen_backend.cpp') @@ -153,21 +197,18 @@ Depends('rasterizer/jitter/gen_state_llvm.h', built_sources = [ 'rasterizer/codegen/gen_knobs.cpp', 'rasterizer/archrast/gen_ar_event.cpp', - 'rasterizer/core/gen_BackendPixelRate0.cpp', ] +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', @@ -209,14 +250,25 @@ swrAVX2 = envavx2.SharedLibrary( ) 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'])