1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-04-30 23:59:41 +02:00

Enable SSE in LAME

Maybe a 5% speed improvement - but hard to judge.  Possibly not worth it?
This commit is contained in:
James Crook 2019-03-27 15:08:34 +00:00
parent 5aa08950a5
commit 01d95a4113
5 changed files with 189 additions and 18 deletions

View File

@ -77,7 +77,7 @@
</ProjectReference>
<Link>
<AdditionalDependencies>expat.lib;filedialog.lib;libmp3lame.lib;libmpg123.lib;libsndfile.lib;libsoxr.lib;portaudio-v19.lib;comctl32.lib;rpcrt4.lib;wsock32.lib;winmm.lib;oleacc.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(OutDir);$(WXWIN)\lib\vc_dll;$(GSTREAMER_SDK)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories>$(OutDir)..\ReleaseSSE2\;$(OutDir);$(WXWIN)\lib\vc_dll;$(GSTREAMER_SDK)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<SubSystem>Windows</SubSystem>
<StackReserveSize>8388608</StackReserveSize>
<TargetMachine>MachineX86</TargetMachine>

View File

@ -50,9 +50,7 @@
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
<Import Project="vc9_nasm.props" />
</ImportGroup>
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseSSE2|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="vc9_lame_config.props" />
@ -107,7 +105,7 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseNASM|Win32'">
<ClCompile>
<Optimization>Full</Optimization>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
@ -235,6 +233,7 @@
<ClCompile Include="..\..\..\lib-src\libmp3lame\util.c" />
<ClCompile Include="..\..\..\lib-src\libmp3lame\vbrquantize.c" />
<ClCompile Include="..\..\..\lib-src\libmp3lame\VbrTag.c" />
<ClCompile Include="..\..\..\lib-src\libmp3lame\vector\xmm_quantize_sub.c" />
<ClCompile Include="..\..\..\lib-src\libmp3lame\version.c" />
</ItemGroup>
<ItemGroup>
@ -258,36 +257,43 @@
<ClInclude Include="..\..\..\lib-src\libmp3lame\util.h" />
<ClInclude Include="..\..\..\lib-src\libmp3lame\vbrquantize.h" />
<ClInclude Include="..\..\..\lib-src\libmp3lame\VbrTag.h" />
<ClInclude Include="..\..\..\lib-src\libmp3lame\vector\lame_intrin.h" />
<ClInclude Include="..\..\..\lib-src\libmp3lame\version.h" />
</ItemGroup>
<ItemGroup>
<None Include="..\..\..\lib-src\libmp3lame\i386\choose_table.nas">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</None>
<None Include="..\..\..\lib-src\libmp3lame\i386\cpu_feat.nas">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</None>
<None Include="..\..\..\lib-src\libmp3lame\i386\fft.nas">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</None>
<None Include="..\..\..\lib-src\libmp3lame\i386\fft3dn.nas">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</None>
<None Include="..\..\..\lib-src\libmp3lame\i386\fftfpu.nas">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</None>
<None Include="..\..\..\lib-src\libmp3lame\i386\fftsse.nas">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</None>
<None Include="..\..\..\lib-src\libmp3lame\i386\ffttbl.nas">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</None>
<None Include="..\..\..\lib-src\libmp3lame\i386\scalar.nas">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
</None>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="vc9_nasm.targets" />
</ImportGroup>
<ImportGroup Label="ExtensionTargets" />
</Project>

View File

@ -72,14 +72,11 @@
<ClCompile Include="..\..\..\lib-src\libmp3lame\version.c">
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\..\lib-src\libmp3lame\vector\xmm_quantize_sub.c">
<Filter>Source</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\lib-src\libmp3lame\lame_global_flags.h">
<Filter>Source</Filter>
</ClInclude>
<ClInclude Include="..\..\..\lib-src\libmp3lame\lameerror.h">
<Filter>Source</Filter>
</ClInclude>
<ClInclude Include="..\..\..\lib-src\libmp3lame\vbrquantize.h">
<Filter>Source</Filter>
</ClInclude>
@ -137,6 +134,15 @@
<ClInclude Include="..\..\..\lib-src\libmp3lame\version.h">
<Filter>Include</Filter>
</ClInclude>
<ClInclude Include="..\..\..\lib-src\libmp3lame\lame_global_flags.h">
<Filter>Include</Filter>
</ClInclude>
<ClInclude Include="..\..\..\lib-src\libmp3lame\vector\lame_intrin.h">
<Filter>Include</Filter>
</ClInclude>
<ClInclude Include="..\..\..\lib-src\libmp3lame\lameerror.h">
<Filter>Include</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="..\..\..\lib-src\libmp3lame\i386\choose_table.nas">
@ -164,4 +170,14 @@
<Filter>Asm</Filter>
</None>
</ItemGroup>
<ItemGroup>
<NASM Include="..\libmp3lame\i386\choose_table.nas" />
<NASM Include="..\libmp3lame\i386\cpu_feat.nas" />
<NASM Include="..\libmp3lame\i386\fft.nas" />
<NASM Include="..\libmp3lame\i386\fft3dn.nas" />
<NASM Include="..\libmp3lame\i386\fftfpu.nas" />
<NASM Include="..\libmp3lame\i386\fftsse.nas" />
<NASM Include="..\libmp3lame\i386\ffttbl.nas" />
<NASM Include="..\libmp3lame\i386\scalar.nas" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,149 @@
<?xml version="1.0" encoding="utf-8"?>
<ProjectSchemaDefinitions xmlns="clr-namespace:Microsoft.Build.Framework.XamlTypes;assembly=Microsoft.Build.Framework" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:transformCallback="Microsoft.Cpp.Dev10.ConvertPropertyCallback">
<Rule
Name="NASM"
PageTemplate="tool"
DisplayName="NASM"
Order="200">
<Rule.DataSource>
<DataSource
Persistence="ProjectFile"
ItemType="NASM" />
</Rule.DataSource>
<Rule.Categories>
<Category
Name="General">
<Category.DisplayName>
<sys:String>General</sys:String>
</Category.DisplayName>
</Category>
<Category
Name="Command Line"
Subtype="CommandLine">
<Category.DisplayName>
<sys:String>Command Line</sys:String>
</Category.DisplayName>
</Category>
</Rule.Categories>
<StringListProperty
Name="Inputs"
Category="Command Line"
IsRequired="true"
Switch=" ">
<StringListProperty.DataSource>
<DataSource
Persistence="ProjectFile"
ItemType="NASM"
SourceType="Item" />
</StringListProperty.DataSource>
</StringListProperty>
<StringProperty
Name="OutFile"
HelpContext="0"
DisplayName="output file path"
Switch="[value]" />
<StringProperty
Name="BinFormat"
HelpContext="0"
DisplayName="Binary format"
Switch="-f [value]" />
<StringListProperty
Name="IncludeDir"
HelpContext="0"
DisplayName="Additional include directories"
Separator=";"
Switch="-i [value]" />
<StringListProperty
Name="Defines"
HelpContext="0"
DisplayName="Defines"
Separator=" ;,"
Switch="-D[value]" />
<StringProperty
Name="CommandLineTemplate"
DisplayName="Command Line"
Visible="False"
IncludeInCommandLine="False" />
<DynamicEnumProperty
Name="NASMBeforeTargets"
Category="General"
EnumProvider="Targets"
IncludeInCommandLine="False">
<DynamicEnumProperty.DisplayName>
<sys:String>Execute Before</sys:String>
</DynamicEnumProperty.DisplayName>
<DynamicEnumProperty.Description>
<sys:String>Specifies the targets for the build customization to run before.</sys:String>
</DynamicEnumProperty.Description>
<DynamicEnumProperty.ProviderSettings>
<NameValuePair
Name="Exclude"
Value="^NASMBeforeTargets|^Compute" />
</DynamicEnumProperty.ProviderSettings>
<DynamicEnumProperty.DataSource>
<DataSource
Persistence="ProjectFile"
HasConfigurationCondition="true" />
</DynamicEnumProperty.DataSource>
</DynamicEnumProperty>
<DynamicEnumProperty
Name="NASMAfterTargets"
Category="General"
EnumProvider="Targets"
IncludeInCommandLine="False">
<DynamicEnumProperty.DisplayName>
<sys:String>Execute After</sys:String>
</DynamicEnumProperty.DisplayName>
<DynamicEnumProperty.Description>
<sys:String>Specifies the targets for the build customization to run after.</sys:String>
</DynamicEnumProperty.Description>
<DynamicEnumProperty.ProviderSettings>
<NameValuePair
Name="Exclude"
Value="^NASMAfterTargets|^Compute" />
</DynamicEnumProperty.ProviderSettings>
<DynamicEnumProperty.DataSource>
<DataSource
Persistence="ProjectFile"
ItemType=""
HasConfigurationCondition="true" />
</DynamicEnumProperty.DataSource>
</DynamicEnumProperty>
<StringListProperty
Name="Outputs"
DisplayName="Outputs"
Visible="False"
IncludeInCommandLine="False" />
<StringProperty
Name="ExecutionDescription"
DisplayName="Execution Description"
Visible="False"
IncludeInCommandLine="False" />
<StringListProperty
Name="AdditionalDependencies"
DisplayName="Additional Dependencies"
IncludeInCommandLine="False"
Visible="true" />
<StringProperty
Subtype="AdditionalOptions"
Name="AdditionalOptions"
Category="Command Line">
<StringProperty.DisplayName>
<sys:String>Additional Options</sys:String>
</StringProperty.DisplayName>
<StringProperty.Description>
<sys:String>Additional Options</sys:String>
</StringProperty.Description>
</StringProperty>
</Rule>
<ItemType
Name="NASM"
DisplayName="NASM" />
<FileExtension
Name="*.nas"
ContentType="NASM" />
<ContentType
Name="NASM"
DisplayName="NASM"
ItemType="NASM" />
</ProjectSchemaDefinitions>

View File

@ -284,16 +284,16 @@ Global
{876BE9ED-1F80-47B6-A34A-1766A6639763}.ReleaseSSE2|Win32.Build.0 = Release|Win32
{20536101-3B0E-43EF-94F9-080D595DAC57}.Debug|Win32.ActiveCfg = Debug|Win32
{20536101-3B0E-43EF-94F9-080D595DAC57}.Debug|Win32.Build.0 = Debug|Win32
{20536101-3B0E-43EF-94F9-080D595DAC57}.Release|Win32.ActiveCfg = Release|Win32
{20536101-3B0E-43EF-94F9-080D595DAC57}.Release|Win32.Build.0 = Release|Win32
{20536101-3B0E-43EF-94F9-080D595DAC57}.Release|Win32.ActiveCfg = ReleaseSSE2|Win32
{20536101-3B0E-43EF-94F9-080D595DAC57}.Release|Win32.Build.0 = ReleaseSSE2|Win32
{20536101-3B0E-43EF-94F9-080D595DAC57}.ReleaseNASM|Win32.ActiveCfg = ReleaseNASM|Win32
{20536101-3B0E-43EF-94F9-080D595DAC57}.ReleaseNASM|Win32.Build.0 = ReleaseNASM|Win32
{20536101-3B0E-43EF-94F9-080D595DAC57}.ReleaseSSE2|Win32.ActiveCfg = ReleaseSSE2|Win32
{20536101-3B0E-43EF-94F9-080D595DAC57}.ReleaseSSE2|Win32.Build.0 = ReleaseSSE2|Win32
{E2DAB91A-8248-4625-8A85-2C2C2A390DD8}.Debug|Win32.ActiveCfg = Debug|Win32
{E2DAB91A-8248-4625-8A85-2C2C2A390DD8}.Debug|Win32.Build.0 = Debug|Win32
{E2DAB91A-8248-4625-8A85-2C2C2A390DD8}.Release|Win32.ActiveCfg = Release|Win32
{E2DAB91A-8248-4625-8A85-2C2C2A390DD8}.Release|Win32.Build.0 = Release|Win32
{E2DAB91A-8248-4625-8A85-2C2C2A390DD8}.Release|Win32.ActiveCfg = ReleaseSSE2|Win32
{E2DAB91A-8248-4625-8A85-2C2C2A390DD8}.Release|Win32.Build.0 = ReleaseSSE2|Win32
{E2DAB91A-8248-4625-8A85-2C2C2A390DD8}.ReleaseNASM|Win32.ActiveCfg = ReleaseNASM|Win32
{E2DAB91A-8248-4625-8A85-2C2C2A390DD8}.ReleaseNASM|Win32.Build.0 = ReleaseNASM|Win32
{E2DAB91A-8248-4625-8A85-2C2C2A390DD8}.ReleaseSSE2|Win32.ActiveCfg = ReleaseSSE2|Win32