diff --git a/src/ImageSharp/Common/Helpers/ColorNumerics.cs b/src/ImageSharp/Common/Helpers/ColorNumerics.cs index 10d5bff5f4..553a7c2e89 100644 --- a/src/ImageSharp/Common/Helpers/ColorNumerics.cs +++ b/src/ImageSharp/Common/Helpers/ColorNumerics.cs @@ -3,7 +3,6 @@ using System.Numerics; using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; namespace SixLabors.ImageSharp; @@ -17,7 +16,7 @@ internal static class ColorNumerics /// Vector for converting pixel to gray value as specified by /// ITU-R Recommendation BT.709. /// - private static readonly Vector4 Bt709 = new Vector4(.2126f, .7152f, .0722f, 0.0f); + private static readonly Vector4 Bt709 = new(.2126f, .7152f, .0722f, 0.0f); /// /// Convert a pixel value to grayscale using ITU-R Recommendation BT.709. @@ -167,11 +166,9 @@ internal static class ColorNumerics [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void Transform(Span vectors, ref ColorMatrix matrix) { - ref Vector4 baseRef = ref MemoryMarshal.GetReference(vectors); - for (int i = 0; i < vectors.Length; i++) { - ref Vector4 v = ref Unsafe.Add(ref baseRef, i); + ref Vector4 v = ref vectors[i]; Transform(ref v, ref matrix); } } diff --git a/tests/ImageSharp.Benchmarks/Bulk/ColorMatrixTransforms.cs b/tests/ImageSharp.Benchmarks/Bulk/ColorMatrixTransforms.cs new file mode 100644 index 0000000000..9147e36497 --- /dev/null +++ b/tests/ImageSharp.Benchmarks/Bulk/ColorMatrixTransforms.cs @@ -0,0 +1,31 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +using System.Numerics; +using BenchmarkDotNet.Attributes; +using SixLabors.ImageSharp.Processing; + +namespace SixLabors.ImageSharp.Benchmarks.Bulk; + +public class ColorMatrixTransforms +{ + private static readonly Vector4[] Vectors = Vector4Factory.CreateVectors(); + + [Benchmark(Baseline = true)] + public void Transform() + { + ColorMatrix matrix = KnownFilterMatrices.CreateHueFilter(45F); + for (int i = 0; i < Vectors.Length; i++) + { + ref Vector4 input = ref Vectors[i]; + ColorNumerics.Transform(ref input, ref matrix); + } + } + + [Benchmark] + public void Transform_Span() + { + ColorMatrix matrix = KnownFilterMatrices.CreateHueFilter(45F); + ColorNumerics.Transform(Vectors.AsSpan(), ref matrix); + } +} diff --git a/tests/ImageSharp.Benchmarks/Color/Bulk/FromRgba32Bytes.cs b/tests/ImageSharp.Benchmarks/Bulk/FromRgba32Bytes.cs similarity index 92% rename from tests/ImageSharp.Benchmarks/Color/Bulk/FromRgba32Bytes.cs rename to tests/ImageSharp.Benchmarks/Bulk/FromRgba32Bytes.cs index e27bf07e99..bd938c9da9 100644 --- a/tests/ImageSharp.Benchmarks/Color/Bulk/FromRgba32Bytes.cs +++ b/tests/ImageSharp.Benchmarks/Bulk/FromRgba32Bytes.cs @@ -8,7 +8,7 @@ using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.PixelFormats; // ReSharper disable InconsistentNaming -namespace SixLabors.ImageSharp.Benchmarks.ColorSpaces.Bulk; +namespace SixLabors.ImageSharp.Benchmarks.Bulk; public abstract class FromRgba32Bytes where TPixel : unmanaged, IPixel @@ -64,7 +64,7 @@ public abstract class FromRgba32Bytes [Benchmark] public void OptimizedBulk() { - PixelOperations.Instance.FromRgba32Bytes(this.configuration, this.source.GetSpan(), this.destination.GetSpan(), this.Count); + PixelOperations.Instance.FromRgba32Bytes(this.configuration, this.source.GetSpan(), this.destination.GetSpan(), this.Count); } } diff --git a/tests/ImageSharp.Benchmarks/Color/Bulk/FromVector4.cs b/tests/ImageSharp.Benchmarks/Bulk/FromVector4.cs similarity index 99% rename from tests/ImageSharp.Benchmarks/Color/Bulk/FromVector4.cs rename to tests/ImageSharp.Benchmarks/Bulk/FromVector4.cs index d1cb616780..dd3fb8ac82 100644 --- a/tests/ImageSharp.Benchmarks/Color/Bulk/FromVector4.cs +++ b/tests/ImageSharp.Benchmarks/Bulk/FromVector4.cs @@ -12,7 +12,7 @@ using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.PixelFormats; // ReSharper disable InconsistentNaming -namespace SixLabors.ImageSharp.Benchmarks.ColorSpaces.Bulk; +namespace SixLabors.ImageSharp.Benchmarks.Bulk; [Config(typeof(Config.ShortCore31))] public abstract class FromVector4 diff --git a/tests/ImageSharp.Benchmarks/Color/Bulk/FromVector4_Rgb24.cs b/tests/ImageSharp.Benchmarks/Bulk/FromVector4_Rgb24.cs similarity index 98% rename from tests/ImageSharp.Benchmarks/Color/Bulk/FromVector4_Rgb24.cs rename to tests/ImageSharp.Benchmarks/Bulk/FromVector4_Rgb24.cs index 2effbd1d59..fe0d2a10a7 100644 --- a/tests/ImageSharp.Benchmarks/Color/Bulk/FromVector4_Rgb24.cs +++ b/tests/ImageSharp.Benchmarks/Bulk/FromVector4_Rgb24.cs @@ -4,7 +4,7 @@ using BenchmarkDotNet.Attributes; using SixLabors.ImageSharp.PixelFormats; -namespace SixLabors.ImageSharp.Benchmarks.ColorSpaces.Bulk; +namespace SixLabors.ImageSharp.Benchmarks.Bulk; [Config(typeof(Config.ShortMultiFramework))] public class FromVector4_Rgb24 : FromVector4 diff --git a/tests/ImageSharp.Benchmarks/Color/Bulk/Pad3Shuffle4Channel.cs b/tests/ImageSharp.Benchmarks/Bulk/Pad3Shuffle4Channel.cs similarity index 99% rename from tests/ImageSharp.Benchmarks/Color/Bulk/Pad3Shuffle4Channel.cs rename to tests/ImageSharp.Benchmarks/Bulk/Pad3Shuffle4Channel.cs index 73dcf55a19..1b6663e70e 100644 --- a/tests/ImageSharp.Benchmarks/Color/Bulk/Pad3Shuffle4Channel.cs +++ b/tests/ImageSharp.Benchmarks/Bulk/Pad3Shuffle4Channel.cs @@ -3,7 +3,7 @@ using BenchmarkDotNet.Attributes; -namespace SixLabors.ImageSharp.Benchmarks.ColorSpaces.Bulk; +namespace SixLabors.ImageSharp.Benchmarks.Bulk; [Config(typeof(Config.HwIntrinsics_SSE_AVX))] public class Pad3Shuffle4Channel diff --git a/tests/ImageSharp.Benchmarks/Color/Bulk/PremultiplyVector4.cs b/tests/ImageSharp.Benchmarks/Bulk/PremultiplyVector4.cs similarity index 55% rename from tests/ImageSharp.Benchmarks/Color/Bulk/PremultiplyVector4.cs rename to tests/ImageSharp.Benchmarks/Bulk/PremultiplyVector4.cs index 44496a2496..d22fc18ac6 100644 --- a/tests/ImageSharp.Benchmarks/Color/Bulk/PremultiplyVector4.cs +++ b/tests/ImageSharp.Benchmarks/Bulk/PremultiplyVector4.cs @@ -6,11 +6,11 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using BenchmarkDotNet.Attributes; -namespace SixLabors.ImageSharp.Benchmarks.ColorSpaces.Bulk; +namespace SixLabors.ImageSharp.Benchmarks.Bulk; public class PremultiplyVector4 { - private static readonly Vector4[] Vectors = CreateVectors(); + private static readonly Vector4[] Vectors = Vector4Factory.CreateVectors(); [Benchmark(Baseline = true)] public void PremultiplyBaseline() @@ -46,29 +46,4 @@ public class PremultiplyVector4 source *= w; source.W = w; } - - private static Vector4[] CreateVectors() - { - Random rnd = new(42); - return GenerateRandomVectorArray(rnd, 2048, 0, 1); - } - - private static Vector4[] GenerateRandomVectorArray(Random rnd, int length, float minVal, float maxVal) - { - Vector4[] values = new Vector4[length]; - - for (int i = 0; i < length; i++) - { - ref Vector4 v = ref values[i]; - v.X = GetRandomFloat(rnd, minVal, maxVal); - v.Y = GetRandomFloat(rnd, minVal, maxVal); - v.Z = GetRandomFloat(rnd, minVal, maxVal); - v.W = GetRandomFloat(rnd, minVal, maxVal); - } - - return values; - } - - private static float GetRandomFloat(Random rnd, float minVal, float maxVal) - => ((float)rnd.NextDouble() * (maxVal - minVal)) + minVal; } diff --git a/tests/ImageSharp.Benchmarks/Color/Bulk/Rgb24Bytes.cs b/tests/ImageSharp.Benchmarks/Bulk/Rgb24Bytes.cs similarity index 96% rename from tests/ImageSharp.Benchmarks/Color/Bulk/Rgb24Bytes.cs rename to tests/ImageSharp.Benchmarks/Bulk/Rgb24Bytes.cs index 1795ac30bb..8dd2edf008 100644 --- a/tests/ImageSharp.Benchmarks/Color/Bulk/Rgb24Bytes.cs +++ b/tests/ImageSharp.Benchmarks/Bulk/Rgb24Bytes.cs @@ -7,7 +7,7 @@ using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.PixelFormats; // ReSharper disable InconsistentNaming -namespace SixLabors.ImageSharp.Benchmarks.ColorSpaces.Bulk; +namespace SixLabors.ImageSharp.Benchmarks.Bulk; public abstract class Rgb24Bytes where TPixel : unmanaged, IPixel diff --git a/tests/ImageSharp.Benchmarks/Color/Bulk/Shuffle3Channel.cs b/tests/ImageSharp.Benchmarks/Bulk/Shuffle3Channel.cs similarity index 99% rename from tests/ImageSharp.Benchmarks/Color/Bulk/Shuffle3Channel.cs rename to tests/ImageSharp.Benchmarks/Bulk/Shuffle3Channel.cs index fcde0ea1bd..8b7b89eb36 100644 --- a/tests/ImageSharp.Benchmarks/Color/Bulk/Shuffle3Channel.cs +++ b/tests/ImageSharp.Benchmarks/Bulk/Shuffle3Channel.cs @@ -3,7 +3,7 @@ using BenchmarkDotNet.Attributes; -namespace SixLabors.ImageSharp.Benchmarks.ColorSpaces.Bulk; +namespace SixLabors.ImageSharp.Benchmarks.Bulk; [Config(typeof(Config.HwIntrinsics_SSE_AVX))] public class Shuffle3Channel diff --git a/tests/ImageSharp.Benchmarks/Color/Bulk/Shuffle4Slice3Channel.cs b/tests/ImageSharp.Benchmarks/Bulk/Shuffle4Slice3Channel.cs similarity index 99% rename from tests/ImageSharp.Benchmarks/Color/Bulk/Shuffle4Slice3Channel.cs rename to tests/ImageSharp.Benchmarks/Bulk/Shuffle4Slice3Channel.cs index ef01185f91..5ade55c73f 100644 --- a/tests/ImageSharp.Benchmarks/Color/Bulk/Shuffle4Slice3Channel.cs +++ b/tests/ImageSharp.Benchmarks/Bulk/Shuffle4Slice3Channel.cs @@ -3,7 +3,7 @@ using BenchmarkDotNet.Attributes; -namespace SixLabors.ImageSharp.Benchmarks.ColorSpaces.Bulk; +namespace SixLabors.ImageSharp.Benchmarks.Bulk; [Config(typeof(Config.HwIntrinsics_SSE_AVX))] public class Shuffle4Slice3Channel diff --git a/tests/ImageSharp.Benchmarks/Color/Bulk/ShuffleByte4Channel.cs b/tests/ImageSharp.Benchmarks/Bulk/ShuffleByte4Channel.cs similarity index 99% rename from tests/ImageSharp.Benchmarks/Color/Bulk/ShuffleByte4Channel.cs rename to tests/ImageSharp.Benchmarks/Bulk/ShuffleByte4Channel.cs index 8e740743ba..911c4e0a58 100644 --- a/tests/ImageSharp.Benchmarks/Color/Bulk/ShuffleByte4Channel.cs +++ b/tests/ImageSharp.Benchmarks/Bulk/ShuffleByte4Channel.cs @@ -3,7 +3,7 @@ using BenchmarkDotNet.Attributes; -namespace SixLabors.ImageSharp.Benchmarks.ColorSpaces.Bulk; +namespace SixLabors.ImageSharp.Benchmarks.Bulk; [Config(typeof(Config.HwIntrinsics_SSE_AVX))] public class ShuffleByte4Channel diff --git a/tests/ImageSharp.Benchmarks/Color/Bulk/ShuffleFloat4Channel.cs b/tests/ImageSharp.Benchmarks/Bulk/ShuffleFloat4Channel.cs similarity index 99% rename from tests/ImageSharp.Benchmarks/Color/Bulk/ShuffleFloat4Channel.cs rename to tests/ImageSharp.Benchmarks/Bulk/ShuffleFloat4Channel.cs index 1c338e1a6c..5bb3cf9165 100644 --- a/tests/ImageSharp.Benchmarks/Color/Bulk/ShuffleFloat4Channel.cs +++ b/tests/ImageSharp.Benchmarks/Bulk/ShuffleFloat4Channel.cs @@ -4,7 +4,7 @@ using BenchmarkDotNet.Attributes; using SixLabors.ImageSharp.Tests; -namespace SixLabors.ImageSharp.Benchmarks.ColorSpaces.Bulk; +namespace SixLabors.ImageSharp.Benchmarks.Bulk; [Config(typeof(Config.HwIntrinsics_SSE_AVX))] public class ShuffleFloat4Channel diff --git a/tests/ImageSharp.Benchmarks/Color/Bulk/ToRgba32Bytes.cs b/tests/ImageSharp.Benchmarks/Bulk/ToRgba32Bytes.cs similarity index 97% rename from tests/ImageSharp.Benchmarks/Color/Bulk/ToRgba32Bytes.cs rename to tests/ImageSharp.Benchmarks/Bulk/ToRgba32Bytes.cs index b6e0696735..6d3f8f9528 100644 --- a/tests/ImageSharp.Benchmarks/Color/Bulk/ToRgba32Bytes.cs +++ b/tests/ImageSharp.Benchmarks/Bulk/ToRgba32Bytes.cs @@ -8,7 +8,7 @@ using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.PixelFormats; // ReSharper disable InconsistentNaming -namespace SixLabors.ImageSharp.Benchmarks.ColorSpaces.Bulk; +namespace SixLabors.ImageSharp.Benchmarks.Bulk; public abstract class ToRgba32Bytes where TPixel : unmanaged, IPixel diff --git a/tests/ImageSharp.Benchmarks/Color/Bulk/ToVector4.cs b/tests/ImageSharp.Benchmarks/Bulk/ToVector4.cs similarity index 96% rename from tests/ImageSharp.Benchmarks/Color/Bulk/ToVector4.cs rename to tests/ImageSharp.Benchmarks/Bulk/ToVector4.cs index 31dfd0be93..3b4360b161 100644 --- a/tests/ImageSharp.Benchmarks/Color/Bulk/ToVector4.cs +++ b/tests/ImageSharp.Benchmarks/Bulk/ToVector4.cs @@ -9,7 +9,7 @@ using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.PixelFormats; // ReSharper disable InconsistentNaming -namespace SixLabors.ImageSharp.Benchmarks.ColorSpaces.Bulk; +namespace SixLabors.ImageSharp.Benchmarks.Bulk; public abstract class ToVector4 where TPixel : unmanaged, IPixel diff --git a/tests/ImageSharp.Benchmarks/Color/Bulk/ToVector4_Bgra32.cs b/tests/ImageSharp.Benchmarks/Bulk/ToVector4_Bgra32.cs similarity index 98% rename from tests/ImageSharp.Benchmarks/Color/Bulk/ToVector4_Bgra32.cs rename to tests/ImageSharp.Benchmarks/Bulk/ToVector4_Bgra32.cs index b2f12cf9d9..2f1064439b 100644 --- a/tests/ImageSharp.Benchmarks/Color/Bulk/ToVector4_Bgra32.cs +++ b/tests/ImageSharp.Benchmarks/Bulk/ToVector4_Bgra32.cs @@ -6,7 +6,7 @@ using BenchmarkDotNet.Attributes; using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.PixelFormats; -namespace SixLabors.ImageSharp.Benchmarks.ColorSpaces.Bulk; +namespace SixLabors.ImageSharp.Benchmarks.Bulk; [Config(typeof(Config.ShortMultiFramework))] public class ToVector4_Bgra32 : ToVector4 diff --git a/tests/ImageSharp.Benchmarks/Color/Bulk/ToVector4_Rgb24.cs b/tests/ImageSharp.Benchmarks/Bulk/ToVector4_Rgb24.cs similarity index 98% rename from tests/ImageSharp.Benchmarks/Color/Bulk/ToVector4_Rgb24.cs rename to tests/ImageSharp.Benchmarks/Bulk/ToVector4_Rgb24.cs index f22868335d..2c700a733f 100644 --- a/tests/ImageSharp.Benchmarks/Color/Bulk/ToVector4_Rgb24.cs +++ b/tests/ImageSharp.Benchmarks/Bulk/ToVector4_Rgb24.cs @@ -6,7 +6,7 @@ using BenchmarkDotNet.Attributes; using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.PixelFormats; -namespace SixLabors.ImageSharp.Benchmarks.ColorSpaces.Bulk; +namespace SixLabors.ImageSharp.Benchmarks.Bulk; [Config(typeof(Config.ShortMultiFramework))] public class ToVector4_Rgb24 : ToVector4 diff --git a/tests/ImageSharp.Benchmarks/Color/Bulk/ToVector4_Rgba32.cs b/tests/ImageSharp.Benchmarks/Bulk/ToVector4_Rgba32.cs similarity index 99% rename from tests/ImageSharp.Benchmarks/Color/Bulk/ToVector4_Rgba32.cs rename to tests/ImageSharp.Benchmarks/Bulk/ToVector4_Rgba32.cs index 6c28605161..b0eb6b46dc 100644 --- a/tests/ImageSharp.Benchmarks/Color/Bulk/ToVector4_Rgba32.cs +++ b/tests/ImageSharp.Benchmarks/Bulk/ToVector4_Rgba32.cs @@ -9,7 +9,7 @@ using BenchmarkDotNet.Attributes; using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.PixelFormats; -namespace SixLabors.ImageSharp.Benchmarks.ColorSpaces.Bulk; +namespace SixLabors.ImageSharp.Benchmarks.Bulk; [Config(typeof(Config.ShortCore31))] public class ToVector4_Rgba32 : ToVector4 diff --git a/tests/ImageSharp.Benchmarks/Color/Bulk/UnPremultiplyVector4.cs b/tests/ImageSharp.Benchmarks/Bulk/UnPremultiplyVector4.cs similarity index 55% rename from tests/ImageSharp.Benchmarks/Color/Bulk/UnPremultiplyVector4.cs rename to tests/ImageSharp.Benchmarks/Bulk/UnPremultiplyVector4.cs index c2b371b8a5..3dc8fdc9c6 100644 --- a/tests/ImageSharp.Benchmarks/Color/Bulk/UnPremultiplyVector4.cs +++ b/tests/ImageSharp.Benchmarks/Bulk/UnPremultiplyVector4.cs @@ -6,11 +6,11 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using BenchmarkDotNet.Attributes; -namespace SixLabors.ImageSharp.Benchmarks.ColorSpaces.Bulk; +namespace SixLabors.ImageSharp.Benchmarks.Bulk; public class UnPremultiplyVector4 { - private static readonly Vector4[] Vectors = CreateVectors(); + private static readonly Vector4[] Vectors = Vector4Factory.CreateVectors(); [Benchmark(Baseline = true)] public void UnPremultiplyBaseline() @@ -47,29 +47,4 @@ public class UnPremultiplyVector4 source /= w; source.W = w; } - - private static Vector4[] CreateVectors() - { - Random rnd = new(42); - return GenerateRandomVectorArray(rnd, 2048, 0, 1); - } - - private static Vector4[] GenerateRandomVectorArray(Random rnd, int length, float minVal, float maxVal) - { - Vector4[] values = new Vector4[length]; - - for (int i = 0; i < length; i++) - { - ref Vector4 v = ref values[i]; - v.X = GetRandomFloat(rnd, minVal, maxVal); - v.Y = GetRandomFloat(rnd, minVal, maxVal); - v.Z = GetRandomFloat(rnd, minVal, maxVal); - v.W = GetRandomFloat(rnd, minVal, maxVal); - } - - return values; - } - - private static float GetRandomFloat(Random rnd, float minVal, float maxVal) - => ((float)rnd.NextDouble() * (maxVal - minVal)) + minVal; } diff --git a/tests/ImageSharp.Benchmarks/Bulk/Vector4Factory.cs b/tests/ImageSharp.Benchmarks/Bulk/Vector4Factory.cs new file mode 100644 index 0000000000..aa555f5c41 --- /dev/null +++ b/tests/ImageSharp.Benchmarks/Bulk/Vector4Factory.cs @@ -0,0 +1,34 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +using System.Numerics; + +namespace SixLabors.ImageSharp.Benchmarks.Bulk; + +internal static class Vector4Factory +{ + public static Vector4[] CreateVectors(int length = 2048, int min = 0, int max = 1) + { + Random rnd = new(42); + return GenerateRandomVectorArray(rnd, length, min, max); + } + + private static Vector4[] GenerateRandomVectorArray(Random rnd, int length, float minVal, float maxVal) + { + Vector4[] values = new Vector4[length]; + + for (int i = 0; i < length; i++) + { + ref Vector4 v = ref values[i]; + v.X = GetRandomFloat(rnd, minVal, maxVal); + v.Y = GetRandomFloat(rnd, minVal, maxVal); + v.Z = GetRandomFloat(rnd, minVal, maxVal); + v.W = GetRandomFloat(rnd, minVal, maxVal); + } + + return values; + } + + private static float GetRandomFloat(Random rnd, float minVal, float maxVal) + => (float)rnd.NextDouble() * (maxVal - minVal) + minVal; +} diff --git a/tests/ImageSharp.Benchmarks/General/GetSetPixel.cs b/tests/ImageSharp.Benchmarks/General/GetSetPixel.cs index 50a628ee3c..a6aac20c3b 100644 --- a/tests/ImageSharp.Benchmarks/General/GetSetPixel.cs +++ b/tests/ImageSharp.Benchmarks/General/GetSetPixel.cs @@ -12,7 +12,7 @@ public class GetSetPixel [Benchmark(Baseline = true, Description = "System.Drawing GetSet pixel")] public System.Drawing.Color GetSetSystemDrawing() { - using var source = new Bitmap(400, 400); + using Bitmap source = new(400, 400); source.SetPixel(200, 200, System.Drawing.Color.White); return source.GetPixel(200, 200); } @@ -20,7 +20,7 @@ public class GetSetPixel [Benchmark(Description = "ImageSharp GetSet pixel")] public Rgba32 GetSetImageSharp() { - using var image = new Image(400, 400); + using Image image = new(400, 400); image[200, 200] = Color.White; return image[200, 200]; } diff --git a/tests/ImageSharp.Benchmarks/General/Vectorization/ColorNumerics.cs b/tests/ImageSharp.Benchmarks/General/Vectorization/ColorNumerics.cs deleted file mode 100644 index 9647e4e227..0000000000 --- a/tests/ImageSharp.Benchmarks/General/Vectorization/ColorNumerics.cs +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright (c) Six Labors. -// Licensed under the Six Labors Split License. - -using System.Numerics; -using BenchmarkDotNet.Attributes; -using SixLabors.ImageSharp.Processing; - -namespace SixLabors.ImageSharp.Benchmarks.General.Vectorization; - -[Config(typeof(Config.MultiFramework))] -public class ColorNumerics -{ - private static Vector4[] input = - { - new(.5F), new(.5F), new(.5F), new(.5F), new(.5F), new(.5F), new(.5F), - }; - - [Benchmark] - public Vector4 Transform() - { - Vector4 input = new(.5F); - ColorMatrix matrix = KnownFilterMatrices.CreateHueFilter(45F); - ImageSharp.ColorNumerics.Transform(ref input, ref matrix); - - return input; - } - - [Benchmark] - public void Transform_Span() - { - ColorMatrix matrix = KnownFilterMatrices.CreateHueFilter(45F); - ImageSharp.ColorNumerics.Transform(input.AsSpan(), ref matrix); - } -} diff --git a/tests/ImageSharp.Benchmarks/ImageSharp.Benchmarks.csproj b/tests/ImageSharp.Benchmarks/ImageSharp.Benchmarks.csproj index 24f618d11b..0ba2f4b949 100644 --- a/tests/ImageSharp.Benchmarks/ImageSharp.Benchmarks.csproj +++ b/tests/ImageSharp.Benchmarks/ImageSharp.Benchmarks.csproj @@ -11,7 +11,13 @@ false Debug;Release - + + + + + + + CA1822 @@ -53,7 +59,7 @@ - + diff --git a/tests/ImageSharp.Benchmarks/Processing/BokehBlur.cs b/tests/ImageSharp.Benchmarks/Processing/BokehBlur.cs index 2bfc437582..441500c88c 100644 --- a/tests/ImageSharp.Benchmarks/Processing/BokehBlur.cs +++ b/tests/ImageSharp.Benchmarks/Processing/BokehBlur.cs @@ -13,7 +13,7 @@ public class BokehBlur [Benchmark] public void Blur() { - using var image = new Image(Configuration.Default, 400, 400, Color.White); + using Image image = new(Configuration.Default, 400, 400, Color.White); image.Mutate(c => c.BokehBlur()); } }