-
-
Notifications
You must be signed in to change notification settings - Fork 324
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Replace `Matrix2` with `Matrix3x2` * Update benchmarks * Add XML documentation for `Matrix3x2`
- Loading branch information
1 parent
d008b1b
commit 49038f5
Showing
23 changed files
with
1,447 additions
and
1,150 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<Project> | ||
|
||
<Import Project="$(MSBuildThisFileDirectory)..\Directory.Build.props" /> | ||
|
||
<PropertyGroup> | ||
<ArtifactsPath>$(SolutionDirectory).artifacts/benchmarks</ArtifactsPath> | ||
<GenerateDocumentationFile>false</GenerateDocumentationFile> | ||
<IsPackable>false</IsPackable> | ||
<NoWarn>NU1701</NoWarn> | ||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks> | ||
</PropertyGroup> | ||
|
||
<ItemGroup> | ||
<PackageReference Include="MonoGame.Framework.DesktopGL" | ||
Version="3.8.1.303" | ||
PrivateAssets="All" /> | ||
<PackageReference Include="BenchmarkDotNet" | ||
Version="0.13.12" /> | ||
</ItemGroup> | ||
|
||
</Project> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
195 changes: 195 additions & 0 deletions
195
benchmarks/MonoGame.Extended.Benchmarks/Matrix3x2Benchmarks.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,195 @@ | ||
using System.Runtime.CompilerServices; | ||
using BenchmarkDotNet.Attributes; | ||
using Microsoft.Xna.Framework; | ||
|
||
namespace MonoGame.Extended.Benchmarks; | ||
|
||
[MemoryDiagnoser] | ||
public class Matrix3x2Benchmarks | ||
{ | ||
private Matrix2 _matrix2; | ||
private Matrix3x2 _matrix3x2; | ||
|
||
[GlobalSetup] | ||
public void Setup() | ||
{ | ||
_matrix2 = new Matrix2(1, 2, 3, 4, 5, 6); | ||
_matrix3x2 = new Matrix3x2(1, 2, 3, 4, 5, 6); | ||
} | ||
|
||
[Benchmark] | ||
public Vector2 Matrix2_getTranslation() => _matrix2.Translation; | ||
|
||
[Benchmark] | ||
public Vector2 Matrix3x2_getTranslation() => _matrix3x2.Translation; | ||
|
||
// [Benchmark] | ||
// public float Matrix2_getRotation() => _matrix2.Rotation; | ||
|
||
// [Benchmark] | ||
// public float Matrix3x2_getRotation() => _matrix3x2.Rotation; | ||
|
||
// [Benchmark] | ||
// public Vector2 Matrix2_getScale() => _matrix2.Scale; | ||
|
||
// [Benchmark] | ||
// public Vector2 Matrix3x2_getScale() => _matrix3x2.Scale; | ||
|
||
// [Benchmark] | ||
// public (Vector2, float, Vector2) Matrix2_Decompose() | ||
// { | ||
// Vector2 translation = _matrix2.Translation; | ||
// float rotation = _matrix2.Rotation; | ||
// Vector2 scale = _matrix2.Scale; | ||
// return (translation, rotation, scale); | ||
// } | ||
|
||
// [Benchmark] | ||
// public (Vector2, float, Vector2) Matrix3x2_Decompose() | ||
// { | ||
// _matrix3x2.Decompose(out Vector2 translation, out float rotation, out Vector2 scale); | ||
// return (translation, rotation, scale); | ||
// } | ||
|
||
// [Benchmark] | ||
// public Vector2 Matrix2_Transform() => _matrix2.Transform(Vector2.One); | ||
|
||
// [Benchmark] | ||
// public Vector2 Matrix3x2_Transform() => _matrix3x2.Transform(Vector2.One); | ||
|
||
// [Benchmark] | ||
// public float Matrix2_Determinant() => _matrix2.Determinant(); | ||
|
||
// [Benchmark] | ||
// public float Matrix3x2_Determinant() => _matrix3x2.Determinant(); | ||
|
||
// [Benchmark] | ||
// public Matrix2 Matrix2_CreateFrom() | ||
// { | ||
// Matrix2.CreateFrom(Vector2.Zero, 1.0f, Vector2.One, Vector2.Zero, out Matrix2 result); | ||
// return result; | ||
// } | ||
|
||
// [Benchmark] | ||
// public Matrix3x2 Matrix3x2_CreateFrom() | ||
// { | ||
// Matrix3x2.CreateFrom(Vector2.Zero, 1.0f, Vector2.One, Vector2.Zero, out Matrix3x2 result); | ||
// return result; | ||
// } | ||
|
||
// [Benchmark] | ||
// public Matrix2 Matrix2_CreateRotationZ() | ||
// { | ||
// Matrix2.CreateRotationZ(1.0f, out Matrix2 result); | ||
// return result; | ||
// } | ||
|
||
// [Benchmark] | ||
// public Matrix3x2 Matrix3x2_CreateRotationZ() | ||
// { | ||
// Matrix3x2.CreateRotationZ(1.0f, out Matrix3x2 result); | ||
// return result; | ||
// } | ||
|
||
// [Benchmark] | ||
// public Matrix2 Matrix2_CreateScale() | ||
// { | ||
// Matrix2.CreateScale(1.0f, out Matrix2 result); | ||
// return result; | ||
// } | ||
|
||
// [Benchmark] | ||
// public Matrix3x2 Matrix3x2_CreateScale() | ||
// { | ||
// Matrix3x2.CreateScale(1.0f, out Matrix3x2 result); | ||
// return result; | ||
// } | ||
|
||
// [Benchmark] | ||
// public Matrix2 Matrix2_CreateTranslation() | ||
// { | ||
// Matrix2.CreateTranslation(1.0f, 1.0f, out Matrix2 result); | ||
// return result; | ||
// } | ||
|
||
// [Benchmark] | ||
// public Matrix3x2 Matrix3x2_CreateTranslation() | ||
// { | ||
// Matrix3x2.CreateTranslation(1.0f, 1.0f, out Matrix3x2 result); | ||
// return result; | ||
// } | ||
|
||
// [Benchmark] | ||
// public Matrix2 Matrix2_Invert() | ||
// { | ||
// Matrix2.Invert(ref _matrix2, out Matrix2 result); | ||
// return result; | ||
// } | ||
|
||
// [Benchmark] | ||
// public Matrix3x2 Matrix3x2_Invert() | ||
// { | ||
// Matrix3x2.Invert(_matrix3x2); | ||
// return _matrix3x2; | ||
// } | ||
|
||
// [Benchmark] | ||
// public Matrix2 Matrix2_Add() | ||
// { | ||
// return Matrix2.Add(_matrix2, _matrix2); | ||
// } | ||
|
||
// [Benchmark] | ||
// public Matrix3x2 Matrix3x2_Add() | ||
// { | ||
// return Matrix3x2.Add(_matrix3x2, _matrix3x2); | ||
// } | ||
|
||
// [Benchmark] | ||
// public Matrix2 Matrix2_Subtract() | ||
// { | ||
// return Matrix2.Subtract(_matrix2, _matrix2); | ||
// } | ||
|
||
// [Benchmark] | ||
// public Matrix3x2 Matrix3x2_Subtract() | ||
// { | ||
// return Matrix3x2.Subtract(_matrix3x2, _matrix3x2); | ||
// } | ||
|
||
// [Benchmark] | ||
// public Matrix2 Matrix2_Multiply() | ||
// { | ||
// return Matrix2.Subtract(_matrix2, _matrix2); | ||
// } | ||
|
||
// [Benchmark] | ||
// public Matrix3x2 Matrix3x2_Multiply() | ||
// { | ||
// return Matrix3x2.Multiply(_matrix3x2, _matrix3x2); | ||
// } | ||
|
||
// [Benchmark] | ||
// public Matrix2 Matrix2_Divide() | ||
// { | ||
// return Matrix2.Divide(_matrix2, _matrix2); | ||
// } | ||
|
||
// [Benchmark] | ||
// public Matrix3x2 Matrix3x2_Divide() | ||
// { | ||
// return Matrix3x2.Divide(_matrix3x2, _matrix3x2); | ||
// } | ||
|
||
// [Benchmark] | ||
// public Matrix Matrix2_ToMatrix() | ||
// { | ||
// return _matrix2.ToMatrix(); | ||
// } | ||
|
||
// [Benchmark] | ||
// public Matrix Matrix3x2_ToMatrix() | ||
// { | ||
// return _matrix3x2.ToMatrix(); | ||
// } | ||
} |
14 changes: 14 additions & 0 deletions
14
benchmarks/MonoGame.Extended.Benchmarks/MonoGame.Extended.Benchmarks.csproj
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
<Project Sdk="Microsoft.NET.Sdk"> | ||
|
||
<PropertyGroup> | ||
<OutputType>Exe</OutputType> | ||
<TargetFramework>net8.0</TargetFramework> | ||
<ImplicitUsings>enable</ImplicitUsings> | ||
<Nullable>enable</Nullable> | ||
</PropertyGroup> | ||
|
||
<ItemGroup> | ||
<ProjectReference Include="..\..\source\MonoGame.Extended\MonoGame.Extended.csproj" /> | ||
</ItemGroup> | ||
|
||
</Project> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
using BenchmarkDotNet.Running; | ||
using MonoGame.Extended.Benchmarks; | ||
|
||
|
||
BenchmarkRunner.Run<Matrix3x2Benchmarks>(); | ||
|
||
Console.WriteLine("finished"); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.