Browse Source

Set FTZ and DAZ flags by default for all JACK client threads.

tags/non-daw-v1.2.0
Jonathan Moore Liles 12 years ago
parent
commit
fab76b1c4f
2 changed files with 50 additions and 36 deletions
  1. +8
    -1
      nonlib/JACK/Client.C
  2. +42
    -35
      wscript

+ 8
- 1
nonlib/JACK/Client.C View File

@@ -26,7 +26,9 @@


#include "debug.h" #include "debug.h"



#ifdef __SSE2_MATH__
#include <xmmintrin.h>
#endif


namespace JACK namespace JACK
{ {
@@ -113,6 +115,11 @@ namespace JACK
void void
Client::thread_init ( void *arg ) Client::thread_init ( void *arg )
{ {
#if __SSE2_MATH__
/* set FTZ and DAZ flags */
_mm_setcsr(_mm_getcsr() | 0x8040);
#endif

((Client*)arg)->thread_init(); ((Client*)arg)->thread_init();
} }




+ 42
- 35
wscript View File

@@ -19,6 +19,8 @@ def options(opt):
# help="Link to system-installed shared NTK instead of bundled version") # help="Link to system-installed shared NTK instead of bundled version")
opt.add_option('--enable-debug', action='store_true', default=False, dest='debug', opt.add_option('--enable-debug', action='store_true', default=False, dest='debug',
help='Build for debugging') help='Build for debugging')
opt.add_option('--disable-sse', action='store_false', default=True, dest='sse',
help='Disable SSE optimization')
opt.add_option('--project', action='store', default=False, dest='project', opt.add_option('--project', action='store', default=False, dest='project',
help='Limit build to a single project (' + ', '.join( projects ) + ')') help='Limit build to a single project (' + ', '.join( projects ) + ')')


@@ -33,24 +35,59 @@ def configure(conf):
conf.load('gccdeps') conf.load('gccdeps')
conf.line_just = 52 conf.line_just = 52


conf.env['LIB_PTHREAD'] = ['pthread']
conf.env['LIB_DL'] = ['dl']
conf.env['LIB_M'] = ['m']

# NTK_EXTRA_FLAGS=''
# if not Options.options.use_system_ntk:
# print 'Using bundled NTK'
# os.environ['PKG_CONFIG_PATH'] = 'lib/ntk/build/:' + os.environ.get('PKG_CONFIG_PATH','')
# NTK_EXTRA_FLAGS='--static'
# PWD = os.environ.get('PWD','')
# os.environ['PATH'] = PWD + '/lib/ntk/build/fluid:' + os.environ.get('PATH','')

conf.check_cfg(package='ntk', uselib_store='NTK', args='--cflags --libs',
atleast_version='1.3.0', mandatory=True)
conf.check_cfg(package='ntk_images', uselib_store='NTK_IMAGES', args=' --cflags --libs',
atleast_version='1.3.0', mandatory=True)

conf.find_program('ntk-fluid', var='NTK_FLUID')

conf.check_cfg(package='jack', uselib_store='JACK', args="--cflags --libs",
atleast_version='0.103.0', mandatory=True)

conf.check_cfg(package='liblo', uselib_store='LIBLO',args="--cflags --libs",
atleast_version='0.26', mandatory=True)

###

for i in common:
conf.recurse(i)

optimization_flags = [ optimization_flags = [
"-O3", "-O3",
"-fomit-frame-pointer", "-fomit-frame-pointer",
"-ffast-math", "-ffast-math",
"-msse",
"-mfpmath=sse",
"-ftree-vectorize",
# "-fstrength-reduce",
"-pipe" "-pipe"
] ]
if Options.options.sse:
print('Using SSE optimization')
optimization_flags.extend( [
"-msse2",
"-mfpmath=sse",
"-ftree-vectorize" ] )
conf.define( 'USE_SSE', 1 )


debug_flags = [ '-O0', '-g3' ] debug_flags = [ '-O0', '-g3' ]



if Options.options.debug: if Options.options.debug:
print('Building for debugging')
conf.env.append_value('CFLAGS', debug_flags ) conf.env.append_value('CFLAGS', debug_flags )
conf.env.append_value('CXXFLAGS', debug_flags ) conf.env.append_value('CXXFLAGS', debug_flags )
else: else:
print('Building for performance')
conf.env.append_value('CFLAGS', optimization_flags ) conf.env.append_value('CFLAGS', optimization_flags )
conf.env.append_value('CXXFLAGS', optimization_flags ) conf.env.append_value('CXXFLAGS', optimization_flags )
conf.define( 'NDEBUG', 1 ) conf.define( 'NDEBUG', 1 )
@@ -70,36 +107,6 @@ def configure(conf):
conf.env.append_value('CFLAGS', global_flags ) conf.env.append_value('CFLAGS', global_flags )
conf.env.append_value('CXXFLAGS', global_flags ) conf.env.append_value('CXXFLAGS', global_flags )


conf.env['LIB_PTHREAD'] = ['pthread']
conf.env['LIB_DL'] = ['dl']
conf.env['LIB_M'] = ['m']

# NTK_EXTRA_FLAGS=''
# if not Options.options.use_system_ntk:
# print 'Using bundled NTK'
# os.environ['PKG_CONFIG_PATH'] = 'lib/ntk/build/:' + os.environ.get('PKG_CONFIG_PATH','')
# NTK_EXTRA_FLAGS='--static'
# PWD = os.environ.get('PWD','')
# os.environ['PATH'] = PWD + '/lib/ntk/build/fluid:' + os.environ.get('PATH','')

conf.check_cfg(package='ntk', uselib_store='NTK', args='--cflags --libs',
atleast_version='1.3.0', mandatory=True)
conf.check_cfg(package='ntk_images', uselib_store='NTK_IMAGES', args=' --cflags --libs',
atleast_version='1.3.0', mandatory=True)

conf.find_program('ntk-fluid', var='NTK_FLUID')

conf.check_cfg(package='jack', uselib_store='JACK', args="--cflags --libs",
atleast_version='0.103.0', mandatory=True)

conf.check_cfg(package='liblo', uselib_store='LIBLO',args="--cflags --libs",
atleast_version='0.26', mandatory=True)


###

for i in common:
conf.recurse(i)


conf.env.PROJECT = conf.options.project conf.env.PROJECT = conf.options.project




Loading…
Cancel
Save