Browse Source

Removed HasAvx2 flag, reorganized test skipping

pull/1864/head
Dmitry Pentin 4 years ago
parent
commit
add85f8999
  1. 12
      src/ImageSharp/Common/Helpers/SimdUtils.cs
  2. 2
      src/ImageSharp/Formats/Jpeg/Components/Decoder/ColorConverters/JpegColorConverterAvx.cs
  3. 2
      src/ImageSharp/Formats/Jpeg/Components/Decoder/ColorConverters/JpegColorConverterBase.cs
  4. 2
      src/ImageSharp/Formats/Jpeg/Components/Decoder/ColorConverters/JpegColorConverterScalar.cs
  5. 2
      src/ImageSharp/Formats/Jpeg/Components/Decoder/ColorConverters/JpegColorConverterVector.cs
  6. 45
      tests/ImageSharp.Tests/Formats/Jpg/JpegColorConverterTests.cs

12
src/ImageSharp/Common/Helpers/SimdUtils.cs

@ -33,18 +33,6 @@ namespace SixLabors.ImageSharp
public static bool HasVector4 { get; } =
Vector.IsHardwareAccelerated && Vector<float>.Count == 4;
public static bool HasAvx2
{
get
{
#if SUPPORTS_RUNTIME_INTRINSICS
return Avx2.IsSupported;
#else
return false;
#endif
}
}
/// <summary>
/// Transform all scalars in 'v' in a way that converting them to <see cref="int"/> would have rounding semantics.
/// </summary>

2
src/ImageSharp/Formats/Jpeg/Components/Decoder/ColorConverters/JpegColorConverterAvx.cs

@ -25,7 +25,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder.ColorConverters
{
}
protected override bool IsAvailable => Avx.IsSupported;
public override bool IsAvailable => Avx.IsSupported;
}
}
}

2
src/ImageSharp/Formats/Jpeg/Components/Decoder/ColorConverters/JpegColorConverterBase.cs

@ -33,7 +33,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder.ColorConverters
/// Gets a value indicating whether this <see cref="JpegColorConverterBase"/> is available
/// on the current runtime and CPU architecture.
/// </summary>
protected abstract bool IsAvailable { get; }
public abstract bool IsAvailable { get; }
/// <summary>
/// Gets the <see cref="JpegColorSpace"/> of this converter.

2
src/ImageSharp/Formats/Jpeg/Components/Decoder/ColorConverters/JpegColorConverterScalar.cs

@ -16,7 +16,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder.ColorConverters
{
}
protected override bool IsAvailable => true;
public override bool IsAvailable => true;
}
}
}

2
src/ImageSharp/Formats/Jpeg/Components/Decoder/ColorConverters/JpegColorConverterVector.cs

@ -25,7 +25,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder.ColorConverters
{
}
protected sealed override bool IsAvailable => SimdUtils.HasVector8;
public sealed override bool IsAvailable => SimdUtils.HasVector8;
public override void ConvertToRgbInplace(in ComponentValues values)
{

45
tests/ImageSharp.Tests/Formats/Jpg/JpegColorConverterTests.cs

@ -75,14 +75,17 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
[MemberData(nameof(CommonConversionData))]
public void FromYCbCrAvx2(int inputBufferLength, int resultBufferLength, int seed)
{
if (!SimdUtils.HasAvx2)
var converter = new JpegColorConverterBase.FromYCbCrAvx(8);
if (!converter.IsAvailable)
{
this.Output.WriteLine("No AVX2 present, skipping test!");
this.Output.WriteLine(
$"Skipping test - {converter.GetType().Name} is not supported on current hardware.");
return;
}
ValidateConversion(
new JpegColorConverterBase.FromYCbCrAvx(8),
converter,
3,
inputBufferLength,
resultBufferLength,
@ -137,14 +140,17 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
[MemberData(nameof(CommonConversionData))]
public void FromCmykAvx2(int inputBufferLength, int resultBufferLength, int seed)
{
if (!SimdUtils.HasAvx2)
var converter = new JpegColorConverterBase.FromCmykAvx(8);
if (!converter.IsAvailable)
{
this.Output.WriteLine("No AVX2 present, skipping test!");
this.Output.WriteLine(
$"Skipping test - {converter.GetType().Name} is not supported on current hardware.");
return;
}
ValidateConversion(
new JpegColorConverterBase.FromCmykAvx(8),
converter,
4,
inputBufferLength,
resultBufferLength,
@ -181,14 +187,17 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
[MemberData(nameof(CommonConversionData))]
public void FromGrayscaleAvx2(int inputBufferLength, int resultBufferLength, int seed)
{
if (!SimdUtils.HasAvx2)
var converter = new JpegColorConverterBase.FromGrayscaleAvx(8);
if (!converter.IsAvailable)
{
this.Output.WriteLine("No AVX2 present, skipping test!");
this.Output.WriteLine(
$"Skipping test - {converter.GetType().Name} is not supported on current hardware.");
return;
}
ValidateConversion(
new JpegColorConverterBase.FromGrayscaleAvx(8),
converter,
1,
inputBufferLength,
resultBufferLength,
@ -243,14 +252,17 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
[MemberData(nameof(CommonConversionData))]
public void FromRgbAvx2(int inputBufferLength, int resultBufferLength, int seed)
{
if (!SimdUtils.HasAvx2)
var converter = new JpegColorConverterBase.FromRgbAvx(8);
if (!converter.IsAvailable)
{
this.Output.WriteLine("No AVX2 present, skipping test!");
this.Output.WriteLine(
$"Skipping test - {converter.GetType().Name} is not supported on current hardware.");
return;
}
ValidateConversion(
new JpegColorConverterBase.FromRgbAvx(8),
converter,
3,
inputBufferLength,
resultBufferLength,
@ -305,14 +317,17 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
[MemberData(nameof(CommonConversionData))]
public void FromYccKAvx2(int inputBufferLength, int resultBufferLength, int seed)
{
if (!SimdUtils.HasAvx2)
var converter = new JpegColorConverterBase.FromYccKAvx(8);
if (!converter.IsAvailable)
{
this.Output.WriteLine("No AVX2 present, skipping test!");
this.Output.WriteLine(
$"Skipping test - {converter.GetType().Name} is not supported on current hardware.");
return;
}
ValidateConversion(
new JpegColorConverterBase.FromYccKAvx(8),
converter,
4,
inputBufferLength,
resultBufferLength,

Loading…
Cancel
Save