daily update on 20240206 by nitload youmu
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+25
-65
@@ -5,81 +5,41 @@ using System.Reflection;
|
||||
using System.Numerics;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.Versioning;
|
||||
using BenchmarkDotNet.Jobs;
|
||||
|
||||
namespace BenchMark
|
||||
{
|
||||
internal class Program
|
||||
internal unsafe class Program
|
||||
{
|
||||
static unsafe void Main(string[] args)
|
||||
|
||||
static void Main(string[] args)
|
||||
{
|
||||
int* p = (int*)Marshal.AllocHGlobal(sizeof(int) * 10);
|
||||
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
*(p + i) = i;
|
||||
}
|
||||
|
||||
int[] array = (int[])GCHandle.FromIntPtr((IntPtr)p).Target;
|
||||
|
||||
Console.WriteLine(array);
|
||||
|
||||
//BenchmarkRunner.Run(typeof(MyClass).Assembly);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public class MyClass
|
||||
{
|
||||
[Benchmark]
|
||||
public bool isM128Pinnable()
|
||||
{
|
||||
var type = typeof(M128);
|
||||
foreach (var field in type.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic))
|
||||
{
|
||||
// 如果字段是引用类型,返回 false
|
||||
if (!field.FieldType.IsValueType)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// 如果没有引用类型的字段,返回 true
|
||||
return true;
|
||||
}
|
||||
|
||||
[Benchmark]
|
||||
public bool isVector4Pinnable()
|
||||
{
|
||||
var type = typeof(int);
|
||||
foreach (var field in type.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic))
|
||||
{
|
||||
// 如果字段是引用类型,返回 false
|
||||
if (!field.FieldType.IsValueType)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// 如果没有引用类型的字段,返回 true
|
||||
return true;
|
||||
Calculator c = new Calculator();
|
||||
c.PtrSub();
|
||||
var sum = BenchmarkRunner.Run(typeof(Calculator).Assembly);
|
||||
}
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Explicit)]
|
||||
public unsafe struct M128
|
||||
|
||||
public struct Calculator
|
||||
{
|
||||
[FieldOffset(0)] internal fixed float Single[4];
|
||||
[FieldOffset(0)] internal fixed double Double[2];
|
||||
public static int Sub(int left, int right)
|
||||
{
|
||||
return left - right;
|
||||
}
|
||||
|
||||
[FieldOffset(0)] internal fixed sbyte Int8[16];
|
||||
[FieldOffset(0)] internal fixed short Int16[8];
|
||||
[FieldOffset(0)] internal fixed int Int32[4];
|
||||
[FieldOffset(0)] internal fixed long Int64[2];
|
||||
|
||||
[FieldOffset(0)] internal fixed byte UInt8[16];
|
||||
[FieldOffset(0)] internal fixed ushort UInt16[8];
|
||||
[FieldOffset(0)] internal fixed uint UInt32[4];
|
||||
[FieldOffset(0)] internal fixed ulong UInt64[2];
|
||||
[Benchmark]
|
||||
public unsafe void DeleSub()
|
||||
{
|
||||
Func<int, int, int> SubDele = Sub;
|
||||
SubDele(1, 0);
|
||||
}
|
||||
|
||||
[Benchmark]
|
||||
public unsafe void PtrSub()
|
||||
{
|
||||
delegate*<int, int, int> SubPtr = ⋐
|
||||
SubPtr(1, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
+7
@@ -0,0 +1,7 @@
|
||||
// Validating benchmarks:
|
||||
// ***** BenchmarkRunner: Start *****
|
||||
// ***** Found 2 benchmark(s) in total *****
|
||||
// ***** Building 1 exe(s) in Parallel: Start *****
|
||||
// start dotnet restore /p:UseSharedCompilation=false /p:BuildInParallel=false /m:1 /p:Deterministic=true /p:Optimize=true in D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\BenchMark\bin\Release\net6.0\caeea1e9-a0c5-4b7b-94f8-332bfb7832fc
|
||||
// command took 3.82 sec and exited with 0
|
||||
// start dotnet build -c Release --no-restore /p:UseSharedCompilation=false /p:BuildInParallel=false /m:1 /p:Deterministic=true /p:Optimize=true in D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\BenchMark\bin\Release\net6.0\caeea1e9-a0c5-4b7b-94f8-332bfb7832fc
|
||||
+523
@@ -0,0 +1,523 @@
|
||||
// Validating benchmarks:
|
||||
// ***** BenchmarkRunner: Start *****
|
||||
// ***** Found 2 benchmark(s) in total *****
|
||||
// ***** Building 1 exe(s) in Parallel: Start *****
|
||||
// start dotnet restore /p:UseSharedCompilation=false /p:BuildInParallel=false /m:1 /p:Deterministic=true /p:Optimize=true in D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\BenchMark\bin\Release\net6.0\9ebf37e0-e8d5-468e-8e87-373188e07444
|
||||
// command took 1.78 sec and exited with 0
|
||||
// start dotnet build -c Release --no-restore /p:UseSharedCompilation=false /p:BuildInParallel=false /m:1 /p:Deterministic=true /p:Optimize=true in D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\BenchMark\bin\Release\net6.0\9ebf37e0-e8d5-468e-8e87-373188e07444
|
||||
// command took 14.68 sec and exited with 1
|
||||
// start dotnet build -c Release --no-restore --no-dependencies /p:UseSharedCompilation=false /p:BuildInParallel=false /m:1 /p:Deterministic=true /p:Optimize=true in D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\BenchMark\bin\Release\net6.0\9ebf37e0-e8d5-468e-8e87-373188e07444
|
||||
// command took 3.17 sec and exited with 0
|
||||
// ***** Done, took 00:00:19 (19.76 sec) *****
|
||||
// Found 2 benchmarks:
|
||||
// Calculator.DeleSub: .NET 6.0(Runtime=.NET 6.0)
|
||||
// Calculator.PtrSub: .NET 6.0(Runtime=.NET 6.0)
|
||||
|
||||
Setup power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
||||
// **************************
|
||||
// Benchmark: Calculator.DeleSub: .NET 6.0(Runtime=.NET 6.0)
|
||||
// *** Execute ***
|
||||
// Launch: 1 / 1
|
||||
// Execute: dotnet 9ebf37e0-e8d5-468e-8e87-373188e07444.dll --anonymousPipes 1384 1340 --benchmarkName BenchMark.Calculator.DeleSub --job ".NET 6.0" --benchmarkId 0 in D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\BenchMark\bin\Release\net6.0\9ebf37e0-e8d5-468e-8e87-373188e07444\bin\Release\net6.0
|
||||
// BeforeAnythingElse
|
||||
|
||||
// Benchmark Process Environment Information:
|
||||
// BenchmarkDotNet v0.13.12
|
||||
// Runtime=.NET 6.0.25 (6.0.2523.51912), X64 RyuJIT AVX2
|
||||
// GC=Concurrent Workstation
|
||||
// HardwareIntrinsics=AVX2,AES,BMI1,BMI2,FMA,LZCNT,PCLMUL,POPCNT,AvxVnni VectorSize=256
|
||||
// Job: .NET 6.0
|
||||
|
||||
OverheadJitting 1: 1 op, 263600.00 ns, 263.6000 us/op
|
||||
WorkloadJitting 1: 1 op, 234800.00 ns, 234.8000 us/op
|
||||
|
||||
OverheadJitting 2: 16 op, 199900.00 ns, 12.4938 us/op
|
||||
WorkloadJitting 2: 16 op, 197900.00 ns, 12.3688 us/op
|
||||
|
||||
WorkloadPilot 1: 16 op, 2000.00 ns, 125.0000 ns/op
|
||||
WorkloadPilot 2: 32 op, 1800.00 ns, 56.2500 ns/op
|
||||
WorkloadPilot 3: 64 op, 1900.00 ns, 29.6875 ns/op
|
||||
WorkloadPilot 4: 128 op, 3000.00 ns, 23.4375 ns/op
|
||||
WorkloadPilot 5: 256 op, 5100.00 ns, 19.9219 ns/op
|
||||
WorkloadPilot 6: 512 op, 9100.00 ns, 17.7734 ns/op
|
||||
WorkloadPilot 7: 1024 op, 15300.00 ns, 14.9414 ns/op
|
||||
WorkloadPilot 8: 2048 op, 29100.00 ns, 14.2090 ns/op
|
||||
WorkloadPilot 9: 4096 op, 108400.00 ns, 26.4648 ns/op
|
||||
WorkloadPilot 10: 8192 op, 190600.00 ns, 23.2666 ns/op
|
||||
WorkloadPilot 11: 16384 op, 368700.00 ns, 22.5037 ns/op
|
||||
WorkloadPilot 12: 32768 op, 768200.00 ns, 23.4436 ns/op
|
||||
WorkloadPilot 13: 65536 op, 1520200.00 ns, 23.1964 ns/op
|
||||
WorkloadPilot 14: 131072 op, 3078600.00 ns, 23.4879 ns/op
|
||||
WorkloadPilot 15: 262144 op, 5402800.00 ns, 20.6100 ns/op
|
||||
WorkloadPilot 16: 524288 op, 7086000.00 ns, 13.5155 ns/op
|
||||
WorkloadPilot 17: 1048576 op, 13437200.00 ns, 12.8147 ns/op
|
||||
WorkloadPilot 18: 2097152 op, 27682600.00 ns, 13.2001 ns/op
|
||||
WorkloadPilot 19: 4194304 op, 55406800.00 ns, 13.2100 ns/op
|
||||
WorkloadPilot 20: 8388608 op, 103498000.00 ns, 12.3379 ns/op
|
||||
WorkloadPilot 21: 16777216 op, 188999300.00 ns, 11.2652 ns/op
|
||||
WorkloadPilot 22: 33554432 op, 385233000.00 ns, 11.4808 ns/op
|
||||
WorkloadPilot 23: 67108864 op, 784895200.00 ns, 11.6958 ns/op
|
||||
|
||||
OverheadWarmup 1: 67108864 op, 169261300.00 ns, 2.5222 ns/op
|
||||
OverheadWarmup 2: 67108864 op, 152725700.00 ns, 2.2758 ns/op
|
||||
OverheadWarmup 3: 67108864 op, 152486200.00 ns, 2.2722 ns/op
|
||||
OverheadWarmup 4: 67108864 op, 205815400.00 ns, 3.0669 ns/op
|
||||
OverheadWarmup 5: 67108864 op, 146410200.00 ns, 2.1817 ns/op
|
||||
OverheadWarmup 6: 67108864 op, 148509500.00 ns, 2.2130 ns/op
|
||||
OverheadWarmup 7: 67108864 op, 152452600.00 ns, 2.2717 ns/op
|
||||
OverheadWarmup 8: 67108864 op, 180120500.00 ns, 2.6840 ns/op
|
||||
OverheadWarmup 9: 67108864 op, 144396900.00 ns, 2.1517 ns/op
|
||||
|
||||
OverheadActual 1: 67108864 op, 145634700.00 ns, 2.1701 ns/op
|
||||
OverheadActual 2: 67108864 op, 147801900.00 ns, 2.2024 ns/op
|
||||
OverheadActual 3: 67108864 op, 188000600.00 ns, 2.8014 ns/op
|
||||
OverheadActual 4: 67108864 op, 146356100.00 ns, 2.1809 ns/op
|
||||
OverheadActual 5: 67108864 op, 176357900.00 ns, 2.6279 ns/op
|
||||
OverheadActual 6: 67108864 op, 146467300.00 ns, 2.1825 ns/op
|
||||
OverheadActual 7: 67108864 op, 145461400.00 ns, 2.1675 ns/op
|
||||
OverheadActual 8: 67108864 op, 145611300.00 ns, 2.1698 ns/op
|
||||
OverheadActual 9: 67108864 op, 149552600.00 ns, 2.2285 ns/op
|
||||
OverheadActual 10: 67108864 op, 145731000.00 ns, 2.1716 ns/op
|
||||
OverheadActual 11: 67108864 op, 183643100.00 ns, 2.7365 ns/op
|
||||
OverheadActual 12: 67108864 op, 171685000.00 ns, 2.5583 ns/op
|
||||
OverheadActual 13: 67108864 op, 165229600.00 ns, 2.4621 ns/op
|
||||
OverheadActual 14: 67108864 op, 149316300.00 ns, 2.2250 ns/op
|
||||
OverheadActual 15: 67108864 op, 145975700.00 ns, 2.1752 ns/op
|
||||
OverheadActual 16: 67108864 op, 156882800.00 ns, 2.3377 ns/op
|
||||
OverheadActual 17: 67108864 op, 144694800.00 ns, 2.1561 ns/op
|
||||
OverheadActual 18: 67108864 op, 145172900.00 ns, 2.1632 ns/op
|
||||
OverheadActual 19: 67108864 op, 184021000.00 ns, 2.7421 ns/op
|
||||
OverheadActual 20: 67108864 op, 183514800.00 ns, 2.7346 ns/op
|
||||
|
||||
WorkloadWarmup 1: 67108864 op, 794890600.00 ns, 11.8448 ns/op
|
||||
WorkloadWarmup 2: 67108864 op, 770772000.00 ns, 11.4854 ns/op
|
||||
WorkloadWarmup 3: 67108864 op, 778214800.00 ns, 11.5963 ns/op
|
||||
WorkloadWarmup 4: 67108864 op, 763171800.00 ns, 11.3721 ns/op
|
||||
WorkloadWarmup 5: 67108864 op, 774604100.00 ns, 11.5425 ns/op
|
||||
WorkloadWarmup 6: 67108864 op, 780230800.00 ns, 11.6263 ns/op
|
||||
WorkloadWarmup 7: 67108864 op, 779015100.00 ns, 11.6082 ns/op
|
||||
|
||||
// BeforeActualRun
|
||||
WorkloadActual 1: 67108864 op, 769137000.00 ns, 11.4610 ns/op
|
||||
WorkloadActual 2: 67108864 op, 775109800.00 ns, 11.5500 ns/op
|
||||
WorkloadActual 3: 67108864 op, 773654200.00 ns, 11.5283 ns/op
|
||||
WorkloadActual 4: 67108864 op, 763381700.00 ns, 11.3753 ns/op
|
||||
WorkloadActual 5: 67108864 op, 768779800.00 ns, 11.4557 ns/op
|
||||
WorkloadActual 6: 67108864 op, 781205400.00 ns, 11.6409 ns/op
|
||||
WorkloadActual 7: 67108864 op, 877323700.00 ns, 13.0731 ns/op
|
||||
WorkloadActual 8: 67108864 op, 748234600.00 ns, 11.1496 ns/op
|
||||
WorkloadActual 9: 67108864 op, 800227900.00 ns, 11.9243 ns/op
|
||||
WorkloadActual 10: 67108864 op, 745368000.00 ns, 11.1068 ns/op
|
||||
WorkloadActual 11: 67108864 op, 822503100.00 ns, 12.2563 ns/op
|
||||
WorkloadActual 12: 67108864 op, 807004400.00 ns, 12.0253 ns/op
|
||||
WorkloadActual 13: 67108864 op, 781736700.00 ns, 11.6488 ns/op
|
||||
WorkloadActual 14: 67108864 op, 780825000.00 ns, 11.6352 ns/op
|
||||
WorkloadActual 15: 67108864 op, 771194700.00 ns, 11.4917 ns/op
|
||||
WorkloadActual 16: 67108864 op, 788248600.00 ns, 11.7458 ns/op
|
||||
WorkloadActual 17: 67108864 op, 765529400.00 ns, 11.4073 ns/op
|
||||
WorkloadActual 18: 67108864 op, 810286200.00 ns, 12.0742 ns/op
|
||||
WorkloadActual 19: 67108864 op, 753810600.00 ns, 11.2327 ns/op
|
||||
WorkloadActual 20: 67108864 op, 827406000.00 ns, 12.3293 ns/op
|
||||
WorkloadActual 21: 67108864 op, 779712000.00 ns, 11.6186 ns/op
|
||||
WorkloadActual 22: 67108864 op, 774424400.00 ns, 11.5398 ns/op
|
||||
WorkloadActual 23: 67108864 op, 759293500.00 ns, 11.3144 ns/op
|
||||
WorkloadActual 24: 67108864 op, 782318200.00 ns, 11.6574 ns/op
|
||||
WorkloadActual 25: 67108864 op, 753596800.00 ns, 11.2295 ns/op
|
||||
WorkloadActual 26: 67108864 op, 777541400.00 ns, 11.5863 ns/op
|
||||
|
||||
// AfterActualRun
|
||||
WorkloadResult 1: 67108864 op, 620577900.00 ns, 9.2473 ns/op
|
||||
WorkloadResult 2: 67108864 op, 626550700.00 ns, 9.3363 ns/op
|
||||
WorkloadResult 3: 67108864 op, 625095100.00 ns, 9.3146 ns/op
|
||||
WorkloadResult 4: 67108864 op, 614822600.00 ns, 9.1616 ns/op
|
||||
WorkloadResult 5: 67108864 op, 620220700.00 ns, 9.2420 ns/op
|
||||
WorkloadResult 6: 67108864 op, 632646300.00 ns, 9.4272 ns/op
|
||||
WorkloadResult 7: 67108864 op, 599675500.00 ns, 8.9359 ns/op
|
||||
WorkloadResult 8: 67108864 op, 651668800.00 ns, 9.7106 ns/op
|
||||
WorkloadResult 9: 67108864 op, 596808900.00 ns, 8.8931 ns/op
|
||||
WorkloadResult 10: 67108864 op, 658445300.00 ns, 9.8116 ns/op
|
||||
WorkloadResult 11: 67108864 op, 633177600.00 ns, 9.4351 ns/op
|
||||
WorkloadResult 12: 67108864 op, 632265900.00 ns, 9.4215 ns/op
|
||||
WorkloadResult 13: 67108864 op, 622635600.00 ns, 9.2780 ns/op
|
||||
WorkloadResult 14: 67108864 op, 639689500.00 ns, 9.5321 ns/op
|
||||
WorkloadResult 15: 67108864 op, 616970300.00 ns, 9.1936 ns/op
|
||||
WorkloadResult 16: 67108864 op, 661727100.00 ns, 9.8605 ns/op
|
||||
WorkloadResult 17: 67108864 op, 605251500.00 ns, 9.0190 ns/op
|
||||
WorkloadResult 18: 67108864 op, 631152900.00 ns, 9.4049 ns/op
|
||||
WorkloadResult 19: 67108864 op, 625865300.00 ns, 9.3261 ns/op
|
||||
WorkloadResult 20: 67108864 op, 610734400.00 ns, 9.1007 ns/op
|
||||
WorkloadResult 21: 67108864 op, 633759100.00 ns, 9.4437 ns/op
|
||||
WorkloadResult 22: 67108864 op, 605037700.00 ns, 9.0158 ns/op
|
||||
WorkloadResult 23: 67108864 op, 628982300.00 ns, 9.3726 ns/op
|
||||
|
||||
// AfterAll
|
||||
// Benchmark Process 2356 has exited with code 0.
|
||||
|
||||
Mean = 9.325 ns, StdErr = 0.053 ns (0.57%), N = 23, StdDev = 0.253 ns
|
||||
Min = 8.893 ns, Q1 = 9.178 ns, Median = 9.326 ns, Q3 = 9.431 ns, Max = 9.861 ns
|
||||
IQR = 0.254 ns, LowerFence = 8.797 ns, UpperFence = 9.811 ns
|
||||
ConfidenceInterval = [9.125 ns; 9.525 ns] (CI 99.9%), Margin = 0.200 ns (2.14% of Mean)
|
||||
Skewness = 0.33, Kurtosis = 2.57, MValue = 2
|
||||
|
||||
// ** Remained 1 (50.0%) benchmark(s) to run. Estimated finish 2024-02-04 18:28 (0h 0m from now) **
|
||||
Setup power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
||||
// **************************
|
||||
// Benchmark: Calculator.PtrSub: .NET 6.0(Runtime=.NET 6.0)
|
||||
// *** Execute ***
|
||||
// Launch: 1 / 1
|
||||
// Execute: dotnet 9ebf37e0-e8d5-468e-8e87-373188e07444.dll --anonymousPipes 1456 1224 --benchmarkName BenchMark.Calculator.PtrSub --job ".NET 6.0" --benchmarkId 1 in D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\BenchMark\bin\Release\net6.0\9ebf37e0-e8d5-468e-8e87-373188e07444\bin\Release\net6.0
|
||||
// BeforeAnythingElse
|
||||
|
||||
// Benchmark Process Environment Information:
|
||||
// BenchmarkDotNet v0.13.12
|
||||
// Runtime=.NET 6.0.25 (6.0.2523.51912), X64 RyuJIT AVX2
|
||||
// GC=Concurrent Workstation
|
||||
// HardwareIntrinsics=AVX2,AES,BMI1,BMI2,FMA,LZCNT,PCLMUL,POPCNT,AvxVnni VectorSize=256
|
||||
// Job: .NET 6.0
|
||||
|
||||
OverheadJitting 1: 1 op, 243100.00 ns, 243.1000 us/op
|
||||
WorkloadJitting 1: 1 op, 181900.00 ns, 181.9000 us/op
|
||||
|
||||
OverheadJitting 2: 16 op, 194700.00 ns, 12.1687 us/op
|
||||
WorkloadJitting 2: 16 op, 193200.00 ns, 12.0750 us/op
|
||||
|
||||
WorkloadPilot 1: 16 op, 600.00 ns, 37.5000 ns/op
|
||||
WorkloadPilot 2: 32 op, 500.00 ns, 15.6250 ns/op
|
||||
WorkloadPilot 3: 64 op, 600.00 ns, 9.3750 ns/op
|
||||
WorkloadPilot 4: 128 op, 900.00 ns, 7.0312 ns/op
|
||||
WorkloadPilot 5: 256 op, 1300.00 ns, 5.0781 ns/op
|
||||
WorkloadPilot 6: 512 op, 2200.00 ns, 4.2969 ns/op
|
||||
WorkloadPilot 7: 1024 op, 4400.00 ns, 4.2969 ns/op
|
||||
WorkloadPilot 8: 2048 op, 8200.00 ns, 4.0039 ns/op
|
||||
WorkloadPilot 9: 4096 op, 16100.00 ns, 3.9307 ns/op
|
||||
WorkloadPilot 10: 8192 op, 31800.00 ns, 3.8818 ns/op
|
||||
WorkloadPilot 11: 16384 op, 63000.00 ns, 3.8452 ns/op
|
||||
WorkloadPilot 12: 32768 op, 125700.00 ns, 3.8361 ns/op
|
||||
WorkloadPilot 13: 65536 op, 250900.00 ns, 3.8284 ns/op
|
||||
WorkloadPilot 14: 131072 op, 501100.00 ns, 3.8231 ns/op
|
||||
WorkloadPilot 15: 262144 op, 1002400.00 ns, 3.8239 ns/op
|
||||
WorkloadPilot 16: 524288 op, 2355000.00 ns, 4.4918 ns/op
|
||||
WorkloadPilot 17: 1048576 op, 4789100.00 ns, 4.5672 ns/op
|
||||
WorkloadPilot 18: 2097152 op, 7949600.00 ns, 3.7907 ns/op
|
||||
WorkloadPilot 19: 4194304 op, 18041200.00 ns, 4.3014 ns/op
|
||||
WorkloadPilot 20: 8388608 op, 32521400.00 ns, 3.8769 ns/op
|
||||
WorkloadPilot 21: 16777216 op, 89853300.00 ns, 5.3557 ns/op
|
||||
WorkloadPilot 22: 33554432 op, 136157900.00 ns, 4.0578 ns/op
|
||||
WorkloadPilot 23: 67108864 op, 238039100.00 ns, 3.5471 ns/op
|
||||
WorkloadPilot 24: 134217728 op, 509866800.00 ns, 3.7988 ns/op
|
||||
|
||||
OverheadWarmup 1: 134217728 op, 318984400.00 ns, 2.3766 ns/op
|
||||
OverheadWarmup 2: 134217728 op, 380819500.00 ns, 2.8373 ns/op
|
||||
OverheadWarmup 3: 134217728 op, 302220900.00 ns, 2.2517 ns/op
|
||||
OverheadWarmup 4: 134217728 op, 290983100.00 ns, 2.1680 ns/op
|
||||
OverheadWarmup 5: 134217728 op, 291767100.00 ns, 2.1738 ns/op
|
||||
OverheadWarmup 6: 134217728 op, 297264500.00 ns, 2.2148 ns/op
|
||||
OverheadWarmup 7: 134217728 op, 293313000.00 ns, 2.1854 ns/op
|
||||
|
||||
OverheadActual 1: 134217728 op, 292367800.00 ns, 2.1783 ns/op
|
||||
OverheadActual 2: 134217728 op, 290961900.00 ns, 2.1678 ns/op
|
||||
OverheadActual 3: 134217728 op, 294334000.00 ns, 2.1930 ns/op
|
||||
OverheadActual 4: 134217728 op, 297342300.00 ns, 2.2154 ns/op
|
||||
OverheadActual 5: 134217728 op, 293626900.00 ns, 2.1877 ns/op
|
||||
OverheadActual 6: 134217728 op, 294895600.00 ns, 2.1971 ns/op
|
||||
OverheadActual 7: 134217728 op, 360751700.00 ns, 2.6878 ns/op
|
||||
OverheadActual 8: 134217728 op, 320075600.00 ns, 2.3847 ns/op
|
||||
OverheadActual 9: 134217728 op, 294782800.00 ns, 2.1963 ns/op
|
||||
OverheadActual 10: 134217728 op, 347160800.00 ns, 2.5865 ns/op
|
||||
OverheadActual 11: 134217728 op, 290746800.00 ns, 2.1662 ns/op
|
||||
OverheadActual 12: 134217728 op, 289205000.00 ns, 2.1547 ns/op
|
||||
OverheadActual 13: 134217728 op, 295042700.00 ns, 2.1982 ns/op
|
||||
OverheadActual 14: 134217728 op, 289224000.00 ns, 2.1549 ns/op
|
||||
OverheadActual 15: 134217728 op, 297822100.00 ns, 2.2189 ns/op
|
||||
|
||||
WorkloadWarmup 1: 134217728 op, 476241400.00 ns, 3.5483 ns/op
|
||||
WorkloadWarmup 2: 134217728 op, 487481200.00 ns, 3.6320 ns/op
|
||||
WorkloadWarmup 3: 134217728 op, 494291400.00 ns, 3.6828 ns/op
|
||||
WorkloadWarmup 4: 134217728 op, 473500200.00 ns, 3.5279 ns/op
|
||||
WorkloadWarmup 5: 134217728 op, 479731300.00 ns, 3.5743 ns/op
|
||||
WorkloadWarmup 6: 134217728 op, 514990700.00 ns, 3.8370 ns/op
|
||||
WorkloadWarmup 7: 134217728 op, 482179800.00 ns, 3.5925 ns/op
|
||||
|
||||
// BeforeActualRun
|
||||
WorkloadActual 1: 134217728 op, 473972400.00 ns, 3.5314 ns/op
|
||||
WorkloadActual 2: 134217728 op, 478873800.00 ns, 3.5679 ns/op
|
||||
WorkloadActual 3: 134217728 op, 573936000.00 ns, 4.2762 ns/op
|
||||
WorkloadActual 4: 134217728 op, 699470000.00 ns, 5.2115 ns/op
|
||||
WorkloadActual 5: 134217728 op, 485260200.00 ns, 3.6155 ns/op
|
||||
WorkloadActual 6: 134217728 op, 481148200.00 ns, 3.5848 ns/op
|
||||
WorkloadActual 7: 134217728 op, 476720100.00 ns, 3.5518 ns/op
|
||||
WorkloadActual 8: 134217728 op, 525766200.00 ns, 3.9173 ns/op
|
||||
WorkloadActual 9: 134217728 op, 474531500.00 ns, 3.5355 ns/op
|
||||
WorkloadActual 10: 134217728 op, 534070700.00 ns, 3.9791 ns/op
|
||||
WorkloadActual 11: 134217728 op, 486773200.00 ns, 3.6267 ns/op
|
||||
WorkloadActual 12: 134217728 op, 528276200.00 ns, 3.9360 ns/op
|
||||
WorkloadActual 13: 134217728 op, 530367200.00 ns, 3.9515 ns/op
|
||||
WorkloadActual 14: 134217728 op, 670401100.00 ns, 4.9949 ns/op
|
||||
WorkloadActual 15: 134217728 op, 516708100.00 ns, 3.8498 ns/op
|
||||
WorkloadActual 16: 134217728 op, 504049500.00 ns, 3.7555 ns/op
|
||||
WorkloadActual 17: 134217728 op, 463578000.00 ns, 3.4539 ns/op
|
||||
WorkloadActual 18: 134217728 op, 463216200.00 ns, 3.4512 ns/op
|
||||
WorkloadActual 19: 134217728 op, 505676800.00 ns, 3.7676 ns/op
|
||||
WorkloadActual 20: 134217728 op, 467711000.00 ns, 3.4847 ns/op
|
||||
WorkloadActual 21: 134217728 op, 473567100.00 ns, 3.5283 ns/op
|
||||
WorkloadActual 22: 134217728 op, 500774800.00 ns, 3.7311 ns/op
|
||||
WorkloadActual 23: 134217728 op, 467487100.00 ns, 3.4831 ns/op
|
||||
WorkloadActual 24: 134217728 op, 527752600.00 ns, 3.9321 ns/op
|
||||
WorkloadActual 25: 134217728 op, 469069800.00 ns, 3.4948 ns/op
|
||||
WorkloadActual 26: 134217728 op, 513209300.00 ns, 3.8237 ns/op
|
||||
WorkloadActual 27: 134217728 op, 525664500.00 ns, 3.9165 ns/op
|
||||
WorkloadActual 28: 134217728 op, 537797000.00 ns, 4.0069 ns/op
|
||||
WorkloadActual 29: 134217728 op, 464479700.00 ns, 3.4606 ns/op
|
||||
WorkloadActual 30: 134217728 op, 632549800.00 ns, 4.7129 ns/op
|
||||
WorkloadActual 31: 134217728 op, 491176600.00 ns, 3.6596 ns/op
|
||||
WorkloadActual 32: 134217728 op, 469650900.00 ns, 3.4992 ns/op
|
||||
WorkloadActual 33: 134217728 op, 480864000.00 ns, 3.5827 ns/op
|
||||
WorkloadActual 34: 134217728 op, 475670300.00 ns, 3.5440 ns/op
|
||||
WorkloadActual 35: 134217728 op, 465781300.00 ns, 3.4703 ns/op
|
||||
WorkloadActual 36: 134217728 op, 610131200.00 ns, 4.5458 ns/op
|
||||
WorkloadActual 37: 134217728 op, 527323800.00 ns, 3.9289 ns/op
|
||||
WorkloadActual 38: 134217728 op, 517611500.00 ns, 3.8565 ns/op
|
||||
WorkloadActual 39: 134217728 op, 569363500.00 ns, 4.2421 ns/op
|
||||
WorkloadActual 40: 134217728 op, 846096300.00 ns, 6.3039 ns/op
|
||||
WorkloadActual 41: 134217728 op, 516831100.00 ns, 3.8507 ns/op
|
||||
WorkloadActual 42: 134217728 op, 596778900.00 ns, 4.4463 ns/op
|
||||
WorkloadActual 43: 134217728 op, 722625900.00 ns, 5.3840 ns/op
|
||||
WorkloadActual 44: 134217728 op, 564218900.00 ns, 4.2038 ns/op
|
||||
WorkloadActual 45: 134217728 op, 516380700.00 ns, 3.8473 ns/op
|
||||
WorkloadActual 46: 134217728 op, 482069300.00 ns, 3.5917 ns/op
|
||||
WorkloadActual 47: 134217728 op, 476202600.00 ns, 3.5480 ns/op
|
||||
WorkloadActual 48: 134217728 op, 506248900.00 ns, 3.7718 ns/op
|
||||
WorkloadActual 49: 134217728 op, 477058600.00 ns, 3.5544 ns/op
|
||||
WorkloadActual 50: 134217728 op, 501394900.00 ns, 3.7357 ns/op
|
||||
WorkloadActual 51: 134217728 op, 516678900.00 ns, 3.8496 ns/op
|
||||
WorkloadActual 52: 134217728 op, 494090400.00 ns, 3.6813 ns/op
|
||||
WorkloadActual 53: 134217728 op, 818341600.00 ns, 6.0971 ns/op
|
||||
WorkloadActual 54: 134217728 op, 479668900.00 ns, 3.5738 ns/op
|
||||
WorkloadActual 55: 134217728 op, 480714700.00 ns, 3.5816 ns/op
|
||||
WorkloadActual 56: 134217728 op, 463685800.00 ns, 3.4547 ns/op
|
||||
WorkloadActual 57: 134217728 op, 535999700.00 ns, 3.9935 ns/op
|
||||
WorkloadActual 58: 134217728 op, 466888800.00 ns, 3.4786 ns/op
|
||||
WorkloadActual 59: 134217728 op, 462744500.00 ns, 3.4477 ns/op
|
||||
WorkloadActual 60: 134217728 op, 614815000.00 ns, 4.5807 ns/op
|
||||
WorkloadActual 61: 134217728 op, 499110800.00 ns, 3.7187 ns/op
|
||||
WorkloadActual 62: 134217728 op, 484168500.00 ns, 3.6073 ns/op
|
||||
WorkloadActual 63: 134217728 op, 471961100.00 ns, 3.5164 ns/op
|
||||
WorkloadActual 64: 134217728 op, 538734800.00 ns, 4.0139 ns/op
|
||||
WorkloadActual 65: 134217728 op, 469845000.00 ns, 3.5006 ns/op
|
||||
WorkloadActual 66: 134217728 op, 479704900.00 ns, 3.5741 ns/op
|
||||
WorkloadActual 67: 134217728 op, 509174600.00 ns, 3.7936 ns/op
|
||||
WorkloadActual 68: 134217728 op, 498237700.00 ns, 3.7122 ns/op
|
||||
WorkloadActual 69: 134217728 op, 484775800.00 ns, 3.6119 ns/op
|
||||
WorkloadActual 70: 134217728 op, 465986400.00 ns, 3.4719 ns/op
|
||||
WorkloadActual 71: 134217728 op, 470216100.00 ns, 3.5034 ns/op
|
||||
WorkloadActual 72: 134217728 op, 545216200.00 ns, 4.0622 ns/op
|
||||
WorkloadActual 73: 134217728 op, 470640900.00 ns, 3.5065 ns/op
|
||||
WorkloadActual 74: 134217728 op, 504144900.00 ns, 3.7562 ns/op
|
||||
WorkloadActual 75: 134217728 op, 520980600.00 ns, 3.8816 ns/op
|
||||
WorkloadActual 76: 134217728 op, 493514500.00 ns, 3.6770 ns/op
|
||||
WorkloadActual 77: 134217728 op, 546201600.00 ns, 4.0695 ns/op
|
||||
WorkloadActual 78: 134217728 op, 511572300.00 ns, 3.8115 ns/op
|
||||
WorkloadActual 79: 134217728 op, 514529500.00 ns, 3.8335 ns/op
|
||||
WorkloadActual 80: 134217728 op, 489085100.00 ns, 3.6440 ns/op
|
||||
WorkloadActual 81: 134217728 op, 585033200.00 ns, 4.3588 ns/op
|
||||
WorkloadActual 82: 134217728 op, 496497400.00 ns, 3.6992 ns/op
|
||||
WorkloadActual 83: 134217728 op, 490505800.00 ns, 3.6546 ns/op
|
||||
WorkloadActual 84: 134217728 op, 482429600.00 ns, 3.5944 ns/op
|
||||
WorkloadActual 85: 134217728 op, 590686600.00 ns, 4.4010 ns/op
|
||||
WorkloadActual 86: 134217728 op, 459750200.00 ns, 3.4254 ns/op
|
||||
WorkloadActual 87: 134217728 op, 638268400.00 ns, 4.7555 ns/op
|
||||
WorkloadActual 88: 134217728 op, 582426900.00 ns, 4.3394 ns/op
|
||||
WorkloadActual 89: 134217728 op, 473620700.00 ns, 3.5287 ns/op
|
||||
WorkloadActual 90: 134217728 op, 479014800.00 ns, 3.5689 ns/op
|
||||
WorkloadActual 91: 134217728 op, 470074000.00 ns, 3.5023 ns/op
|
||||
WorkloadActual 92: 134217728 op, 540805000.00 ns, 4.0293 ns/op
|
||||
WorkloadActual 93: 134217728 op, 464333500.00 ns, 3.4596 ns/op
|
||||
WorkloadActual 94: 134217728 op, 463081500.00 ns, 3.4502 ns/op
|
||||
WorkloadActual 95: 134217728 op, 511920300.00 ns, 3.8141 ns/op
|
||||
WorkloadActual 96: 134217728 op, 518801100.00 ns, 3.8654 ns/op
|
||||
WorkloadActual 97: 134217728 op, 474982900.00 ns, 3.5389 ns/op
|
||||
WorkloadActual 98: 134217728 op, 516448100.00 ns, 3.8478 ns/op
|
||||
WorkloadActual 99: 134217728 op, 502052300.00 ns, 3.7406 ns/op
|
||||
WorkloadActual 100: 134217728 op, 537358900.00 ns, 4.0036 ns/op
|
||||
|
||||
// AfterActualRun
|
||||
WorkloadResult 1: 134217728 op, 179189600.00 ns, 1.3351 ns/op
|
||||
WorkloadResult 2: 134217728 op, 184091000.00 ns, 1.3716 ns/op
|
||||
WorkloadResult 3: 134217728 op, 279153200.00 ns, 2.0799 ns/op
|
||||
WorkloadResult 4: 134217728 op, 190477400.00 ns, 1.4192 ns/op
|
||||
WorkloadResult 5: 134217728 op, 186365400.00 ns, 1.3885 ns/op
|
||||
WorkloadResult 6: 134217728 op, 181937300.00 ns, 1.3555 ns/op
|
||||
WorkloadResult 7: 134217728 op, 230983400.00 ns, 1.7210 ns/op
|
||||
WorkloadResult 8: 134217728 op, 179748700.00 ns, 1.3392 ns/op
|
||||
WorkloadResult 9: 134217728 op, 239287900.00 ns, 1.7828 ns/op
|
||||
WorkloadResult 10: 134217728 op, 191990400.00 ns, 1.4304 ns/op
|
||||
WorkloadResult 11: 134217728 op, 233493400.00 ns, 1.7397 ns/op
|
||||
WorkloadResult 12: 134217728 op, 235584400.00 ns, 1.7552 ns/op
|
||||
WorkloadResult 13: 134217728 op, 221925300.00 ns, 1.6535 ns/op
|
||||
WorkloadResult 14: 134217728 op, 209266700.00 ns, 1.5592 ns/op
|
||||
WorkloadResult 15: 134217728 op, 168795200.00 ns, 1.2576 ns/op
|
||||
WorkloadResult 16: 134217728 op, 168433400.00 ns, 1.2549 ns/op
|
||||
WorkloadResult 17: 134217728 op, 210894000.00 ns, 1.5713 ns/op
|
||||
WorkloadResult 18: 134217728 op, 172928200.00 ns, 1.2884 ns/op
|
||||
WorkloadResult 19: 134217728 op, 178784300.00 ns, 1.3320 ns/op
|
||||
WorkloadResult 20: 134217728 op, 205992000.00 ns, 1.5348 ns/op
|
||||
WorkloadResult 21: 134217728 op, 172704300.00 ns, 1.2867 ns/op
|
||||
WorkloadResult 22: 134217728 op, 232969800.00 ns, 1.7358 ns/op
|
||||
WorkloadResult 23: 134217728 op, 174287000.00 ns, 1.2985 ns/op
|
||||
WorkloadResult 24: 134217728 op, 218426500.00 ns, 1.6274 ns/op
|
||||
WorkloadResult 25: 134217728 op, 230881700.00 ns, 1.7202 ns/op
|
||||
WorkloadResult 26: 134217728 op, 243014200.00 ns, 1.8106 ns/op
|
||||
WorkloadResult 27: 134217728 op, 169696900.00 ns, 1.2643 ns/op
|
||||
WorkloadResult 28: 134217728 op, 196393800.00 ns, 1.4632 ns/op
|
||||
WorkloadResult 29: 134217728 op, 174868100.00 ns, 1.3029 ns/op
|
||||
WorkloadResult 30: 134217728 op, 186081200.00 ns, 1.3864 ns/op
|
||||
WorkloadResult 31: 134217728 op, 180887500.00 ns, 1.3477 ns/op
|
||||
WorkloadResult 32: 134217728 op, 170998500.00 ns, 1.2740 ns/op
|
||||
WorkloadResult 33: 134217728 op, 232541000.00 ns, 1.7326 ns/op
|
||||
WorkloadResult 34: 134217728 op, 222828700.00 ns, 1.6602 ns/op
|
||||
WorkloadResult 35: 134217728 op, 274580700.00 ns, 2.0458 ns/op
|
||||
WorkloadResult 36: 134217728 op, 222048300.00 ns, 1.6544 ns/op
|
||||
WorkloadResult 37: 134217728 op, 301996100.00 ns, 2.2500 ns/op
|
||||
WorkloadResult 38: 134217728 op, 269436100.00 ns, 2.0075 ns/op
|
||||
WorkloadResult 39: 134217728 op, 221597900.00 ns, 1.6510 ns/op
|
||||
WorkloadResult 40: 134217728 op, 187286500.00 ns, 1.3954 ns/op
|
||||
WorkloadResult 41: 134217728 op, 181419800.00 ns, 1.3517 ns/op
|
||||
WorkloadResult 42: 134217728 op, 211466100.00 ns, 1.5755 ns/op
|
||||
WorkloadResult 43: 134217728 op, 182275800.00 ns, 1.3581 ns/op
|
||||
WorkloadResult 44: 134217728 op, 206612100.00 ns, 1.5394 ns/op
|
||||
WorkloadResult 45: 134217728 op, 221896100.00 ns, 1.6533 ns/op
|
||||
WorkloadResult 46: 134217728 op, 199307600.00 ns, 1.4850 ns/op
|
||||
WorkloadResult 47: 134217728 op, 184886100.00 ns, 1.3775 ns/op
|
||||
WorkloadResult 48: 134217728 op, 185931900.00 ns, 1.3853 ns/op
|
||||
WorkloadResult 49: 134217728 op, 168903000.00 ns, 1.2584 ns/op
|
||||
WorkloadResult 50: 134217728 op, 241216900.00 ns, 1.7972 ns/op
|
||||
WorkloadResult 51: 134217728 op, 172106000.00 ns, 1.2823 ns/op
|
||||
WorkloadResult 52: 134217728 op, 167961700.00 ns, 1.2514 ns/op
|
||||
WorkloadResult 53: 134217728 op, 204328000.00 ns, 1.5224 ns/op
|
||||
WorkloadResult 54: 134217728 op, 189385700.00 ns, 1.4110 ns/op
|
||||
WorkloadResult 55: 134217728 op, 177178300.00 ns, 1.3201 ns/op
|
||||
WorkloadResult 56: 134217728 op, 243952000.00 ns, 1.8176 ns/op
|
||||
WorkloadResult 57: 134217728 op, 175062200.00 ns, 1.3043 ns/op
|
||||
WorkloadResult 58: 134217728 op, 184922100.00 ns, 1.3778 ns/op
|
||||
WorkloadResult 59: 134217728 op, 214391800.00 ns, 1.5973 ns/op
|
||||
WorkloadResult 60: 134217728 op, 203454900.00 ns, 1.5159 ns/op
|
||||
WorkloadResult 61: 134217728 op, 189993000.00 ns, 1.4156 ns/op
|
||||
WorkloadResult 62: 134217728 op, 171203600.00 ns, 1.2756 ns/op
|
||||
WorkloadResult 63: 134217728 op, 175433300.00 ns, 1.3071 ns/op
|
||||
WorkloadResult 64: 134217728 op, 250433400.00 ns, 1.8659 ns/op
|
||||
WorkloadResult 65: 134217728 op, 175858100.00 ns, 1.3102 ns/op
|
||||
WorkloadResult 66: 134217728 op, 209362100.00 ns, 1.5599 ns/op
|
||||
WorkloadResult 67: 134217728 op, 226197800.00 ns, 1.6853 ns/op
|
||||
WorkloadResult 68: 134217728 op, 198731700.00 ns, 1.4807 ns/op
|
||||
WorkloadResult 69: 134217728 op, 251418800.00 ns, 1.8732 ns/op
|
||||
WorkloadResult 70: 134217728 op, 216789500.00 ns, 1.6152 ns/op
|
||||
WorkloadResult 71: 134217728 op, 219746700.00 ns, 1.6372 ns/op
|
||||
WorkloadResult 72: 134217728 op, 194302300.00 ns, 1.4477 ns/op
|
||||
WorkloadResult 73: 134217728 op, 290250400.00 ns, 2.1625 ns/op
|
||||
WorkloadResult 74: 134217728 op, 201714600.00 ns, 1.5029 ns/op
|
||||
WorkloadResult 75: 134217728 op, 195723000.00 ns, 1.4582 ns/op
|
||||
WorkloadResult 76: 134217728 op, 187646800.00 ns, 1.3981 ns/op
|
||||
WorkloadResult 77: 134217728 op, 295903800.00 ns, 2.2047 ns/op
|
||||
WorkloadResult 78: 134217728 op, 164967400.00 ns, 1.2291 ns/op
|
||||
WorkloadResult 79: 134217728 op, 287644100.00 ns, 2.1431 ns/op
|
||||
WorkloadResult 80: 134217728 op, 178837900.00 ns, 1.3324 ns/op
|
||||
WorkloadResult 81: 134217728 op, 184232000.00 ns, 1.3726 ns/op
|
||||
WorkloadResult 82: 134217728 op, 175291200.00 ns, 1.3060 ns/op
|
||||
WorkloadResult 83: 134217728 op, 246022200.00 ns, 1.8330 ns/op
|
||||
WorkloadResult 84: 134217728 op, 169550700.00 ns, 1.2633 ns/op
|
||||
WorkloadResult 85: 134217728 op, 168298700.00 ns, 1.2539 ns/op
|
||||
WorkloadResult 86: 134217728 op, 217137500.00 ns, 1.6178 ns/op
|
||||
WorkloadResult 87: 134217728 op, 224018300.00 ns, 1.6691 ns/op
|
||||
WorkloadResult 88: 134217728 op, 180200100.00 ns, 1.3426 ns/op
|
||||
WorkloadResult 89: 134217728 op, 221665300.00 ns, 1.6515 ns/op
|
||||
WorkloadResult 90: 134217728 op, 207269500.00 ns, 1.5443 ns/op
|
||||
WorkloadResult 91: 134217728 op, 242576100.00 ns, 1.8073 ns/op
|
||||
|
||||
// AfterAll
|
||||
// Benchmark Process 32572 has exited with code 0.
|
||||
|
||||
Mean = 1.537 ns, StdErr = 0.026 ns (1.69%), N = 91, StdDev = 0.248 ns
|
||||
Min = 1.229 ns, Q1 = 1.337 ns, Median = 1.481 ns, Q3 = 1.665 ns, Max = 2.250 ns
|
||||
IQR = 0.327 ns, LowerFence = 0.846 ns, UpperFence = 2.156 ns
|
||||
ConfidenceInterval = [1.448 ns; 1.625 ns] (CI 99.9%), Margin = 0.088 ns (5.75% of Mean)
|
||||
Skewness = 0.96, Kurtosis = 3.31, MValue = 3
|
||||
|
||||
// ** Remained 0 (0.0%) benchmark(s) to run. Estimated finish 2024-02-04 18:28 (0h 0m from now) **
|
||||
Successfully reverted power plan (GUID: af0ac61f-1554-472d-ba2d-6ed6b3aea947 FriendlyName: 游戏模式)
|
||||
// ***** BenchmarkRunner: Finish *****
|
||||
|
||||
// * Export *
|
||||
BenchmarkDotNet.Artifacts\results\BenchMark.Calculator-report.csv
|
||||
BenchmarkDotNet.Artifacts\results\BenchMark.Calculator-report-github.md
|
||||
BenchmarkDotNet.Artifacts\results\BenchMark.Calculator-report.html
|
||||
|
||||
// * Detailed results *
|
||||
Calculator.DeleSub: .NET 6.0(Runtime=.NET 6.0)
|
||||
Runtime = .NET 6.0.25 (6.0.2523.51912), X64 RyuJIT AVX2; GC = Concurrent Workstation
|
||||
Mean = 9.325 ns, StdErr = 0.053 ns (0.57%), N = 23, StdDev = 0.253 ns
|
||||
Min = 8.893 ns, Q1 = 9.178 ns, Median = 9.326 ns, Q3 = 9.431 ns, Max = 9.861 ns
|
||||
IQR = 0.254 ns, LowerFence = 8.797 ns, UpperFence = 9.811 ns
|
||||
ConfidenceInterval = [9.125 ns; 9.525 ns] (CI 99.9%), Margin = 0.200 ns (2.14% of Mean)
|
||||
Skewness = 0.33, Kurtosis = 2.57, MValue = 2
|
||||
-------------------- Histogram --------------------
|
||||
[8.776 ns ; 8.988 ns) | @@
|
||||
[8.988 ns ; 9.226 ns) | @@@@@
|
||||
[9.226 ns ; 9.460 ns) | @@@@@@@@@@@@
|
||||
[9.460 ns ; 9.669 ns) | @
|
||||
[9.669 ns ; 9.902 ns) | @@@
|
||||
---------------------------------------------------
|
||||
|
||||
Calculator.PtrSub: .NET 6.0(Runtime=.NET 6.0)
|
||||
Runtime = .NET 6.0.25 (6.0.2523.51912), X64 RyuJIT AVX2; GC = Concurrent Workstation
|
||||
Mean = 1.537 ns, StdErr = 0.026 ns (1.69%), N = 91, StdDev = 0.248 ns
|
||||
Min = 1.229 ns, Q1 = 1.337 ns, Median = 1.481 ns, Q3 = 1.665 ns, Max = 2.250 ns
|
||||
IQR = 0.327 ns, LowerFence = 0.846 ns, UpperFence = 2.156 ns
|
||||
ConfidenceInterval = [1.448 ns; 1.625 ns] (CI 99.9%), Margin = 0.088 ns (5.75% of Mean)
|
||||
Skewness = 0.96, Kurtosis = 3.31, MValue = 3
|
||||
-------------------- Histogram --------------------
|
||||
[1.157 ns ; 1.251 ns) | @
|
||||
[1.251 ns ; 1.396 ns) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
[1.396 ns ; 1.516 ns) | @@@@@@@@@@@
|
||||
[1.516 ns ; 1.660 ns) | @@@@@@@@@@@@@@@@@@@
|
||||
[1.660 ns ; 1.849 ns) | @@@@@@@@@@@@@@@
|
||||
[1.849 ns ; 1.971 ns) | @@
|
||||
[1.971 ns ; 2.124 ns) | @@@
|
||||
[2.124 ns ; 2.269 ns) | @@@@
|
||||
---------------------------------------------------
|
||||
|
||||
// * Summary *
|
||||
|
||||
BenchmarkDotNet v0.13.12, Windows 10 (10.0.19045.3930/22H2/2022Update)
|
||||
12th Gen Intel Core i7-12700H, 1 CPU, 20 logical and 14 physical cores
|
||||
.NET SDK 8.0.100
|
||||
[Host] : .NET 6.0.25 (6.0.2523.51912), X64 RyuJIT AVX2
|
||||
.NET 6.0 : .NET 6.0.25 (6.0.2523.51912), X64 RyuJIT AVX2
|
||||
|
||||
Job=.NET 6.0 Runtime=.NET 6.0
|
||||
|
||||
| Method | Mean | Error | StdDev |
|
||||
|-------- |---------:|----------:|----------:|
|
||||
| DeleSub | 9.325 ns | 0.1999 ns | 0.2529 ns |
|
||||
| PtrSub | 1.537 ns | 0.0883 ns | 0.2476 ns |
|
||||
|
||||
// * Warnings *
|
||||
MultimodalDistribution
|
||||
Calculator.PtrSub: .NET 6.0 -> It seems that the distribution can have several modes (mValue = 3)
|
||||
|
||||
// * Hints *
|
||||
Outliers
|
||||
Calculator.DeleSub: .NET 6.0 -> 3 outliers were removed (12.26 ns..13.07 ns)
|
||||
Calculator.PtrSub: .NET 6.0 -> 9 outliers were removed (4.55 ns..6.30 ns)
|
||||
|
||||
// * Legends *
|
||||
Mean : Arithmetic mean of all measurements
|
||||
Error : Half of 99.9% confidence interval
|
||||
StdDev : Standard deviation of all measurements
|
||||
1 ns : 1 Nanosecond (0.000000001 sec)
|
||||
|
||||
// ***** BenchmarkRunner: End *****
|
||||
Run time: 00:01:35 (95.94 sec), executed benchmarks: 2
|
||||
|
||||
Global total time: 00:01:56 (116.35 sec), executed benchmarks: 2
|
||||
// * Artifacts cleanup *
|
||||
Artifacts cleanup is finished
|
||||
+1
@@ -0,0 +1 @@
|
||||
// Validating benchmarks:
|
||||
+1
@@ -0,0 +1 @@
|
||||
// Validating benchmarks:
|
||||
+1
@@ -0,0 +1 @@
|
||||
// Validating benchmarks:
|
||||
+1
@@ -0,0 +1 @@
|
||||
// Validating benchmarks:
|
||||
+1
@@ -0,0 +1 @@
|
||||
// Validating benchmarks:
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
```
|
||||
|
||||
BenchmarkDotNet v0.13.12, Windows 10 (10.0.19045.3930/22H2/2022Update)
|
||||
12th Gen Intel Core i7-12700H, 1 CPU, 20 logical and 14 physical cores
|
||||
.NET SDK 8.0.100
|
||||
[Host] : .NET 6.0.25 (6.0.2523.51912), X64 RyuJIT AVX2
|
||||
.NET 6.0 : .NET 6.0.25 (6.0.2523.51912), X64 RyuJIT AVX2
|
||||
|
||||
Job=.NET 6.0 Runtime=.NET 6.0
|
||||
|
||||
```
|
||||
| Method | Mean | Error | StdDev |
|
||||
|-------- |---------:|----------:|----------:|
|
||||
| DeleSub | 9.325 ns | 0.1999 ns | 0.2529 ns |
|
||||
| PtrSub | 1.537 ns | 0.0883 ns | 0.2476 ns |
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,LargeAddressAware,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,Mean,Error,StdDev
|
||||
DeleSub,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11111111000000000000,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,9.325 ns,0.1999 ns,0.2529 ns
|
||||
PtrSub,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11111111000000000000,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1.537 ns,0.0883 ns,0.2476 ns
|
||||
|
+32
@@ -0,0 +1,32 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang='en'>
|
||||
<head>
|
||||
<meta charset='utf-8' />
|
||||
<title>BenchMark.Calculator-20240204-182717</title>
|
||||
|
||||
<style type="text/css">
|
||||
table { border-collapse: collapse; display: block; width: 100%; overflow: auto; }
|
||||
td, th { padding: 6px 13px; border: 1px solid #ddd; text-align: right; }
|
||||
tr { background-color: #fff; border-top: 1px solid #ccc; }
|
||||
tr:nth-child(even) { background: #f8f8f8; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<pre><code>
|
||||
BenchmarkDotNet v0.13.12, Windows 10 (10.0.19045.3930/22H2/2022Update)
|
||||
12th Gen Intel Core i7-12700H, 1 CPU, 20 logical and 14 physical cores
|
||||
.NET SDK 8.0.100
|
||||
[Host] : .NET 6.0.25 (6.0.2523.51912), X64 RyuJIT AVX2
|
||||
.NET 6.0 : .NET 6.0.25 (6.0.2523.51912), X64 RyuJIT AVX2
|
||||
</code></pre>
|
||||
<pre><code>Job=.NET 6.0 Runtime=.NET 6.0
|
||||
</code></pre>
|
||||
|
||||
<table>
|
||||
<thead><tr><th>Method</th><th>Mean</th><th>Error</th><th>StdDev</th>
|
||||
</tr>
|
||||
</thead><tbody><tr><td>DeleSub</td><td>9.325 ns</td><td>0.1999 ns</td><td>0.2529 ns</td>
|
||||
</tr><tr><td>PtrSub</td><td>1.537 ns</td><td>0.0883 ns</td><td>0.2476 ns</td>
|
||||
</tr></tbody></table>
|
||||
</body>
|
||||
</html>
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<ImportDirectoryBuildProps>false</ImportDirectoryBuildProps>
|
||||
<ImportDirectoryBuildTargets>false</ImportDirectoryBuildTargets>
|
||||
<AssemblyTitle>caeea1e9-a0c5-4b7b-94f8-332bfb7832fc</AssemblyTitle>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<AssemblyName>caeea1e9-a0c5-4b7b-94f8-332bfb7832fc</AssemblyName>
|
||||
<OutputType>Exe</OutputType>
|
||||
<OutputPath>bin\Release</OutputPath>
|
||||
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
|
||||
<!-- Usage of System.Random can cause compilation errors if Code Analysis warnings are treated as Errors -->
|
||||
<CodeAnalysisTreatWarningsAsErrors>false</CodeAnalysisTreatWarningsAsErrors>
|
||||
<!-- disabled due to https://github.com/dotnet/roslyn/issues/59421 -->
|
||||
<DebugSymbols>false</DebugSymbols>
|
||||
<UseSharedCompilation>false</UseSharedCompilation>
|
||||
<CodeAnalysisRuleSet></CodeAnalysisRuleSet>
|
||||
<RunAnalyzers>false</RunAnalyzers>
|
||||
<Deterministic>true</Deterministic>
|
||||
<!-- needed for custom build configurations (only "Release" builds are optimized by default) -->
|
||||
<Optimize Condition=" '$(Configuration)' != 'Debug' ">true</Optimize>
|
||||
<!-- we set LangVersion after any copied settings which might contain LangVersion copied from the benchmarks project -->
|
||||
<LangVersion Condition="'$(LangVersion)' == '' Or ($([System.Char]::IsDigit('$(LangVersion)', 0)) And '$(LangVersion)' < '7.3')">latest</LangVersion>
|
||||
<AppendTargetFrameworkToOutputPath>true</AppendTargetFrameworkToOutputPath>
|
||||
<!-- fix for NETSDK1150: https://docs.microsoft.com/en-us/dotnet/core/compatibility/sdk/5.0/referencing-executable-generates-error -->
|
||||
<ValidateExecutableReferencesMatchSelfContained>false</ValidateExecutableReferencesMatchSelfContained>
|
||||
<StartupObject>BenchmarkDotNet.Autogenerated.UniqueProgramName</StartupObject>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="caeea1e9-a0c5-4b7b-94f8-332bfb7832fc.notcs" Exclude="bin\**;obj\**;**\*.xproj;packages\**" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\BenchMark\BenchMark.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Begin copied settings from benchmarks project -->
|
||||
|
||||
<!-- End copied settings -->
|
||||
|
||||
<PropertyGroup>
|
||||
<ServerGarbageCollection>false</ServerGarbageCollection>
|
||||
<ConcurrentGarbageCollection>true</ConcurrentGarbageCollection>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
</Project>
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<runtime>
|
||||
<gcConcurrent enabled="true" />
|
||||
<gcServer enabled="false" />
|
||||
</runtime>
|
||||
</configuration>
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
call dotnet restore /p:UseSharedCompilation=false /p:BuildInParallel=false /m:1 /p:Deterministic=true /p:Optimize=true
|
||||
call dotnet build -c Release /p:UseSharedCompilation=false /p:BuildInParallel=false /m:1 /p:Deterministic=true /p:Optimize=true
|
||||
+517
@@ -0,0 +1,517 @@
|
||||
|
||||
|
||||
// <auto-generated />
|
||||
|
||||
// this file must not be importing any namespaces
|
||||
// we should use full names everywhere to avoid any potential naming conflicts, example: #1007, #778
|
||||
|
||||
// the namespace name must be in sync with WindowsDisassembler.BuildArguments
|
||||
namespace BenchmarkDotNet.Autogenerated
|
||||
{
|
||||
public class UniqueProgramName // we need different name than typical "Program" to avoid problems with referencing "Program" types from benchmarked code, #691
|
||||
{
|
||||
|
||||
public static System.Int32 Main(System.String[] args)
|
||||
{
|
||||
// this method MUST NOT have any dependencies to BenchmarkDotNet and any other external dlls! (CoreRT is exception from this rule)
|
||||
// otherwise if LINQPad's shadow copy is enabled, we will not register for AssemblyLoading event
|
||||
// before .NET Framework tries to load it for this method
|
||||
#if NETFRAMEWORK
|
||||
using(new DirtyAssemblyResolveHelper())
|
||||
#endif
|
||||
return AfterAssemblyLoadingAttached(args);
|
||||
}
|
||||
|
||||
private static System.Int32 AfterAssemblyLoadingAttached(System.String[] args)
|
||||
{
|
||||
BenchmarkDotNet.Engines.IHost host; // this variable name is used by CodeGenerator.GetCoreRtSwitch, do NOT change it
|
||||
if (BenchmarkDotNet.Engines.AnonymousPipesHost.TryGetFileHandles(args, out System.String writeHandle, out System.String readHandle))
|
||||
host = new BenchmarkDotNet.Engines.AnonymousPipesHost(writeHandle, readHandle);
|
||||
else
|
||||
host = new BenchmarkDotNet.Engines.NoAcknowledgementConsoleHost();
|
||||
|
||||
// the first thing to do is to let diagnosers hook in before anything happens
|
||||
// so all jit-related diagnosers can catch first jit compilation!
|
||||
BenchmarkDotNet.Engines.HostExtensions.BeforeAnythingElse(host);
|
||||
|
||||
try
|
||||
{
|
||||
// we are not using Runnable here in any direct way in order to avoid strong dependency Main<=>Runnable
|
||||
// which could cause the jitting/assembly loading to happen before we do anything
|
||||
// we have some jitting diagnosers and we want them to catch all the informations!!
|
||||
|
||||
// this variable name is used by CodeGenerator.GetCoreRtSwitch, do NOT change it
|
||||
System.String benchmarkName = System.Linq.Enumerable.FirstOrDefault(System.Linq.Enumerable.Skip(System.Linq.Enumerable.SkipWhile(args, arg => arg != "--benchmarkName"), 1)) ?? "not provided";
|
||||
System.Int32 id = args.Length > 0
|
||||
? System.Int32.Parse(args[args.Length - 1]) // this variable name is used by CodeGenerator.GetCoreRtSwitch, do NOT change it
|
||||
: 0; // used when re-using generated exe without BDN (typically to repro a bug)
|
||||
|
||||
if (args.Length == 0)
|
||||
{
|
||||
host.WriteLine("You have not specified benchmark id (an integer) so the first benchmark will be executed.");
|
||||
}
|
||||
|
||||
#if NATIVEAOT
|
||||
|
||||
#else
|
||||
System.Type type = typeof(BenchmarkDotNet.Autogenerated.UniqueProgramName).Assembly.GetType($"BenchmarkDotNet.Autogenerated.Runnable_{id}");
|
||||
type.GetMethod("Run", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static).Invoke(null, new System.Object[] { host, benchmarkName });
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
catch (System.Exception oom) when (oom is System.OutOfMemoryException || oom is System.Reflection.TargetInvocationException reflection && reflection.InnerException is System.OutOfMemoryException)
|
||||
{
|
||||
host.WriteLine();
|
||||
host.WriteLine("OutOfMemoryException!");
|
||||
host.WriteLine("BenchmarkDotNet continues to run additional iterations until desired accuracy level is achieved. It's possible only if the benchmark method doesn't have any side-effects.");
|
||||
host.WriteLine("If your benchmark allocates memory and keeps it alive, you are creating a memory leak.");
|
||||
host.WriteLine("You should redesign your benchmark and remove the side-effects. You can use `OperationsPerInvoke`, `IterationSetup` and `IterationCleanup` to do that.");
|
||||
host.WriteLine();
|
||||
host.WriteLine(oom.ToString());
|
||||
|
||||
return -1;
|
||||
}
|
||||
catch(System.Exception ex)
|
||||
{
|
||||
host.WriteLine();
|
||||
host.WriteLine(ex.ToString());
|
||||
return -1;
|
||||
}
|
||||
finally
|
||||
{
|
||||
BenchmarkDotNet.Engines.HostExtensions.AfterAll(host);
|
||||
|
||||
host.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#if NETFRAMEWORK
|
||||
internal class DirtyAssemblyResolveHelper : System.IDisposable
|
||||
{
|
||||
internal DirtyAssemblyResolveHelper() => System.AppDomain.CurrentDomain.AssemblyResolve += HelpTheFrameworkToResolveTheAssembly;
|
||||
|
||||
public void Dispose() => System.AppDomain.CurrentDomain.AssemblyResolve -= HelpTheFrameworkToResolveTheAssembly;
|
||||
|
||||
/// <summary>
|
||||
/// according to https://msdn.microsoft.com/en-us/library/ff527268(v=vs.110).aspx
|
||||
/// "the handler is invoked whenever the runtime fails to bind to an assembly by name."
|
||||
/// </summary>
|
||||
/// <returns>not null when we find it manually, null when can't help</returns>
|
||||
private System.Reflection.Assembly HelpTheFrameworkToResolveTheAssembly(System.Object sender, System.ResolveEventArgs args)
|
||||
{
|
||||
#if SHADOWCOPY // used for LINQPad
|
||||
const System.String shadowCopyFolderPath = @"";
|
||||
|
||||
System.String guessedPath = System.IO.Path.Combine(shadowCopyFolderPath, $"{new System.Reflection.AssemblyName(args.Name).Name}.dll");
|
||||
|
||||
return System.IO.File.Exists(guessedPath) ? System.Reflection.Assembly.LoadFrom(guessedPath) : null;
|
||||
#else
|
||||
System.Reflection.AssemblyName fullName = new System.Reflection.AssemblyName(args.Name);
|
||||
System.String simpleName = fullName.Name;
|
||||
|
||||
System.String guessedPath = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, $"{simpleName}.dll");
|
||||
|
||||
if (!System.IO.File.Exists(guessedPath))
|
||||
{
|
||||
System.Console.WriteLine($"// Wrong assembly binding redirects for {args.Name}.");
|
||||
return null; // we can't help, and we also don't call Assembly.Load which if fails comes back here, creates endless loop and causes StackOverflow
|
||||
}
|
||||
|
||||
// the file is right there, but has most probably different version and there is no assembly binding redirect or there is a wrong one...
|
||||
// so we just load it and ignore the version mismatch
|
||||
|
||||
// we warn the user about that, in case some Super User want to be aware of that
|
||||
System.Console.WriteLine($"// Wrong assembly binding redirects for {simpleName}, loading it from disk anyway.");
|
||||
|
||||
return System.Reflection.Assembly.LoadFrom(guessedPath);
|
||||
#endif // SHADOWCOPY
|
||||
}
|
||||
}
|
||||
#endif // NETFRAMEWORK
|
||||
|
||||
// the type name must be in sync with WindowsDisassembler.BuildArguments
|
||||
public unsafe class Runnable_0 : global::BenchMark.Calculator
|
||||
{
|
||||
public static void Run(BenchmarkDotNet.Engines.IHost host, System.String benchmarkName)
|
||||
{
|
||||
BenchmarkDotNet.Autogenerated.Runnable_0 instance = new BenchmarkDotNet.Autogenerated.Runnable_0(); // do NOT change name "instance" (used in SmartParamameter)
|
||||
|
||||
|
||||
host.WriteLine();
|
||||
foreach (System.String infoLine in BenchmarkDotNet.Environments.BenchmarkEnvironmentInfo.GetCurrent().ToFormattedString())
|
||||
{
|
||||
host.WriteLine($"// {infoLine}");
|
||||
}
|
||||
BenchmarkDotNet.Jobs.Job job = new BenchmarkDotNet.Jobs.Job(); // use full name to avoid naming conflicts, #778
|
||||
BenchmarkDotNet.Characteristics.CharacteristicObject.IdCharacteristic[job] = ".NET 6.0";
|
||||
job.Freeze();
|
||||
host.WriteLine($"// Job: {job.DisplayInfo}");
|
||||
host.WriteLine();
|
||||
|
||||
System.Collections.Generic.IEnumerable<BenchmarkDotNet.Validators.ValidationError> errors = BenchmarkDotNet.Environments.BenchmarkEnvironmentInfo.Validate(job);
|
||||
if (BenchmarkDotNet.Validators.ValidationErrorReporter.ReportIfAny(errors, host))
|
||||
return;
|
||||
|
||||
BenchmarkDotNet.Engines.EngineParameters engineParameters = new BenchmarkDotNet.Engines.EngineParameters()
|
||||
{
|
||||
Host = host,
|
||||
WorkloadActionUnroll = instance.WorkloadActionUnroll,
|
||||
WorkloadActionNoUnroll = instance.WorkloadActionNoUnroll,
|
||||
Dummy1Action = instance.Dummy1,
|
||||
Dummy2Action = instance.Dummy2,
|
||||
Dummy3Action = instance.Dummy3,
|
||||
OverheadActionNoUnroll = instance.OverheadActionNoUnroll,
|
||||
OverheadActionUnroll = instance.OverheadActionUnroll,
|
||||
GlobalSetupAction = instance.globalSetupAction,
|
||||
GlobalCleanupAction = instance.globalCleanupAction,
|
||||
IterationSetupAction = instance.iterationSetupAction,
|
||||
IterationCleanupAction = instance.iterationCleanupAction,
|
||||
TargetJob = job,
|
||||
OperationsPerInvoke = 1,
|
||||
MeasureExtraStats = false,
|
||||
BenchmarkName = benchmarkName
|
||||
};
|
||||
|
||||
using (BenchmarkDotNet.Engines.IEngine engine = new BenchmarkDotNet.Engines.EngineFactory().CreateReadyToRun(engineParameters))
|
||||
{
|
||||
BenchmarkDotNet.Engines.RunResults results = engine.Run();
|
||||
|
||||
host.ReportResults(results); // printing costs memory, do this after runs
|
||||
|
||||
instance.__TrickTheJIT__(); // compile the method for disassembler, but without actual run of the benchmark ;)
|
||||
}
|
||||
}
|
||||
|
||||
public delegate void OverheadDelegate();
|
||||
|
||||
public delegate void WorkloadDelegate();
|
||||
|
||||
public Runnable_0()
|
||||
{
|
||||
globalSetupAction = () => { };
|
||||
globalCleanupAction = () => { };
|
||||
iterationSetupAction = () => { };
|
||||
iterationCleanupAction = () => { };
|
||||
overheadDelegate = __Overhead;
|
||||
workloadDelegate = DeleSub;
|
||||
|
||||
}
|
||||
|
||||
private System.Action globalSetupAction;
|
||||
private System.Action globalCleanupAction;
|
||||
private System.Action iterationSetupAction;
|
||||
private System.Action iterationCleanupAction;
|
||||
private BenchmarkDotNet.Autogenerated.Runnable_0.OverheadDelegate overheadDelegate;
|
||||
private BenchmarkDotNet.Autogenerated.Runnable_0.WorkloadDelegate workloadDelegate;
|
||||
|
||||
|
||||
// this method is used only for the disassembly diagnoser purposes
|
||||
// the goal is to get this and the benchmarked method jitted, but without executing the benchmarked method itself
|
||||
public System.Int32 NotEleven;
|
||||
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoOptimization | System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
|
||||
public void __TrickTheJIT__()
|
||||
{
|
||||
NotEleven = new System.Random(123).Next(0, 10);
|
||||
__ForDisassemblyDiagnoser__();
|
||||
}
|
||||
|
||||
private System.Int32 dummyVar;
|
||||
|
||||
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
|
||||
private void Dummy1()
|
||||
{
|
||||
dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;
|
||||
}
|
||||
|
||||
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
|
||||
private void Dummy2()
|
||||
{
|
||||
dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;
|
||||
}
|
||||
|
||||
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
|
||||
private void Dummy3()
|
||||
{
|
||||
dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;
|
||||
}
|
||||
|
||||
private void __Overhead() // __ is to avoid possible name conflict
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
[System.Runtime.CompilerServices.MethodImpl(BenchmarkDotNet.Portability.CodeGenHelper.AggressiveOptimizationOption)]
|
||||
private void OverheadActionUnroll(System.Int64 invokeCount)
|
||||
{
|
||||
|
||||
for (System.Int64 i = 0; i < invokeCount; i++)
|
||||
{
|
||||
overheadDelegate();
|
||||
overheadDelegate();
|
||||
overheadDelegate();
|
||||
overheadDelegate();
|
||||
overheadDelegate();
|
||||
overheadDelegate();
|
||||
overheadDelegate();
|
||||
overheadDelegate();
|
||||
overheadDelegate();
|
||||
overheadDelegate();
|
||||
overheadDelegate();
|
||||
overheadDelegate();
|
||||
overheadDelegate();
|
||||
overheadDelegate();
|
||||
overheadDelegate();
|
||||
overheadDelegate();
|
||||
}
|
||||
}
|
||||
|
||||
[System.Runtime.CompilerServices.MethodImpl(BenchmarkDotNet.Portability.CodeGenHelper.AggressiveOptimizationOption)]
|
||||
private void OverheadActionNoUnroll(System.Int64 invokeCount)
|
||||
{
|
||||
|
||||
for (System.Int64 i = 0; i < invokeCount; i++)
|
||||
{
|
||||
overheadDelegate();
|
||||
}
|
||||
}
|
||||
|
||||
[System.Runtime.CompilerServices.MethodImpl(BenchmarkDotNet.Portability.CodeGenHelper.AggressiveOptimizationOption)]
|
||||
private void WorkloadActionUnroll(System.Int64 invokeCount)
|
||||
{
|
||||
|
||||
for (System.Int64 i = 0; i < invokeCount; i++)
|
||||
{
|
||||
workloadDelegate();
|
||||
workloadDelegate();
|
||||
workloadDelegate();
|
||||
workloadDelegate();
|
||||
workloadDelegate();
|
||||
workloadDelegate();
|
||||
workloadDelegate();
|
||||
workloadDelegate();
|
||||
workloadDelegate();
|
||||
workloadDelegate();
|
||||
workloadDelegate();
|
||||
workloadDelegate();
|
||||
workloadDelegate();
|
||||
workloadDelegate();
|
||||
workloadDelegate();
|
||||
workloadDelegate();
|
||||
}
|
||||
}
|
||||
|
||||
[System.Runtime.CompilerServices.MethodImpl(BenchmarkDotNet.Portability.CodeGenHelper.AggressiveOptimizationOption)]
|
||||
private void WorkloadActionNoUnroll(System.Int64 invokeCount)
|
||||
{
|
||||
|
||||
for (System.Int64 i = 0; i < invokeCount; i++)
|
||||
{
|
||||
workloadDelegate();
|
||||
}
|
||||
}
|
||||
|
||||
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoOptimization | System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
|
||||
public void __ForDisassemblyDiagnoser__()
|
||||
{
|
||||
if (NotEleven == 11)
|
||||
{
|
||||
|
||||
DeleSub();
|
||||
}
|
||||
}
|
||||
}
|
||||
// the type name must be in sync with WindowsDisassembler.BuildArguments
|
||||
public unsafe class Runnable_1 : global::BenchMark.Calculator
|
||||
{
|
||||
public static void Run(BenchmarkDotNet.Engines.IHost host, System.String benchmarkName)
|
||||
{
|
||||
BenchmarkDotNet.Autogenerated.Runnable_1 instance = new BenchmarkDotNet.Autogenerated.Runnable_1(); // do NOT change name "instance" (used in SmartParamameter)
|
||||
|
||||
|
||||
host.WriteLine();
|
||||
foreach (System.String infoLine in BenchmarkDotNet.Environments.BenchmarkEnvironmentInfo.GetCurrent().ToFormattedString())
|
||||
{
|
||||
host.WriteLine($"// {infoLine}");
|
||||
}
|
||||
BenchmarkDotNet.Jobs.Job job = new BenchmarkDotNet.Jobs.Job(); // use full name to avoid naming conflicts, #778
|
||||
BenchmarkDotNet.Characteristics.CharacteristicObject.IdCharacteristic[job] = ".NET 6.0";
|
||||
job.Freeze();
|
||||
host.WriteLine($"// Job: {job.DisplayInfo}");
|
||||
host.WriteLine();
|
||||
|
||||
System.Collections.Generic.IEnumerable<BenchmarkDotNet.Validators.ValidationError> errors = BenchmarkDotNet.Environments.BenchmarkEnvironmentInfo.Validate(job);
|
||||
if (BenchmarkDotNet.Validators.ValidationErrorReporter.ReportIfAny(errors, host))
|
||||
return;
|
||||
|
||||
BenchmarkDotNet.Engines.EngineParameters engineParameters = new BenchmarkDotNet.Engines.EngineParameters()
|
||||
{
|
||||
Host = host,
|
||||
WorkloadActionUnroll = instance.WorkloadActionUnroll,
|
||||
WorkloadActionNoUnroll = instance.WorkloadActionNoUnroll,
|
||||
Dummy1Action = instance.Dummy1,
|
||||
Dummy2Action = instance.Dummy2,
|
||||
Dummy3Action = instance.Dummy3,
|
||||
OverheadActionNoUnroll = instance.OverheadActionNoUnroll,
|
||||
OverheadActionUnroll = instance.OverheadActionUnroll,
|
||||
GlobalSetupAction = instance.globalSetupAction,
|
||||
GlobalCleanupAction = instance.globalCleanupAction,
|
||||
IterationSetupAction = instance.iterationSetupAction,
|
||||
IterationCleanupAction = instance.iterationCleanupAction,
|
||||
TargetJob = job,
|
||||
OperationsPerInvoke = 1,
|
||||
MeasureExtraStats = false,
|
||||
BenchmarkName = benchmarkName
|
||||
};
|
||||
|
||||
using (BenchmarkDotNet.Engines.IEngine engine = new BenchmarkDotNet.Engines.EngineFactory().CreateReadyToRun(engineParameters))
|
||||
{
|
||||
BenchmarkDotNet.Engines.RunResults results = engine.Run();
|
||||
|
||||
host.ReportResults(results); // printing costs memory, do this after runs
|
||||
|
||||
instance.__TrickTheJIT__(); // compile the method for disassembler, but without actual run of the benchmark ;)
|
||||
}
|
||||
}
|
||||
|
||||
public delegate void OverheadDelegate();
|
||||
|
||||
public delegate void WorkloadDelegate();
|
||||
|
||||
public Runnable_1()
|
||||
{
|
||||
globalSetupAction = () => { };
|
||||
globalCleanupAction = () => { };
|
||||
iterationSetupAction = () => { };
|
||||
iterationCleanupAction = () => { };
|
||||
overheadDelegate = __Overhead;
|
||||
workloadDelegate = PtrSub;
|
||||
|
||||
}
|
||||
|
||||
private System.Action globalSetupAction;
|
||||
private System.Action globalCleanupAction;
|
||||
private System.Action iterationSetupAction;
|
||||
private System.Action iterationCleanupAction;
|
||||
private BenchmarkDotNet.Autogenerated.Runnable_1.OverheadDelegate overheadDelegate;
|
||||
private BenchmarkDotNet.Autogenerated.Runnable_1.WorkloadDelegate workloadDelegate;
|
||||
|
||||
|
||||
// this method is used only for the disassembly diagnoser purposes
|
||||
// the goal is to get this and the benchmarked method jitted, but without executing the benchmarked method itself
|
||||
public System.Int32 NotEleven;
|
||||
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoOptimization | System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
|
||||
public void __TrickTheJIT__()
|
||||
{
|
||||
NotEleven = new System.Random(123).Next(0, 10);
|
||||
__ForDisassemblyDiagnoser__();
|
||||
}
|
||||
|
||||
private System.Int32 dummyVar;
|
||||
|
||||
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
|
||||
private void Dummy1()
|
||||
{
|
||||
dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;
|
||||
}
|
||||
|
||||
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
|
||||
private void Dummy2()
|
||||
{
|
||||
dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;
|
||||
}
|
||||
|
||||
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
|
||||
private void Dummy3()
|
||||
{
|
||||
dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;
|
||||
}
|
||||
|
||||
private void __Overhead() // __ is to avoid possible name conflict
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
[System.Runtime.CompilerServices.MethodImpl(BenchmarkDotNet.Portability.CodeGenHelper.AggressiveOptimizationOption)]
|
||||
private void OverheadActionUnroll(System.Int64 invokeCount)
|
||||
{
|
||||
|
||||
for (System.Int64 i = 0; i < invokeCount; i++)
|
||||
{
|
||||
overheadDelegate();
|
||||
overheadDelegate();
|
||||
overheadDelegate();
|
||||
overheadDelegate();
|
||||
overheadDelegate();
|
||||
overheadDelegate();
|
||||
overheadDelegate();
|
||||
overheadDelegate();
|
||||
overheadDelegate();
|
||||
overheadDelegate();
|
||||
overheadDelegate();
|
||||
overheadDelegate();
|
||||
overheadDelegate();
|
||||
overheadDelegate();
|
||||
overheadDelegate();
|
||||
overheadDelegate();
|
||||
}
|
||||
}
|
||||
|
||||
[System.Runtime.CompilerServices.MethodImpl(BenchmarkDotNet.Portability.CodeGenHelper.AggressiveOptimizationOption)]
|
||||
private void OverheadActionNoUnroll(System.Int64 invokeCount)
|
||||
{
|
||||
|
||||
for (System.Int64 i = 0; i < invokeCount; i++)
|
||||
{
|
||||
overheadDelegate();
|
||||
}
|
||||
}
|
||||
|
||||
[System.Runtime.CompilerServices.MethodImpl(BenchmarkDotNet.Portability.CodeGenHelper.AggressiveOptimizationOption)]
|
||||
private void WorkloadActionUnroll(System.Int64 invokeCount)
|
||||
{
|
||||
|
||||
for (System.Int64 i = 0; i < invokeCount; i++)
|
||||
{
|
||||
workloadDelegate();
|
||||
workloadDelegate();
|
||||
workloadDelegate();
|
||||
workloadDelegate();
|
||||
workloadDelegate();
|
||||
workloadDelegate();
|
||||
workloadDelegate();
|
||||
workloadDelegate();
|
||||
workloadDelegate();
|
||||
workloadDelegate();
|
||||
workloadDelegate();
|
||||
workloadDelegate();
|
||||
workloadDelegate();
|
||||
workloadDelegate();
|
||||
workloadDelegate();
|
||||
workloadDelegate();
|
||||
}
|
||||
}
|
||||
|
||||
[System.Runtime.CompilerServices.MethodImpl(BenchmarkDotNet.Portability.CodeGenHelper.AggressiveOptimizationOption)]
|
||||
private void WorkloadActionNoUnroll(System.Int64 invokeCount)
|
||||
{
|
||||
|
||||
for (System.Int64 i = 0; i < invokeCount; i++)
|
||||
{
|
||||
workloadDelegate();
|
||||
}
|
||||
}
|
||||
|
||||
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoOptimization | System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
|
||||
public void __ForDisassemblyDiagnoser__()
|
||||
{
|
||||
if (NotEleven == 11)
|
||||
{
|
||||
|
||||
PtrSub();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+138
@@ -0,0 +1,138 @@
|
||||
{
|
||||
"format": 1,
|
||||
"restore": {
|
||||
"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\源代码\\BenchMark\\bin\\Release\\net6.0\\caeea1e9-a0c5-4b7b-94f8-332bfb7832fc\\BenchmarkDotNet.Autogenerated.csproj": {}
|
||||
},
|
||||
"projects": {
|
||||
"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\源代码\\BenchMark\\BenchMark.csproj": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\源代码\\BenchMark\\BenchMark.csproj",
|
||||
"projectName": "BenchMark",
|
||||
"projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\源代码\\BenchMark\\BenchMark.csproj",
|
||||
"packagesPath": "C:\\Users\\Nitlo\\.nuget\\packages\\",
|
||||
"outputPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\源代码\\BenchMark\\obj\\",
|
||||
"projectStyle": "PackageReference",
|
||||
"fallbackFolders": [
|
||||
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
|
||||
],
|
||||
"configFilePaths": [
|
||||
"C:\\Users\\Nitlo\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
|
||||
],
|
||||
"originalTargetFrameworks": [
|
||||
"net6.0"
|
||||
],
|
||||
"sources": {
|
||||
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
|
||||
"C:\\Program Files\\dotnet\\library-packs": {},
|
||||
"https://api.nuget.org/v3/index.json": {}
|
||||
},
|
||||
"frameworks": {
|
||||
"net6.0": {
|
||||
"targetAlias": "net6.0",
|
||||
"projectReferences": {}
|
||||
}
|
||||
},
|
||||
"warningProperties": {
|
||||
"warnAsError": [
|
||||
"NU1605"
|
||||
]
|
||||
}
|
||||
},
|
||||
"frameworks": {
|
||||
"net6.0": {
|
||||
"targetAlias": "net6.0",
|
||||
"dependencies": {
|
||||
"BenchmarkDotNet": {
|
||||
"target": "Package",
|
||||
"version": "[0.13.12, )"
|
||||
}
|
||||
},
|
||||
"imports": [
|
||||
"net461",
|
||||
"net462",
|
||||
"net47",
|
||||
"net471",
|
||||
"net472",
|
||||
"net48",
|
||||
"net481"
|
||||
],
|
||||
"assetTargetFallback": true,
|
||||
"warn": true,
|
||||
"frameworkReferences": {
|
||||
"Microsoft.NETCore.App": {
|
||||
"privateAssets": "all"
|
||||
}
|
||||
},
|
||||
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.100\\RuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
},
|
||||
"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\源代码\\BenchMark\\bin\\Release\\net6.0\\caeea1e9-a0c5-4b7b-94f8-332bfb7832fc\\BenchmarkDotNet.Autogenerated.csproj": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\源代码\\BenchMark\\bin\\Release\\net6.0\\caeea1e9-a0c5-4b7b-94f8-332bfb7832fc\\BenchmarkDotNet.Autogenerated.csproj",
|
||||
"projectName": "caeea1e9-a0c5-4b7b-94f8-332bfb7832fc",
|
||||
"projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\源代码\\BenchMark\\bin\\Release\\net6.0\\caeea1e9-a0c5-4b7b-94f8-332bfb7832fc\\BenchmarkDotNet.Autogenerated.csproj",
|
||||
"packagesPath": "C:\\Users\\Nitlo\\.nuget\\packages\\",
|
||||
"outputPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\源代码\\BenchMark\\bin\\Release\\net6.0\\caeea1e9-a0c5-4b7b-94f8-332bfb7832fc\\obj\\",
|
||||
"projectStyle": "PackageReference",
|
||||
"fallbackFolders": [
|
||||
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
|
||||
],
|
||||
"configFilePaths": [
|
||||
"C:\\Users\\Nitlo\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
|
||||
],
|
||||
"originalTargetFrameworks": [
|
||||
"net6.0"
|
||||
],
|
||||
"sources": {
|
||||
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
|
||||
"C:\\Program Files\\dotnet\\library-packs": {},
|
||||
"https://api.nuget.org/v3/index.json": {}
|
||||
},
|
||||
"frameworks": {
|
||||
"net6.0": {
|
||||
"targetAlias": "net6.0",
|
||||
"projectReferences": {
|
||||
"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\源代码\\BenchMark\\BenchMark.csproj": {
|
||||
"projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\源代码\\BenchMark\\BenchMark.csproj"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"warningProperties": {
|
||||
"warnAsError": [
|
||||
"NU1605"
|
||||
]
|
||||
}
|
||||
},
|
||||
"frameworks": {
|
||||
"net6.0": {
|
||||
"targetAlias": "net6.0",
|
||||
"imports": [
|
||||
"net461",
|
||||
"net462",
|
||||
"net47",
|
||||
"net471",
|
||||
"net472",
|
||||
"net48",
|
||||
"net481"
|
||||
],
|
||||
"assetTargetFallback": true,
|
||||
"warn": true,
|
||||
"frameworkReferences": {
|
||||
"Microsoft.NETCore.App": {
|
||||
"privateAssets": "all"
|
||||
}
|
||||
},
|
||||
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.100\\RuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
|
||||
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
|
||||
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
|
||||
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
|
||||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Nitlo\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
|
||||
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.8.0</NuGetToolVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<SourceRoot Include="C:\Users\Nitlo\.nuget\packages\" />
|
||||
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
|
||||
</ItemGroup>
|
||||
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.diagnostics.tracing.traceevent\3.0.2\buildTransitive\Microsoft.Diagnostics.Tracing.TraceEvent.props" Condition="Exists('$(NuGetPackageRoot)microsoft.diagnostics.tracing.traceevent\3.0.2\buildTransitive\Microsoft.Diagnostics.Tracing.TraceEvent.props')" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<PkgMicrosoft_CodeAnalysis_Analyzers Condition=" '$(PkgMicrosoft_CodeAnalysis_Analyzers)' == '' ">C:\Users\Nitlo\.nuget\packages\microsoft.codeanalysis.analyzers\3.3.3</PkgMicrosoft_CodeAnalysis_Analyzers>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
|
||||
BIN
Binary file not shown.
+1842
File diff suppressed because it is too large
Load Diff
+43
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"version": 2,
|
||||
"dgSpecHash": "JyyNz9xgAZIpzRc13RAbEUGxjcSKibLDy9q9eXO63q5UbwkyGB19MUWoACwpCTHPAf5GHIE6gEAsuegp/R7c4w==",
|
||||
"success": true,
|
||||
"projectFilePath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\源代码\\BenchMark\\bin\\Release\\net6.0\\caeea1e9-a0c5-4b7b-94f8-332bfb7832fc\\BenchmarkDotNet.Autogenerated.csproj",
|
||||
"expectedPackageFiles": [
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\benchmarkdotnet\\0.13.12\\benchmarkdotnet.0.13.12.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\benchmarkdotnet.annotations\\0.13.12\\benchmarkdotnet.annotations.0.13.12.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\commandlineparser\\2.9.1\\commandlineparser.2.9.1.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\gee.external.capstone\\2.3.0\\gee.external.capstone.2.3.0.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\iced\\1.17.0\\iced.1.17.0.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\1.1.0\\microsoft.bcl.asyncinterfaces.1.1.0.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.codeanalysis.analyzers\\3.3.3\\microsoft.codeanalysis.analyzers.3.3.3.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.codeanalysis.common\\4.1.0\\microsoft.codeanalysis.common.4.1.0.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.codeanalysis.csharp\\4.1.0\\microsoft.codeanalysis.csharp.4.1.0.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.diagnostics.netcore.client\\0.2.251802\\microsoft.diagnostics.netcore.client.0.2.251802.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.diagnostics.runtime\\2.2.332302\\microsoft.diagnostics.runtime.2.2.332302.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.diagnostics.tracing.traceevent\\3.0.2\\microsoft.diagnostics.tracing.traceevent.3.0.2.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.dotnet.platformabstractions\\3.1.6\\microsoft.dotnet.platformabstractions.3.1.6.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.extensions.configuration\\2.1.1\\microsoft.extensions.configuration.2.1.1.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\2.1.1\\microsoft.extensions.configuration.abstractions.2.1.1.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.extensions.configuration.binder\\2.1.1\\microsoft.extensions.configuration.binder.2.1.1.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\2.1.1\\microsoft.extensions.dependencyinjection.abstractions.2.1.1.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.extensions.logging\\2.1.1\\microsoft.extensions.logging.2.1.1.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\2.1.1\\microsoft.extensions.logging.abstractions.2.1.1.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.extensions.options\\2.1.1\\microsoft.extensions.options.2.1.1.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.extensions.primitives\\2.1.1\\microsoft.extensions.primitives.2.1.1.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.netcore.platforms\\5.0.0\\microsoft.netcore.platforms.5.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.win32.registry\\5.0.0\\microsoft.win32.registry.5.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\perfolizer\\0.2.1\\perfolizer.0.2.1.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\system.codedom\\5.0.0\\system.codedom.5.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\system.collections.immutable\\5.0.0\\system.collections.immutable.5.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\system.management\\5.0.0\\system.management.5.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\system.memory\\4.5.4\\system.memory.4.5.4.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\system.reflection.metadata\\5.0.0\\system.reflection.metadata.5.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\system.runtime.compilerservices.unsafe\\5.0.0\\system.runtime.compilerservices.unsafe.5.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\system.security.accesscontrol\\5.0.0\\system.security.accesscontrol.5.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\system.security.principal.windows\\5.0.0\\system.security.principal.windows.5.0.0.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\system.text.encoding.codepages\\4.5.1\\system.text.encoding.codepages.4.5.1.nupkg.sha512",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages\\system.threading.tasks.extensions\\4.5.4\\system.threading.tasks.extensions.4.5.4.nupkg.sha512"
|
||||
],
|
||||
"logs": []
|
||||
}
|
||||
@@ -14,7 +14,7 @@ using System.Reflection;
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("BenchMark")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+8148c10acd65bd764d3e12418a1ebd37938d8501")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+5d778e0f2f6e677453cebc990919697968c771f9")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("BenchMark")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("BenchMark")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
@@ -1 +1 @@
|
||||
fc7dcf805a5b029be34437766fd70680b4ca312aaab127d48d3d9cd064f05018
|
||||
a69f4baa1be073def38e9acf0067382f3fca5213a8a52e99918a4b8263c622a4
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
{"documents":{"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\*":"https://raw.githubusercontent.com/Nitload-NSI/CCD_Github/8148c10acd65bd764d3e12418a1ebd37938d8501/*"}}
|
||||
{"documents":{"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\*":"https://raw.githubusercontent.com/Nitload-NSI/CCD_Github/5d778e0f2f6e677453cebc990919697968c771f9/*"}}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -21,7 +21,7 @@ namespace StgSharp
|
||||
|
||||
[DllImport(SSC_libname, EntryPoint = "loadShaderCode",
|
||||
CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
|
||||
internal static extern unsafe uint InternalLoadShaderCode(string shaderCode, int shaderType);
|
||||
internal static extern unsafe uint InternalLoadShaderCode(byte* shaderCode, int shaderType);
|
||||
|
||||
|
||||
[DllImport(SSC_libname, EntryPoint = "setCurrentGLContext",
|
||||
|
||||
@@ -20,9 +20,6 @@ namespace StgSharp.Graphics
|
||||
/// <returns>An intptr value representing the pointer to the function</returns>
|
||||
public delegate IntPtr glLoader(string name);
|
||||
|
||||
public delegate void FrameBufferSizeCallback(
|
||||
IntPtr window, int width, int height);
|
||||
|
||||
#region glfwAPI
|
||||
|
||||
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWcursor* glfwCreateCursor(GLFWimage* image, int xhot, int yhot);
|
||||
|
||||
@@ -43,7 +43,6 @@
|
||||
{
|
||||
Fragment = 0x8B30,
|
||||
Vertex = 0x8B31,
|
||||
Program,
|
||||
}
|
||||
|
||||
public enum BufferType : int
|
||||
|
||||
@@ -55,6 +55,14 @@ namespace StgSharp.Graphics
|
||||
{
|
||||
}
|
||||
|
||||
protected FrameBufferSizeHandler FrameBufferSizeCallback
|
||||
{
|
||||
set
|
||||
{
|
||||
gl.SetFrameBufferSizeCallback(this.windowID, value);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Height of this form, represent in <see cref="int"/>
|
||||
/// </summary>
|
||||
@@ -292,7 +300,6 @@ namespace StgSharp.Graphics
|
||||
windowPtr = InternalIO.glfw.CreateWindow(
|
||||
width, height, tittleBytes, monitor, sharedForm.windowID);
|
||||
}
|
||||
|
||||
if ((long)windowPtr == -1 || (long)windowPtr == -2)
|
||||
{
|
||||
throw new Exception("Cannot create window instance!");
|
||||
@@ -301,7 +308,6 @@ namespace StgSharp.Graphics
|
||||
{
|
||||
windowID = windowPtr;
|
||||
}
|
||||
|
||||
}
|
||||
InternalIO.InternalSetCurrentGLContext(windowID, contextID);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.Common;
|
||||
using System.Linq;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
@@ -12,16 +13,42 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace System
|
||||
{
|
||||
/// <summary>
|
||||
/// A handle to an OpenGL object,
|
||||
/// must be indexed from a <see cref="glHandleSet"/>.
|
||||
/// Direct call will cause <see langword="InvalidOperationException"/>
|
||||
/// </summary>
|
||||
public unsafe struct glHandle
|
||||
{
|
||||
internal uint* valuePtr;
|
||||
|
||||
public glHandle()
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
|
||||
internal glHandle(uint* val)
|
||||
{
|
||||
valuePtr = val;
|
||||
}
|
||||
|
||||
public uint Value
|
||||
{
|
||||
get { return *valuePtr; }
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A handle to an OpenGL object.
|
||||
/// </summary>
|
||||
public unsafe class glHandle
|
||||
public unsafe class glHandleSet
|
||||
{
|
||||
private readonly uint[] _value;
|
||||
internal int length;
|
||||
internal uint* handle;
|
||||
|
||||
public uint this[int index]
|
||||
public glHandle this[int index]
|
||||
{
|
||||
get
|
||||
{
|
||||
@@ -29,39 +56,27 @@ namespace System
|
||||
{
|
||||
throw new IndexOutOfRangeException();
|
||||
}
|
||||
return *(handle + index);
|
||||
}
|
||||
set
|
||||
{
|
||||
if (index > length)
|
||||
{
|
||||
throw new IndexOutOfRangeException();
|
||||
}
|
||||
*(handle + index) = value;
|
||||
return new glHandle(handle + index);
|
||||
}
|
||||
}
|
||||
|
||||
public glHandle(int count)
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void SetValue(int index, uint value)
|
||||
{
|
||||
_value[index] = value;
|
||||
}
|
||||
|
||||
public glHandleSet(int count)
|
||||
{
|
||||
_value = new uint[count];
|
||||
length = count;
|
||||
handle = (uint*)GCHandle.Alloc(_value, GCHandleType.Pinned).AddrOfPinnedObject();
|
||||
}
|
||||
|
||||
internal glHandle(uint[] val)
|
||||
{
|
||||
_value = val;
|
||||
length = val.Length;
|
||||
handle = (uint*)GCHandle.Alloc(_value, GCHandleType.Pinned).AddrOfPinnedObject();
|
||||
}
|
||||
|
||||
internal glHandle(uint val)
|
||||
{
|
||||
_value = [val];
|
||||
length = 1;
|
||||
handle = (uint*)GCHandle.Alloc(_value, GCHandleType.Pinned).AddrOfPinnedObject();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// temporarily release the handle of GLhandle sets.
|
||||
/// Please call <see cref="Pin"/> method before indexing.
|
||||
/// </summary>
|
||||
public void Free()
|
||||
{
|
||||
if (_value == null)
|
||||
@@ -72,6 +87,15 @@ namespace System
|
||||
h.Free();
|
||||
}
|
||||
|
||||
public void Pin()
|
||||
{
|
||||
if (_value == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
handle = (uint*)GCHandle.Alloc(_value, GCHandleType.Pinned).AddrOfPinnedObject();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Realse all resource in this handle.
|
||||
/// This will release all resource in this <see cref="glHandle"/>.
|
||||
|
||||
@@ -21,6 +21,12 @@ namespace StgSharp.Graphics
|
||||
{
|
||||
api = context;
|
||||
}
|
||||
|
||||
void IglFunc.SwitchContext()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
void IglFunc.ActiveTexture(uint type)
|
||||
{
|
||||
@@ -46,7 +52,7 @@ namespace StgSharp.Graphics
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
void IglFunc.AttachShader(glHandle program, glHandle shader)
|
||||
{
|
||||
api->glAttachShader(program[0], shader[0]);
|
||||
api->glAttachShader(program.value, shader.value);
|
||||
}
|
||||
|
||||
void IglFunc.BindBuffer(BufferType bufferType, uint index)
|
||||
@@ -132,10 +138,10 @@ namespace StgSharp.Graphics
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
unsafe glHandle IglFunc.CreateProgram(int count)
|
||||
unsafe glHandleSet IglFunc.CreateProgram(int count)
|
||||
{
|
||||
glHandle h = new glHandle(count);
|
||||
uint* p = h.handle;
|
||||
glHandleSet h = new glHandleSet(count);
|
||||
glHandle* p = h.handle;
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
*(p + i) = api->glCreateProgram();
|
||||
@@ -181,16 +187,16 @@ namespace StgSharp.Graphics
|
||||
api->glDeleteBuffers(1, &handle);
|
||||
}
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
unsafe void IglFunc.DeleteBuffers(glHandle handle)
|
||||
unsafe void IglFunc.DeleteBuffers(glHandleSet handle)
|
||||
{
|
||||
api->glDeleteBuffers((uint)handle.length, handle.handle);
|
||||
api->glDeleteBuffers((uint)handle.length, (uint*)handle.handle);
|
||||
handle.Free();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
unsafe void IglFunc.DeleteVertexArrays(glHandle arrays)
|
||||
unsafe void IglFunc.DeleteVertexArrays(glHandleSet arrays)
|
||||
{
|
||||
api->glDeleteVertexArrays((uint)arrays.length, arrays.handle);
|
||||
api->glDeleteVertexArrays((uint)arrays.length, (uint*)arrays.handle);
|
||||
arrays.Free();
|
||||
}
|
||||
|
||||
@@ -220,20 +226,20 @@ namespace StgSharp.Graphics
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
unsafe void IglFunc.GenBuffers(uint count, glHandle handle)
|
||||
unsafe void IglFunc.GenBuffers(uint count, glHandleSet handle)
|
||||
{
|
||||
api->glGenBuffers(count, handle.handle);
|
||||
api->glGenBuffers(count, (uint*)handle.handle);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
unsafe void IglFunc.GenTextures(uint count, glHandle handle)
|
||||
unsafe void IglFunc.GenTextures(uint count, glHandleSet handle)
|
||||
{
|
||||
api->glGenTextures(count, handle.handle);
|
||||
api->glGenTextures(count, (uint*)handle.handle);
|
||||
}
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
unsafe void IglFunc.GenVertexArrays(uint count, glHandle handle)
|
||||
unsafe void IglFunc.GenVertexArrays(uint count, glHandleSet handle)
|
||||
{
|
||||
api->glGenVertexArrays(count, handle.handle);
|
||||
api->glGenVertexArrays(count, (uint*)handle.handle);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
|
||||
@@ -16,6 +16,7 @@ namespace StgSharp.Graphics
|
||||
|
||||
FrameTimeoutException refreshSIgnal = new FrameTimeoutException();
|
||||
FrameTimeoutException signal = new FrameTimeoutException("This frame is timeout");
|
||||
|
||||
private GLonTimeout() { }
|
||||
|
||||
void IglFunc.ActiveTexture(uint type) => throw signal;
|
||||
@@ -38,12 +39,12 @@ namespace StgSharp.Graphics
|
||||
|
||||
void IglFunc.ClearGraphicError() => throw signal;
|
||||
|
||||
glHandle IglFunc.CompileShader(string shaderCode, ShaderType shaderType) => throw signal;
|
||||
glHandleSet IglFunc.CompileShader(ShaderType shaderType, params string[] shaderCode) => throw signal;
|
||||
|
||||
|
||||
glHandle IglFunc.CreateProgram() => throw signal;
|
||||
|
||||
glHandle IglFunc.CreateProgram(int count) => throw signal;
|
||||
glHandleSet IglFunc.CreateProgram(int count) => throw signal;
|
||||
|
||||
|
||||
IntPtr IglFunc.CreateWindowHandle(int width, int height, string tittle, IntPtr monitor, Form share) => throw signal;
|
||||
@@ -52,21 +53,21 @@ namespace StgSharp.Graphics
|
||||
|
||||
public void DeleteBuffer(uint handle) => throw signal;
|
||||
|
||||
void IglFunc.DeleteBuffers(glHandle handle) => throw signal;
|
||||
void IglFunc.DeleteBuffers(glHandleSet handle) => throw signal;
|
||||
|
||||
|
||||
void IglFunc.DeleteVertexArrays(glHandle handle) => throw signal;
|
||||
void IglFunc.DeleteVertexArrays(glHandleSet handle) => throw signal;
|
||||
|
||||
|
||||
void IglFunc.DrawElements(GepmetryType mode, uint count, Type type, IntPtr ptr) => throw signal;
|
||||
|
||||
void IglFunc.GenBuffers(uint count, glHandle ptr) => throw signal;
|
||||
void IglFunc.GenBuffers(uint count, glHandleSet handle) => throw signal;
|
||||
|
||||
|
||||
void IglFunc.GenTextures(uint count, glHandle handle) => throw signal;
|
||||
void IglFunc.GenTextures(uint count, glHandleSet handle) => throw signal;
|
||||
|
||||
|
||||
void IglFunc.GenVertexArrays(uint count, glHandle handle) => throw signal;
|
||||
void IglFunc.GenVertexArrays(uint count, glHandleSet handle) => throw signal;
|
||||
|
||||
|
||||
void IglFunc.GetGraphicError() => throw signal;
|
||||
@@ -112,5 +113,10 @@ namespace StgSharp.Graphics
|
||||
void IglFunc.Viewport(int x, int y, uint width, uint height) => throw signal;
|
||||
|
||||
internal static GLonTimeout Set() => singleInstance;
|
||||
|
||||
void IglFunc.SwitchContext()
|
||||
{
|
||||
throw signal;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,15 +16,16 @@ namespace StgSharp.Graphics
|
||||
|
||||
internal unsafe partial class GLonUpdate : IglFunc
|
||||
{
|
||||
internal GLonUpdateInternal glUpdateInternal;
|
||||
private ConcurrentQueue<IntPtr> glActionQueue;
|
||||
private GLparamQueue paramQueue;
|
||||
private static GLparamQueue paramQueue;
|
||||
private FrameTimeoutException refreshSignal = new();
|
||||
|
||||
internal GLonUpdate(GLcontext* context)
|
||||
{
|
||||
glUpdateInternal = new GLonUpdateInternal();
|
||||
paramQueue = glUpdateInternal.paramQueue;
|
||||
if (paramQueue == null)
|
||||
{
|
||||
paramQueue = new GLparamQueue();
|
||||
}
|
||||
glActionQueue = new ConcurrentQueue<IntPtr>();
|
||||
}
|
||||
|
||||
@@ -38,7 +39,7 @@ namespace StgSharp.Graphics
|
||||
void IglFunc.ActiveTexture(uint type)
|
||||
{
|
||||
paramQueue.Enqueue(type);
|
||||
glActionQueue.Enqueue(glUpdateInternal.ActiveTexturePtr);
|
||||
glActionQueue.Enqueue(ActiveTexturePtr);
|
||||
}
|
||||
|
||||
|
||||
@@ -61,15 +62,15 @@ namespace StgSharp.Graphics
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
unsafe void IglFunc.AttachShader(glHandle program, glHandle shader)
|
||||
{
|
||||
paramQueue.Enqueue(program[0], shader[0]);
|
||||
glActionQueue.Enqueue(glUpdateInternal.AttachShaderPtr);
|
||||
paramQueue.Enqueue(program, shader);
|
||||
glActionQueue.Enqueue(AttachShaderPtr);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
void IglFunc.BindBuffer(BufferType bufferType, uint index)
|
||||
{
|
||||
paramQueue.Enqueue((uint)bufferType, index);
|
||||
glActionQueue.Enqueue(glUpdateInternal.BindBufferPtr
|
||||
glActionQueue.Enqueue(BindBufferPtr
|
||||
);
|
||||
}
|
||||
|
||||
@@ -100,67 +101,37 @@ namespace StgSharp.Graphics
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
void IglFunc.ClearColor(float R, float G, float B, float A)
|
||||
{
|
||||
glActionQueue.Enqueue(
|
||||
() => api->glClearColor(R, G, B, A)
|
||||
);
|
||||
glActionQueue.Enqueue(ClearColorPtr);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
void IglFunc.ClearGraphicError()
|
||||
{
|
||||
glActionQueue.Enqueue(
|
||||
() =>
|
||||
{
|
||||
while (api->glGetError() != 0) { };
|
||||
}
|
||||
);
|
||||
glActionQueue.Enqueue(ClearGraphicErrorPtr);
|
||||
}
|
||||
|
||||
|
||||
glHandle IglFunc.CompileShader(string shaderCode, ShaderType shaderType)
|
||||
//TODO:双线程,换运行环境
|
||||
void IglFunc.SwitchContext()
|
||||
{
|
||||
glHandle h = new glHandle(1);
|
||||
glActionQueue.Enqueue(
|
||||
() =>
|
||||
{
|
||||
uint shaderID;
|
||||
shaderCode += '\0';
|
||||
shaderID = InternalIO.InternalLoadShaderCode(shaderCode, (int)shaderType);
|
||||
if (shaderID == 0)
|
||||
{
|
||||
IntPtr logPtr = InternalIO.InternalReadLog();
|
||||
string log;
|
||||
try
|
||||
{
|
||||
byte[] logByte = new byte[512];
|
||||
Marshal.Copy(logPtr, logByte, 0, 512);
|
||||
log = Encoding.UTF8.GetString(logByte);
|
||||
log = log.Replace("\0", "");
|
||||
|
||||
bool isUseful = false;
|
||||
foreach (char item in log)
|
||||
{
|
||||
if (!char.IsControl(item))
|
||||
{
|
||||
isUseful = true; break;
|
||||
}
|
||||
}
|
||||
if (!isUseful)
|
||||
{
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
log = "Failed to compile shader.\nFailed to get GLSL compiler log";
|
||||
}
|
||||
}
|
||||
|
||||
InternalIO.InternalWriteLog(log, LogType.Error);
|
||||
}
|
||||
Interlocked.Add(ref id, (int)(shaderID + 1));
|
||||
}
|
||||
);
|
||||
return h;
|
||||
glHandleSet IglFunc.CompileShader(ShaderType shaderType, params string[] shaderCode)
|
||||
{
|
||||
int l = shaderCode.Length;
|
||||
if (l == 0)
|
||||
{
|
||||
throw new ArgumentException("Should input at least one piece of shader code");
|
||||
}
|
||||
glHandleSet shaderHandle = new glHandleSet(shaderCode.Length);
|
||||
paramQueue.Enqueue((int)shaderType, l);
|
||||
for (int i = 0; i < l; i++)
|
||||
{
|
||||
GCHandle codePtr = GCHandle.Alloc(Encoding.UTF8.GetBytes(shaderCode[i] + '\0'), GCHandleType.Pinned);
|
||||
paramQueue.Enqueue((IntPtr)shaderHandle.handle + i, codePtr.AddrOfPinnedObject());
|
||||
}
|
||||
glActionQueue.Enqueue(CompileShaderPtr);
|
||||
return shaderHandle;
|
||||
}
|
||||
|
||||
|
||||
@@ -179,7 +150,7 @@ namespace StgSharp.Graphics
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
glHandle IglFunc.CreateProgram(int count)
|
||||
glHandleSet IglFunc.CreateProgram(int count)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
@@ -235,7 +206,7 @@ namespace StgSharp.Graphics
|
||||
);
|
||||
}
|
||||
|
||||
unsafe void IglFunc.DeleteBuffers(glHandle handle)
|
||||
unsafe void IglFunc.DeleteBuffers(glHandleSet handle)
|
||||
{
|
||||
glActionQueue.Enqueue(
|
||||
() =>
|
||||
@@ -249,7 +220,7 @@ namespace StgSharp.Graphics
|
||||
);
|
||||
}
|
||||
|
||||
unsafe void IglFunc.DeleteVertexArrays(glHandle arrays)
|
||||
unsafe void IglFunc.DeleteVertexArrays(glHandleSet arrays)
|
||||
{
|
||||
glActionQueue.Enqueue(
|
||||
() =>
|
||||
@@ -290,7 +261,7 @@ namespace StgSharp.Graphics
|
||||
);
|
||||
}
|
||||
|
||||
unsafe void IglFunc.GenBuffers(uint count, glHandle handle)
|
||||
unsafe void IglFunc.GenBuffers(uint count, glHandleSet handle)
|
||||
{
|
||||
glActionQueue.Enqueue(
|
||||
() =>
|
||||
@@ -299,7 +270,7 @@ namespace StgSharp.Graphics
|
||||
);
|
||||
}
|
||||
|
||||
unsafe void IglFunc.GenTextures(uint count, glHandle handle)
|
||||
unsafe void IglFunc.GenTextures(uint count, glHandleSet handle)
|
||||
{
|
||||
glActionQueue.Enqueue(
|
||||
() =>
|
||||
@@ -308,7 +279,7 @@ namespace StgSharp.Graphics
|
||||
);
|
||||
}
|
||||
|
||||
unsafe void IglFunc.GenVertexArrays(uint count, glHandle ptr)
|
||||
unsafe void IglFunc.GenVertexArrays(uint count, glHandleSet ptr)
|
||||
{
|
||||
glActionQueue.Enqueue(
|
||||
() =>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using StgSharp.Math;
|
||||
using StgSharp.Logic;
|
||||
using StgSharp.Math;
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
@@ -10,414 +11,290 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace StgSharp.Graphics
|
||||
{
|
||||
internal unsafe struct GLonUpdateInternal : IglFunc
|
||||
internal unsafe partial class GLonUpdate : IglFunc
|
||||
{
|
||||
public IntPtr ActiveTexturePtr;
|
||||
public IntPtr AttachShaderPtr;
|
||||
public IntPtr BindBufferPtr;
|
||||
internal IntPtr ClearColorPtr;
|
||||
internal IntPtr ClearGraphicErrorPtr;
|
||||
internal IntPtr CompileShaderPtr;
|
||||
internal GLparamQueue paramQueue;
|
||||
private GLcontext* gl;
|
||||
public GLonUpdateInternal(GLcontext* api)
|
||||
{
|
||||
gl = api;
|
||||
}
|
||||
internal IntPtr ActiveTexturePtr = (IntPtr)(delegate*<void>)&InternalActiveTexture;
|
||||
internal IntPtr AttachShaderPtr = (IntPtr)(delegate*<void>)&InternalAttachShader;
|
||||
internal IntPtr BindBufferPtr = (IntPtr)(delegate*<void>)&InternalBindBuffer;
|
||||
internal IntPtr ClearColorPtr = (IntPtr)(delegate*<void>)&InternalClearColor;
|
||||
internal IntPtr ClearGraphicErrorPtr = (IntPtr)(delegate*<void>)&InternalClearGraphicError;
|
||||
internal IntPtr CompileShaderPtr = (IntPtr)(delegate*<void>)&InternalCompileShader;
|
||||
private IntPtr ClearPtr = (IntPtr)(delegate*<void>)&InternalClear;
|
||||
|
||||
public void ActivePointer()
|
||||
{
|
||||
IglFunc gl = this;
|
||||
ActiveTexturePtr = Marshal.GetFunctionPointerForDelegate(gl.ActiveTexture);
|
||||
AttachShaderPtr = Marshal.GetFunctionPointerForDelegate(gl.AttachShader);
|
||||
BindBufferPtr = Marshal.GetFunctionPointerForDelegate(gl.BindBuffer);
|
||||
CompileShaderPtr = Marshal.GetFunctionPointerForDelegate(gl.CompileShader);
|
||||
}
|
||||
|
||||
void IglFunc.ActiveTexture(uint type)
|
||||
private static void InternalActiveTexture()
|
||||
{
|
||||
uint t;
|
||||
paramQueue.TryDequeue(out t);
|
||||
gl->glActiveTexture(t);
|
||||
paramQueue.context->glActiveTexture(t);
|
||||
}
|
||||
|
||||
void IglFunc.AfterAlign(Form form, Action action)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
void IglFunc.AlignFrame(Form form)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
void IglFunc.AttachShader(glHandle program, glHandle shader)
|
||||
private static void InternalAttachShader()
|
||||
{
|
||||
uint p, s;
|
||||
paramQueue.TryDequeue(out p, out s);
|
||||
gl->glAttachShader(p, s);
|
||||
paramQueue.context->glAttachShader(p, s);
|
||||
}
|
||||
|
||||
void IglFunc.BindBuffer(BufferType bufferType, uint index)
|
||||
private static void InternalBindBuffer()
|
||||
{
|
||||
uint t, i;
|
||||
paramQueue.TryDequeue(out t, out i);
|
||||
gl->glBindBuffer(t, i);
|
||||
paramQueue.context->glBindBuffer(t, i);
|
||||
}
|
||||
|
||||
void IglFunc.BindTexture(uint type, uint texture)
|
||||
{
|
||||
uint t, te;
|
||||
paramQueue.TryDequeue(out t, out te);
|
||||
gl->glBindTexture(t, te);
|
||||
}
|
||||
|
||||
void IglFunc.BindVertexArray(uint index)
|
||||
{
|
||||
uint i;
|
||||
paramQueue.TryDequeue(out i);
|
||||
gl->glBindVertexArray(i);
|
||||
}
|
||||
|
||||
void IglFunc.Clear(MaskBufferBit mask)
|
||||
private static void InternalClear()
|
||||
{
|
||||
uint mt;
|
||||
paramQueue.TryDequeue(out mt);
|
||||
gl->glClear(mt);
|
||||
paramQueue.context->glClear(mt);
|
||||
}
|
||||
|
||||
void IglFunc.ClearColor(float R, float G, float B, float A)
|
||||
private static void InternalClearColor()
|
||||
{
|
||||
float r, g, b, a;
|
||||
paramQueue.TryDequeue(out r, out g, out b, out a);
|
||||
gl->glClearColor(r, g, b, a);
|
||||
paramQueue.context->glClearColor(r, g, b, a);
|
||||
}
|
||||
|
||||
void IglFunc.ClearGraphicError()
|
||||
private static void InternalClearGraphicError()
|
||||
{
|
||||
while (gl->glGetError() != 0) { }
|
||||
while (paramQueue.context->glGetError() != 0) { }
|
||||
}
|
||||
|
||||
|
||||
glHandle IglFunc.CompileShader(string shaderCode, ShaderType shaderType)
|
||||
private static void InternalCompileShader()
|
||||
{
|
||||
IntPtr shaderHandle, codeHandle;
|
||||
paramQueue.TryDequeue(out codeHandle, out shaderHandle);
|
||||
uint shaderID;
|
||||
shaderCode += '\0';
|
||||
shaderID = InternalIO.InternalLoadShaderCode(shaderCode, (int)shaderType);
|
||||
if (shaderID == 0)
|
||||
int count, type;
|
||||
paramQueue.TryDequeue(out type, out count);
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
IntPtr logPtr = InternalIO.InternalReadLog();
|
||||
string log;
|
||||
try
|
||||
paramQueue.TryDequeue(out shaderHandle, out codeHandle);
|
||||
*(uint*)shaderHandle = InternalIO.InternalLoadShaderCode((byte*)codeHandle, type);
|
||||
if (*(uint*)shaderHandle == 0)
|
||||
{
|
||||
byte[] logByte = new byte[512];
|
||||
Marshal.Copy(logPtr, logByte, 0, 512);
|
||||
log = Encoding.UTF8.GetString(logByte);
|
||||
log = log.Replace("\0", "");
|
||||
|
||||
bool isUseful = false;
|
||||
foreach (char item in log)
|
||||
IntPtr logPtr = InternalIO.InternalReadLog();
|
||||
string log;
|
||||
try
|
||||
{
|
||||
if (!char.IsControl(item))
|
||||
byte[] logByte = new byte[512];
|
||||
Marshal.Copy(logPtr, logByte, 0, 512);
|
||||
log = Encoding.UTF8.GetString(logByte);
|
||||
log = log.Replace("\0", "");
|
||||
|
||||
bool isUseful = false;
|
||||
foreach (char item in log)
|
||||
{
|
||||
isUseful = true; break;
|
||||
if (!char.IsControl(item))
|
||||
{
|
||||
isUseful = true; break;
|
||||
}
|
||||
}
|
||||
if (!isUseful)
|
||||
{
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
if (!isUseful)
|
||||
catch (Exception)
|
||||
{
|
||||
throw new Exception();
|
||||
log = "Failed to compile shader.\nFailed to get GLSL compiler log";
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
log = "Failed to compile shader.\nFailed to get GLSL compiler log";
|
||||
}
|
||||
|
||||
InternalIO.InternalWriteLog(log, LogType.Error);
|
||||
InternalIO.InternalWriteLog(log, LogType.Error);
|
||||
}
|
||||
GCHandle.FromIntPtr(codeHandle).Free();
|
||||
}
|
||||
*(uint*)shaderHandle = shaderID;
|
||||
}
|
||||
|
||||
private void InternalAfterAlign(Form form, Action action)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
private void InternalAlignFrame(Form form)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
private void InternalBindTexture(uint type, uint texture)
|
||||
{
|
||||
uint t, te;
|
||||
paramQueue.TryDequeue(out t, out te);
|
||||
paramQueue.context->glBindTexture(t, te);
|
||||
}
|
||||
|
||||
private void InternalBindVertexArray(uint index)
|
||||
{
|
||||
uint i;
|
||||
paramQueue.TryDequeue(out i);
|
||||
paramQueue.context->glBindVertexArray(i);
|
||||
}
|
||||
|
||||
private glHandle InternalCreateProgram()
|
||||
{
|
||||
IntPtr programHandle = default;
|
||||
paramQueue.TryDequeue(out programHandle);
|
||||
*(uint*)programHandle = paramQueue.context->glCreateProgram();
|
||||
return default;
|
||||
}
|
||||
|
||||
glHandle IglFunc.CreateProgram()
|
||||
private glHandleSet InternalCreateProgram(int count)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
glHandle IglFunc.CreateProgram(int count)
|
||||
private IntPtr InternalCreateWindowHandle(int width, int height, string tittle, IntPtr monitor, Form share)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
IntPtr IglFunc.CreateWindowHandle(int width, int height, string tittle, IntPtr monitor, Form share)
|
||||
private glHandle InternalCreatGraphicProgram()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
glHandle IglFunc.CreatGraphicProgram()
|
||||
private void InternalDeleteBuffer(uint handle)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
void IglFunc.DeleteBuffer(uint handle)
|
||||
private void InternalDeleteBuffers(glHandleSet handle)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
void IglFunc.DeleteBuffers(glHandle handle)
|
||||
private void InternalDeleteVertexArrays(glHandleSet arrays)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
void IglFunc.DeleteVertexArrays(glHandle arrays)
|
||||
private void InternalDrawElements(GepmetryType mode, uint count, Type type, IntPtr ptr)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
void IglFunc.DrawElements(GepmetryType mode, uint count, Type type, IntPtr ptr)
|
||||
private void InternalGenBuffers(uint count, glHandleSet ptr)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
void IglFunc.GenBuffers(uint count, glHandle ptr)
|
||||
private void InternalGenTextures(uint count, glHandleSet ptr)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
void IglFunc.GenTextures(uint count, glHandle ptr)
|
||||
private void InternalGenVertexArrays(uint count, glHandleSet ptr)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
void IglFunc.GenVertexArrays(uint count, glHandle ptr)
|
||||
private void InternalGetGraphicError()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
void IglFunc.GetGraphicError()
|
||||
private int InternalGetUniformLocation(uint program, byte* ptr)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
int IglFunc.GetUniformLocation(uint program, byte* ptr)
|
||||
private bool InternalGetWindowShouldClose(Form form)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
bool IglFunc.GetWindowShouldClose(Form form)
|
||||
private void InternalMakeContexCurrent(Form form)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
void IglFunc.MakeContexCurrent(Form form)
|
||||
private void InternalSetBufferData<T>(BufferType bufferType, T bufferData, BufferUsage usage)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
void IglFunc.SetBufferData<T>(BufferType bufferType, T bufferData, BufferUsage usage)
|
||||
private void InternalSetBufferData<T>(BufferType bufferType, T[] bufferArray, BufferUsage usage)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
void IglFunc.SetBufferData<T>(BufferType bufferType, T[] bufferArray, BufferUsage usage)
|
||||
private void InternalSetFrameBufferSizeCallback(IntPtr id, FrameBufferSizeHandler handler)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
void IglFunc.SetFrameBufferSizeCallback(IntPtr id, FrameBufferSizeHandler handler)
|
||||
private void InternalSetValue(Uniform<float, float, float, float> uniform, float v0, float v1, float v2, float v3)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
void IglFunc.SetValue(Uniform<float, float, float, float> uniform, float v0, float v1, float v2, float v3)
|
||||
private void InternalSetValue(Uniform<float, float, float, float> uniform, Vec4d vec)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
void IglFunc.SetValue(Uniform<float, float, float, float> uniform, Vec4d vec)
|
||||
private void InternalSetValue(Uniform<float, float, float> uniform, float v0, float v1, float v2)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
void IglFunc.SetValue(Uniform<float, float, float> uniform, float v0, float v1, float v2)
|
||||
private void InternalSetValue(Uniform<float, float> uniform, float v0, float v1)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
void IglFunc.SetValue(Uniform<float, float> uniform, float v0, float v1)
|
||||
private void InternalSetValue(Uniform<float> uniform, float v0)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
void IglFunc.SetValue(Uniform<float> uniform, float v0)
|
||||
private void InternalSetValue(Uniform<int> uniform, int i0)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
void IglFunc.SetValue(Uniform<int> uniform, int i0)
|
||||
private void InternalSetValue(Uniform<Vec4d> uniform, Vec4d vec)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
void IglFunc.SetValue(Uniform<Vec4d> uniform, Vec4d vec)
|
||||
private void InternalSetVertexAttribute(uint index, int size, Type t, bool normalized, uint stride, int pointer)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
void IglFunc.SetVertexAttribute(uint index, int size, Type t, bool normalized, uint stride, int pointer)
|
||||
private void InternalSetWindowShouldClose(Form form, bool mark)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
void IglFunc.SetWindowShouldClose(Form form, bool mark)
|
||||
private void InternalSwapBuffers(Form form)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
void IglFunc.SwapBuffers(Form form)
|
||||
private void InternalSwitchContext()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
void IglFunc.TextureImage2d(uint target, int level, uint internalformat, uint width, uint height, uint format, uint type, void* pixels)
|
||||
private void InternalTextureImage2d(uint target, int level, uint internalformat, uint width, uint height, uint format, uint type, void* pixels)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
void IglFunc.TextureParameter(uint target, uint pname, int param)
|
||||
private void InternalTextureParameter(uint target, uint pname, int param)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
void IglFunc.UseProgram(uint program)
|
||||
private void InternalUseProgram(uint program)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
void IglFunc.Viewport(int x, int y, uint width, uint height)
|
||||
private void InternalViewport(int x, int y, uint width, uint height)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
internal unsafe class GLparamQueue
|
||||
{
|
||||
private ConcurrentQueue<M128> paramQueue;
|
||||
|
||||
public GLparamQueue()
|
||||
{
|
||||
paramQueue = new ConcurrentQueue<M128>();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Enqueue(Vec4d v)
|
||||
{
|
||||
paramQueue.Enqueue(v);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Enqueue(uint u0)
|
||||
{
|
||||
M128 m = default;
|
||||
m.UInt32[0] = u0;
|
||||
paramQueue.Enqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Enqueue(uint u0, uint u1)
|
||||
{
|
||||
M128 m = default;
|
||||
m.UInt32[0] = u0;
|
||||
m.UInt32[1] = u1;
|
||||
paramQueue.Enqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Enqueue(float f0, float f1, float f2, float f3)
|
||||
{
|
||||
M128 m = default;
|
||||
m.Single[0] = f0;
|
||||
m.Single[1] = f1;
|
||||
m.Single[2] = f2;
|
||||
m.Single[3] = f3;
|
||||
paramQueue.Enqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Enqueue(IntPtr p0, IntPtr p1)
|
||||
{
|
||||
M128 m = default;
|
||||
m.IntPtr0 = p0;
|
||||
m.IntPtr1 = p1;
|
||||
paramQueue.Enqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void TryDequeue(out IntPtr p0, out IntPtr p1)
|
||||
{
|
||||
|
||||
M128 ret;
|
||||
if (paramQueue.TryDequeue(out ret))
|
||||
{
|
||||
p0 = ret.IntPtr0;
|
||||
p1 = ret.IntPtr1;
|
||||
}
|
||||
else
|
||||
{
|
||||
InternalIO.InternalWriteLog("No param in buffer when calling gl function.", LogType.Error);
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void TryDequeue(out float f0, out float f1, out float f2, out float f3)
|
||||
{
|
||||
M128 ret;
|
||||
if (paramQueue.TryDequeue(out ret))
|
||||
{
|
||||
f0 = ret.UInt32[0];
|
||||
f1 = ret.UInt32[1];
|
||||
f2 = ret.UInt32[2];
|
||||
f3 = ret.UInt32[3];
|
||||
}
|
||||
else
|
||||
{
|
||||
InternalIO.InternalWriteLog("No param in buffer when calling gl function.", LogType.Error);
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void TryDequeue(out uint u0)
|
||||
{
|
||||
M128 ret;
|
||||
if (paramQueue.TryDequeue(out ret))
|
||||
{
|
||||
u0 = ret.UInt32[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
InternalIO.InternalWriteLog("No param in buffer when calling gl function.", LogType.Error);
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void TryDequeue(out uint u0, out uint u1)
|
||||
{
|
||||
M128 ret;
|
||||
if (paramQueue.TryDequeue(out ret))
|
||||
{
|
||||
u0 = ret.UInt32[0];
|
||||
u1 = ret.UInt32[1];
|
||||
}
|
||||
else
|
||||
{
|
||||
InternalIO.InternalWriteLog("No param in buffer when calling gl function.", LogType.Error);
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,34 +14,23 @@ namespace StgSharp.Graphics
|
||||
/// </summary>
|
||||
/// <returns>New instance of <see cref="Shader"/> instance. </returns>
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
protected Shader CreateShader()
|
||||
protected ShaderProgram CreateShaderProgram(ShaderType shaderType)
|
||||
{
|
||||
return new Shader(GL);
|
||||
return new ShaderProgram(GL, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public class Shader
|
||||
{
|
||||
internal readonly glHandle Handle;
|
||||
internal readonly glHandle handle;
|
||||
public readonly ShaderType type;
|
||||
private IglFunc GL;
|
||||
private readonly IglFunc GL;
|
||||
|
||||
/// <summary>
|
||||
/// Inti a shader with no program attached.
|
||||
/// </summary>
|
||||
internal unsafe Shader(IglFunc gl, ShaderType t, int count)
|
||||
{
|
||||
GL = gl;
|
||||
type = t;
|
||||
if (type == ShaderType.Program)
|
||||
{
|
||||
Handle = GL.CreateProgram();
|
||||
}
|
||||
}
|
||||
|
||||
internal void ChangeEnvironment(IglFunc gl)
|
||||
|
||||
internal Shader(IglFunc gl, glHandle handle)
|
||||
{
|
||||
this.handle = handle;
|
||||
GL = gl;
|
||||
}
|
||||
|
||||
@@ -49,20 +38,46 @@ namespace StgSharp.Graphics
|
||||
/// Compile the vertex shader to be attached to this shader.
|
||||
/// </summary>
|
||||
/// <param name="shaderCode">GLSL code of vertex shader.</param>
|
||||
public unsafe void CompileShader(string shaderCode)
|
||||
public unsafe void Compile(string shaderCode, ShaderType usage, int index)
|
||||
{
|
||||
vertexHandle = GL.CompileShader(shaderCode, type);
|
||||
GL.AttachShader(programHandle, vertexHandle);
|
||||
handle.handle[index] = GL.CompileShader(shaderCode, type).handle;
|
||||
}
|
||||
|
||||
//TODO:写链接着色器的文档注释
|
||||
/// <summary>
|
||||
/// Compile the fragment shader to be attached to this shader.
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="shaderCode">GLSL code of fragment shader.</param>
|
||||
public unsafe void CompileFragmentShader(string shaderCode)
|
||||
/// <param name="target"></param>
|
||||
/// <param name="usage"></param>
|
||||
public void AttachTo(ShaderProgram target, ShaderType usage)
|
||||
{
|
||||
fragmentHandle = GL.CompileShader(shaderCode, ShaderType.FRAGMENT);
|
||||
GL.AttachShader(programHandle, fragmentHandle);
|
||||
switch (usage)
|
||||
{
|
||||
case ShaderType.Fragment:
|
||||
|
||||
break;
|
||||
case ShaderType.Vertex:
|
||||
GL.AttachShader(target.handle,)
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentException();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public class ShaderProgram
|
||||
{
|
||||
internal readonly glHandle handle;
|
||||
private readonly IglFunc GL;
|
||||
|
||||
/// <summary>
|
||||
/// Inti a shader with no program attached.
|
||||
/// </summary>
|
||||
internal unsafe ShaderProgram(IglFunc gl, int count)
|
||||
{
|
||||
GL = gl;
|
||||
handle = GL.CreateProgram();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -70,7 +85,7 @@ namespace StgSharp.Graphics
|
||||
/// </summary>
|
||||
public void Link()
|
||||
{
|
||||
if (InternalIO.InternalLinkShaderProgram(programHandle) == 0)
|
||||
if (InternalIO.InternalLinkShaderProgram(handle[0]) == 0)
|
||||
{
|
||||
IntPtr logPtr = InternalIO.InternalReadLog();
|
||||
try
|
||||
@@ -100,7 +115,7 @@ namespace StgSharp.Graphics
|
||||
int uniform;
|
||||
fixed (byte* ptr = bytes)
|
||||
{
|
||||
uniform = GL.GetUniformLocation(programHandle, ptr);
|
||||
uniform = GL.GetUniformLocation(handle[0], ptr);
|
||||
}
|
||||
if (uniform != -1)
|
||||
{
|
||||
@@ -108,7 +123,7 @@ namespace StgSharp.Graphics
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception($"Cannot find the uniform {name} in shader {programHandle}");
|
||||
throw new Exception($"Cannot find the uniform {name} in shader {handle[0]}");
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
@@ -125,7 +140,7 @@ namespace StgSharp.Graphics
|
||||
int uniform;
|
||||
fixed (byte* ptr = bytes)
|
||||
{
|
||||
uniform = GL.GetUniformLocation(programHandle, ptr);
|
||||
uniform = GL.GetUniformLocation(handle[0], ptr);
|
||||
}
|
||||
if (uniform != -1)
|
||||
{
|
||||
@@ -133,7 +148,7 @@ namespace StgSharp.Graphics
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception($"Cannot find the uniform {name} in shader {programHandle}");
|
||||
throw new Exception($"Cannot find the uniform {name} in shader {handle[0]}");
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
@@ -142,7 +157,7 @@ namespace StgSharp.Graphics
|
||||
/// </summary>
|
||||
/// <param name="name">Name of the Uniform in shader code</param>
|
||||
/// <returns></returns>
|
||||
public unsafe Uniform<T, U, V> GetUniform<T, U, V>(string name)
|
||||
public unsafe Uniform<T, U, V> GetUniform<T, U, V>(int index, string name)
|
||||
where T : struct
|
||||
where U : struct
|
||||
where V : struct
|
||||
@@ -151,7 +166,7 @@ namespace StgSharp.Graphics
|
||||
int uniform;
|
||||
fixed (byte* ptr = bytes)
|
||||
{
|
||||
uniform = GL.GetUniformLocation(programHandle, ptr);
|
||||
uniform = GL.GetUniformLocation(handle[index], ptr);
|
||||
}
|
||||
if (uniform != -1)
|
||||
{
|
||||
@@ -159,7 +174,7 @@ namespace StgSharp.Graphics
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception($"Cannot find the uniform {name} in shader {programHandle}");
|
||||
throw new Exception($"Cannot find the uniform {name} in shader {handle[index]}");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -167,9 +182,9 @@ namespace StgSharp.Graphics
|
||||
/// Let the current context use this shader.
|
||||
/// </summary>
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public unsafe void Use()
|
||||
public unsafe void Use(int index)
|
||||
{
|
||||
GL.UseProgram(programHandle);
|
||||
GL.UseProgram(handle[index]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -91,7 +91,7 @@ namespace StgSharp.Graphics
|
||||
/// <param name="shaderType">An <see cref="ShaderType"/> enum represent the type of the shader to
|
||||
/// conpile, including vertex shader and fragment shader.</param>
|
||||
/// <returns>An handle of conpiled shader</returns>
|
||||
glHandle CompileShader(string shaderCode, ShaderType shaderType);
|
||||
glHandleSet CompileShader(ShaderType shaderType, params string[] shaderCode);
|
||||
|
||||
/// <summary>
|
||||
/// Same function as OpenGL api, glCreateProgram
|
||||
@@ -104,7 +104,7 @@ namespace StgSharp.Graphics
|
||||
/// Used for creating multiple shader program.
|
||||
/// </summary>
|
||||
/// <returns>A handle representing all shader programs</returns>
|
||||
glHandle CreateProgram(int count);
|
||||
glHandleSet CreateProgram(int count);
|
||||
|
||||
/// <summary>
|
||||
/// Creates a form and its associated
|
||||
@@ -128,14 +128,14 @@ namespace StgSharp.Graphics
|
||||
/// <summary>
|
||||
/// Same function as OpenGL api, glDeleteBuffer. This method can delete a sets of buffers in one call.
|
||||
/// </summary>
|
||||
/// <param name="handle">Array of buffers to be deleted</param>
|
||||
unsafe void DeleteBuffers(glHandle handle);
|
||||
/// <param name="handleSet">Array of buffers to be deleted</param>
|
||||
unsafe void DeleteBuffers(glHandleSet handleSet);
|
||||
|
||||
/// <summary>
|
||||
/// Same function as OpenGL api, glDeleteVertexArrays
|
||||
/// </summary>
|
||||
/// <param name="handle">Handle of vertex objects.</param>
|
||||
unsafe void DeleteVertexArrays(glHandle handle);
|
||||
/// <param name="handleSet">Handle of vertex objects.</param>
|
||||
unsafe void DeleteVertexArrays(glHandleSet handleSet);
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
@@ -150,22 +150,22 @@ namespace StgSharp.Graphics
|
||||
/// Same fucntion as the OpenGL api glGenBuffers
|
||||
/// </summary>
|
||||
/// <param name="count"></param>
|
||||
/// <param name="ptr"></param>
|
||||
unsafe void GenBuffers(uint count, glHandle ptr);
|
||||
/// <param name="handleSet"></param>
|
||||
unsafe void GenBuffers(uint count, glHandleSet handleSet);
|
||||
|
||||
/// <summary>
|
||||
/// Same fucnction as OpenGL api glGenTextures.
|
||||
/// </summary>
|
||||
/// <param name="count">amount of textures to generate</param>
|
||||
/// <param name="handle">Handle of texture</param>
|
||||
unsafe void GenTextures(uint count, glHandle handle);
|
||||
/// <param name="handleSet">Handle of texture</param>
|
||||
unsafe void GenTextures(uint count, glHandleSet handleSet);
|
||||
|
||||
/// <summary>
|
||||
/// Same fucntion as OpenGL api, glGenVertexArray
|
||||
/// </summary>
|
||||
/// <param name="count">Amount of vao to be generated</param>
|
||||
/// <param name="handle">Handle of vao sign array</param>
|
||||
unsafe void GenVertexArrays(uint count, glHandle handle);
|
||||
/// <param name="handleSet">Handle of vao sign array</param>
|
||||
unsafe void GenVertexArrays(uint count, glHandleSet handleSet);
|
||||
|
||||
void GetGraphicError();
|
||||
|
||||
@@ -189,13 +189,7 @@ namespace StgSharp.Graphics
|
||||
|
||||
void SetBufferData<T>(BufferType bufferType, T[] bufferArray, BufferUsage usage) where T : struct, IConvertible;
|
||||
|
||||
/// <summary>
|
||||
/// sets the framebuffer resize callback of the specified <see cref="Form"/>,
|
||||
///which is called when the framebuffer of the specified <see cref="Form"/> is resized.
|
||||
/// </summary>
|
||||
/// <param name="id">The only signiture stands for the <see cref="Form"/> to be controlled</param>
|
||||
/// <param name="handler">Method hadler </param>
|
||||
void SetFrameBufferSizeCallback(IntPtr id, FrameBufferSizeHandler handler);
|
||||
internal void SetFrameBufferSizeCallback(IntPtr id, FrameBufferSizeHandler handler);
|
||||
|
||||
/// <summary>
|
||||
/// Set data value to a float <see cref="Uniform{T,U,V,W}"/>,
|
||||
@@ -270,6 +264,8 @@ namespace StgSharp.Graphics
|
||||
/// <param name="pointer"></param>
|
||||
void SetVertexAttribute(uint index, int size, Type t, bool normalized, uint stride, int pointer);
|
||||
|
||||
void SetWindowShouldClose(Form form, bool mark);
|
||||
|
||||
void SwapBuffers(Form form);
|
||||
|
||||
/// <summary>
|
||||
@@ -308,7 +304,6 @@ namespace StgSharp.Graphics
|
||||
/// <param name="height"></param>
|
||||
void Viewport(int x, int y, uint width, uint height);
|
||||
|
||||
void SetWindowShouldClose(Form form, bool mark);
|
||||
|
||||
internal void SwitchContext();
|
||||
}
|
||||
}
|
||||
@@ -98,7 +98,7 @@ namespace StgSharp.Logic
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Create a new instance of <see cref="DynamicArrayList{T}">,
|
||||
/// Create a new instance of <see cref="DynamicArrayList{T}"/>,
|
||||
/// and fill the begining ones of elemtns as given instance.
|
||||
/// </summary>
|
||||
/// <param name="count">Amount of beginning elements to be filled</param>
|
||||
|
||||
@@ -0,0 +1,327 @@
|
||||
using StgSharp.Graphics;
|
||||
using StgSharp.Math;
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection.Metadata;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StgSharp.Logic
|
||||
{
|
||||
|
||||
internal unsafe class GLparamQueue
|
||||
{
|
||||
internal GLcontext* context;
|
||||
private ConcurrentQueue<M128> paramQueue;
|
||||
public GLparamQueue()
|
||||
{
|
||||
paramQueue = new ConcurrentQueue<M128>();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Enqueue(Vec4d v)
|
||||
{
|
||||
paramQueue.Enqueue(v);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Enqueue(uint u0)
|
||||
{
|
||||
M128 m = default;
|
||||
m.UInt32[0] = u0;
|
||||
paramQueue.Enqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Enqueue(uint u0, uint u1)
|
||||
{
|
||||
M128 m = default;
|
||||
m.UInt32[0] = u0;
|
||||
m.UInt32[1] = u1;
|
||||
paramQueue.Enqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Enqueue(float f0, float f1, float f2, float f3)
|
||||
{
|
||||
M128 m = default;
|
||||
m.Single[0] = f0;
|
||||
m.Single[1] = f1;
|
||||
m.Single[2] = f2;
|
||||
m.Single[3] = f3;
|
||||
paramQueue.Enqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Enqueue(IntPtr p0, IntPtr p1)
|
||||
{
|
||||
M128 m = default;
|
||||
m.IntPtr0 = p0;
|
||||
m.IntPtr1 = p1;
|
||||
paramQueue.Enqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Enqueue(IntPtr p)
|
||||
{
|
||||
M128 m = default;
|
||||
m.IntPtr0 = p;
|
||||
paramQueue.Enqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Enqueue(glHandle handle)
|
||||
{
|
||||
M128 m = default;
|
||||
m.IntPtr0 = (IntPtr)handle.valuePtr;
|
||||
paramQueue.Enqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void TryDequeue(out glHandle handle)
|
||||
{
|
||||
M128 ret;
|
||||
if (paramQueue.TryDequeue(out ret))
|
||||
{
|
||||
handle.valuePtr = (uint*)ret.IntPtr0;
|
||||
}
|
||||
else
|
||||
{
|
||||
InternalIO.InternalWriteLog("No param in buffer when calling gl function.", LogType.Error);
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Enqueue(glHandle handle, glHandle handle1)
|
||||
{
|
||||
M128 m = default;
|
||||
m.IntPtr0 = (IntPtr)handle.valuePtr;
|
||||
m.IntPtr1 = (IntPtr)handle1.valuePtr;
|
||||
paramQueue.Enqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void TryDequeue(out glHandle handle, out glHandle handle1)
|
||||
{
|
||||
M128 ret;
|
||||
if (paramQueue.TryDequeue(out ret))
|
||||
{
|
||||
handle.valuePtr = (uint*)ret.IntPtr0;
|
||||
handle1.valuePtr = (uint*)ret.IntPtr1;
|
||||
}
|
||||
else
|
||||
{
|
||||
InternalIO.InternalWriteLog("No param in buffer when calling gl function.", LogType.Error);
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Enqueue(int i0)
|
||||
{
|
||||
M128 m = default;
|
||||
m.Int32[0] = i0;
|
||||
paramQueue.Enqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Enqueue(int i0, int i1)
|
||||
{
|
||||
M128 m = default;
|
||||
m.Int32[0] = i0;
|
||||
m.Int32[1] = i1;
|
||||
paramQueue.Enqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Enqueue(int i0, int i1, int i2)
|
||||
{
|
||||
M128 m = default;
|
||||
m.Int32[0] = i0;
|
||||
m.Int32[1] = i1;
|
||||
m.Int32[2] = i2;
|
||||
paramQueue.Enqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void Enqueue(int i0, int i1, int i2, int i3)
|
||||
{
|
||||
M128 m = default;
|
||||
m.Int32[0] = i0;
|
||||
m.Int32[1] = i1;
|
||||
m.Int32[2] = i2;
|
||||
m.Int32[3] = i3;
|
||||
paramQueue.Enqueue(m);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void TryDequeue(out int i0)
|
||||
{
|
||||
M128 ret;
|
||||
if (paramQueue.TryDequeue(out ret))
|
||||
{
|
||||
i0 = ret.Int32[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
InternalIO.InternalWriteLog("No param in buffer when calling gl function.", LogType.Error);
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void TryDequeue(out int i0, out int i1)
|
||||
{
|
||||
M128 ret;
|
||||
if (paramQueue.TryDequeue(out ret))
|
||||
{
|
||||
i0 = ret.Int32[0];
|
||||
i1 = ret.Int32[1];
|
||||
}
|
||||
else
|
||||
{
|
||||
InternalIO.InternalWriteLog("No param in buffer when calling gl function.", LogType.Error);
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void TryDequeue(out int i0, out int i1, out int i2)
|
||||
{
|
||||
M128 ret;
|
||||
if (paramQueue.TryDequeue(out ret))
|
||||
{
|
||||
i0 = ret.Int32[0];
|
||||
i1 = ret.Int32[1];
|
||||
i2 = ret.Int32[2];
|
||||
}
|
||||
else
|
||||
{
|
||||
InternalIO.InternalWriteLog("No param in buffer when calling gl function.", LogType.Error);
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void TryDequeue(out int i0, out int i1, out int i2, out int i3)
|
||||
{
|
||||
M128 ret;
|
||||
if (paramQueue.TryDequeue(out ret))
|
||||
{
|
||||
i0 = ret.Int32[0];
|
||||
i1 = ret.Int32[1];
|
||||
i2 = ret.Int32[2];
|
||||
i3 = ret.Int32[3];
|
||||
}
|
||||
else
|
||||
{
|
||||
InternalIO.InternalWriteLog("No param in buffer when calling gl function.", LogType.Error);
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void TryDequeue(out glHandle handle)
|
||||
{
|
||||
M128 ret;
|
||||
if (paramQueue.TryDequeue(out ret))
|
||||
{
|
||||
handle = ret.UInt32[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
InternalIO.InternalWriteLog("No param in buffer when calling gl function.", LogType.Error);
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void TryDequeue(out IntPtr p)
|
||||
{
|
||||
M128 ret;
|
||||
if (paramQueue.TryDequeue(out ret))
|
||||
{
|
||||
p = ret.IntPtr0;
|
||||
}
|
||||
else
|
||||
{
|
||||
InternalIO.InternalWriteLog("No param in buffer when calling gl function.", LogType.Error);
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void TryDequeue(out IntPtr p0, out IntPtr p1)
|
||||
{
|
||||
|
||||
M128 ret;
|
||||
if (paramQueue.TryDequeue(out ret))
|
||||
{
|
||||
p0 = ret.IntPtr0;
|
||||
p1 = ret.IntPtr1;
|
||||
}
|
||||
else
|
||||
{
|
||||
InternalIO.InternalWriteLog("No param in buffer when calling gl function.", LogType.Error);
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void TryDequeue(out float f0, out float f1, out float f2, out float f3)
|
||||
{
|
||||
M128 ret;
|
||||
if (paramQueue.TryDequeue(out ret))
|
||||
{
|
||||
f0 = ret.UInt32[0];
|
||||
f1 = ret.UInt32[1];
|
||||
f2 = ret.UInt32[2];
|
||||
f3 = ret.UInt32[3];
|
||||
}
|
||||
else
|
||||
{
|
||||
InternalIO.InternalWriteLog("No param in buffer when calling gl function.", LogType.Error);
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void TryDequeue(out uint u0)
|
||||
{
|
||||
M128 ret;
|
||||
if (paramQueue.TryDequeue(out ret))
|
||||
{
|
||||
u0 = ret.UInt32[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
InternalIO.InternalWriteLog("No param in buffer when calling gl function.", LogType.Error);
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void TryDequeue(out uint u0, out uint u1)
|
||||
{
|
||||
M128 ret;
|
||||
if (paramQueue.TryDequeue(out ret))
|
||||
{
|
||||
u0 = ret.UInt32[0];
|
||||
u1 = ret.UInt32[1];
|
||||
}
|
||||
else
|
||||
{
|
||||
InternalIO.InternalWriteLog("No param in buffer when calling gl function.", LogType.Error);
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
|
||||
internal void SetContext(GLcontext* p)
|
||||
{
|
||||
context = p;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1 +1 @@
|
||||
24c5df41ae49edf025d2ed9b429a230b0b1d6265c75acbe5047db47eef8de12f
|
||||
782e3dab3e04efa45b725f294fb2f3a1dfe839a8105c1f07be6261ca6a4264ec
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"documents":{"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\*":"https://raw.githubusercontent.com/Nitload-NSI/CCD_Github/8148c10acd65bd764d3e12418a1ebd37938d8501/*"}}
|
||||
{"documents":{"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\*":"https://raw.githubusercontent.com/Nitload-NSI/CCD_Github/5d778e0f2f6e677453cebc990919697968c771f9/*"}}
|
||||
Binary file not shown.
Binary file not shown.
@@ -7,8 +7,6 @@
|
||||
#include "./include/StgSharpC.h"
|
||||
#include <stdio.h>
|
||||
|
||||
|
||||
|
||||
GladGLContext* currentContext;
|
||||
extern char* infolog[512] = { 0 };
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,10 @@
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\debuger.c;D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\x64\Debug\debuger.obj
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\dllmain.c;D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\x64\Debug\dllmain.obj
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\glsc2.c;D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\x64\Debug\glsc2.obj
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\linear.c;D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\x64\Debug\linear.obj
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat2.c;D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\x64\Debug\mat2.obj
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat3.c;D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\x64\Debug\mat3.obj
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c;D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\x64\Debug\mat4.obj
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\stb_image.c;D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\x64\Debug\stb_image.obj
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\StgSharpC.c;D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\x64\Debug\StgSharpC.obj
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\wgl.c;D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\x64\Debug\wgl.obj
|
||||
@@ -0,0 +1,2 @@
|
||||
PlatformToolSet=v143:VCToolArchitecture=Native64Bit:VCToolsVersion=14.38.33130:TargetPlatformVersion=10.0.22621.0:
|
||||
Debug|x64|D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\|
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,11 @@
|
||||
; Listing generated by Microsoft (R) Optimizing Compiler Version 19.38.33130.0
|
||||
|
||||
include listing.inc
|
||||
|
||||
INCLUDELIB MSVCRTD
|
||||
INCLUDELIB OLDNAMES
|
||||
|
||||
msvcjmc SEGMENT
|
||||
__ECC25BFC_debuger@c DB 01H
|
||||
msvcjmc ENDS
|
||||
END
|
||||
Binary file not shown.
@@ -0,0 +1,469 @@
|
||||
; Listing generated by Microsoft (R) Optimizing Compiler Version 19.38.33130.0
|
||||
|
||||
include listing.inc
|
||||
|
||||
INCLUDELIB MSVCRTD
|
||||
INCLUDELIB OLDNAMES
|
||||
|
||||
PUBLIC defaultVecPtr
|
||||
_DATA SEGMENT
|
||||
COMM GLAD_WGL_VERSION_1_0:DWORD
|
||||
COMM GLAD_WGL_3DFX_multisample:DWORD
|
||||
COMM GLAD_WGL_3DL_stereo_control:DWORD
|
||||
COMM GLAD_WGL_AMD_gpu_association:DWORD
|
||||
COMM GLAD_WGL_ARB_buffer_region:DWORD
|
||||
COMM GLAD_WGL_ARB_context_flush_control:DWORD
|
||||
COMM GLAD_WGL_ARB_create_context:DWORD
|
||||
COMM GLAD_WGL_ARB_create_context_no_error:DWORD
|
||||
COMM GLAD_WGL_ARB_create_context_profile:DWORD
|
||||
COMM GLAD_WGL_ARB_create_context_robustness:DWORD
|
||||
COMM GLAD_WGL_ARB_extensions_string:DWORD
|
||||
COMM GLAD_WGL_ARB_framebuffer_sRGB:DWORD
|
||||
COMM GLAD_WGL_ARB_make_current_read:DWORD
|
||||
COMM GLAD_WGL_ARB_multisample:DWORD
|
||||
COMM GLAD_WGL_ARB_pbuffer:DWORD
|
||||
COMM GLAD_WGL_ARB_pixel_format:DWORD
|
||||
COMM GLAD_WGL_ARB_pixel_format_float:DWORD
|
||||
COMM GLAD_WGL_ARB_render_texture:DWORD
|
||||
COMM GLAD_WGL_ARB_robustness_application_isolation:DWORD
|
||||
COMM GLAD_WGL_ARB_robustness_share_group_isolation:DWORD
|
||||
COMM GLAD_WGL_ATI_pixel_format_float:DWORD
|
||||
COMM GLAD_WGL_ATI_render_texture_rectangle:DWORD
|
||||
COMM GLAD_WGL_EXT_colorspace:DWORD
|
||||
COMM GLAD_WGL_EXT_create_context_es2_profile:DWORD
|
||||
COMM GLAD_WGL_EXT_create_context_es_profile:DWORD
|
||||
COMM GLAD_WGL_EXT_depth_float:DWORD
|
||||
COMM GLAD_WGL_EXT_display_color_table:DWORD
|
||||
COMM GLAD_WGL_EXT_extensions_string:DWORD
|
||||
COMM GLAD_WGL_EXT_framebuffer_sRGB:DWORD
|
||||
COMM GLAD_WGL_EXT_make_current_read:DWORD
|
||||
COMM GLAD_WGL_EXT_multisample:DWORD
|
||||
COMM GLAD_WGL_EXT_pbuffer:DWORD
|
||||
COMM GLAD_WGL_EXT_pixel_format:DWORD
|
||||
COMM GLAD_WGL_EXT_pixel_format_packed_float:DWORD
|
||||
COMM GLAD_WGL_EXT_swap_control:DWORD
|
||||
COMM GLAD_WGL_EXT_swap_control_tear:DWORD
|
||||
COMM GLAD_WGL_I3D_digital_video_control:DWORD
|
||||
COMM GLAD_WGL_I3D_gamma:DWORD
|
||||
COMM GLAD_WGL_I3D_genlock:DWORD
|
||||
COMM GLAD_WGL_I3D_image_buffer:DWORD
|
||||
COMM GLAD_WGL_I3D_swap_frame_lock:DWORD
|
||||
COMM GLAD_WGL_I3D_swap_frame_usage:DWORD
|
||||
COMM GLAD_WGL_NV_DX_interop:DWORD
|
||||
COMM GLAD_WGL_NV_DX_interop2:DWORD
|
||||
COMM GLAD_WGL_NV_copy_image:DWORD
|
||||
COMM GLAD_WGL_NV_delay_before_swap:DWORD
|
||||
COMM GLAD_WGL_NV_float_buffer:DWORD
|
||||
COMM GLAD_WGL_NV_gpu_affinity:DWORD
|
||||
COMM GLAD_WGL_NV_multigpu_context:DWORD
|
||||
COMM GLAD_WGL_NV_multisample_coverage:DWORD
|
||||
COMM GLAD_WGL_NV_present_video:DWORD
|
||||
COMM GLAD_WGL_NV_render_depth_texture:DWORD
|
||||
COMM GLAD_WGL_NV_render_texture_rectangle:DWORD
|
||||
COMM GLAD_WGL_NV_swap_group:DWORD
|
||||
COMM GLAD_WGL_NV_vertex_array_range:DWORD
|
||||
COMM GLAD_WGL_NV_video_capture:DWORD
|
||||
COMM GLAD_WGL_NV_video_output:DWORD
|
||||
COMM GLAD_WGL_OML_sync_control:DWORD
|
||||
COMM glad_wglAllocateMemoryNV:QWORD
|
||||
COMM glad_wglAssociateImageBufferEventsI3D:QWORD
|
||||
COMM glad_wglBeginFrameTrackingI3D:QWORD
|
||||
COMM glad_wglBindDisplayColorTableEXT:QWORD
|
||||
COMM glad_wglBindSwapBarrierNV:QWORD
|
||||
COMM glad_wglBindTexImageARB:QWORD
|
||||
COMM glad_wglBindVideoCaptureDeviceNV:QWORD
|
||||
COMM glad_wglBindVideoDeviceNV:QWORD
|
||||
COMM glad_wglBindVideoImageNV:QWORD
|
||||
COMM glad_wglBlitContextFramebufferAMD:QWORD
|
||||
COMM glad_wglChoosePixelFormatARB:QWORD
|
||||
COMM glad_wglChoosePixelFormatEXT:QWORD
|
||||
COMM glad_wglCopyImageSubDataNV:QWORD
|
||||
COMM glad_wglCreateAffinityDCNV:QWORD
|
||||
COMM glad_wglCreateAssociatedContextAMD:QWORD
|
||||
COMM glad_wglCreateAssociatedContextAttribsAMD:QWORD
|
||||
COMM glad_wglCreateBufferRegionARB:QWORD
|
||||
COMM glad_wglCreateContextAttribsARB:QWORD
|
||||
COMM glad_wglCreateDisplayColorTableEXT:QWORD
|
||||
COMM glad_wglCreateImageBufferI3D:QWORD
|
||||
COMM glad_wglCreatePbufferARB:QWORD
|
||||
COMM glad_wglCreatePbufferEXT:QWORD
|
||||
COMM glad_wglDXCloseDeviceNV:QWORD
|
||||
COMM glad_wglDXLockObjectsNV:QWORD
|
||||
COMM glad_wglDXObjectAccessNV:QWORD
|
||||
COMM glad_wglDXOpenDeviceNV:QWORD
|
||||
COMM glad_wglDXRegisterObjectNV:QWORD
|
||||
COMM glad_wglDXSetResourceShareHandleNV:QWORD
|
||||
COMM glad_wglDXUnlockObjectsNV:QWORD
|
||||
COMM glad_wglDXUnregisterObjectNV:QWORD
|
||||
COMM glad_wglDelayBeforeSwapNV:QWORD
|
||||
COMM glad_wglDeleteAssociatedContextAMD:QWORD
|
||||
COMM glad_wglDeleteBufferRegionARB:QWORD
|
||||
COMM glad_wglDeleteDCNV:QWORD
|
||||
COMM glad_wglDestroyDisplayColorTableEXT:QWORD
|
||||
COMM glad_wglDestroyImageBufferI3D:QWORD
|
||||
COMM glad_wglDestroyPbufferARB:QWORD
|
||||
COMM glad_wglDestroyPbufferEXT:QWORD
|
||||
COMM glad_wglDisableFrameLockI3D:QWORD
|
||||
COMM glad_wglDisableGenlockI3D:QWORD
|
||||
COMM glad_wglEnableFrameLockI3D:QWORD
|
||||
COMM glad_wglEnableGenlockI3D:QWORD
|
||||
COMM glad_wglEndFrameTrackingI3D:QWORD
|
||||
COMM glad_wglEnumGpuDevicesNV:QWORD
|
||||
COMM glad_wglEnumGpusFromAffinityDCNV:QWORD
|
||||
COMM glad_wglEnumGpusNV:QWORD
|
||||
COMM glad_wglEnumerateVideoCaptureDevicesNV:QWORD
|
||||
COMM glad_wglEnumerateVideoDevicesNV:QWORD
|
||||
COMM glad_wglFreeMemoryNV:QWORD
|
||||
COMM glad_wglGenlockSampleRateI3D:QWORD
|
||||
COMM glad_wglGenlockSourceDelayI3D:QWORD
|
||||
COMM glad_wglGenlockSourceEdgeI3D:QWORD
|
||||
COMM glad_wglGenlockSourceI3D:QWORD
|
||||
COMM glad_wglGetContextGPUIDAMD:QWORD
|
||||
COMM glad_wglGetCurrentAssociatedContextAMD:QWORD
|
||||
COMM glad_wglGetCurrentReadDCARB:QWORD
|
||||
COMM glad_wglGetCurrentReadDCEXT:QWORD
|
||||
COMM glad_wglGetDigitalVideoParametersI3D:QWORD
|
||||
COMM glad_wglGetExtensionsStringARB:QWORD
|
||||
COMM glad_wglGetExtensionsStringEXT:QWORD
|
||||
COMM glad_wglGetFrameUsageI3D:QWORD
|
||||
COMM glad_wglGetGPUIDsAMD:QWORD
|
||||
COMM glad_wglGetGPUInfoAMD:QWORD
|
||||
COMM glad_wglGetGammaTableI3D:QWORD
|
||||
COMM glad_wglGetGammaTableParametersI3D:QWORD
|
||||
COMM glad_wglGetGenlockSampleRateI3D:QWORD
|
||||
COMM glad_wglGetGenlockSourceDelayI3D:QWORD
|
||||
COMM glad_wglGetGenlockSourceEdgeI3D:QWORD
|
||||
COMM glad_wglGetGenlockSourceI3D:QWORD
|
||||
COMM glad_wglGetMscRateOML:QWORD
|
||||
COMM glad_wglGetPbufferDCARB:QWORD
|
||||
COMM glad_wglGetPbufferDCEXT:QWORD
|
||||
COMM glad_wglGetPixelFormatAttribfvARB:QWORD
|
||||
COMM glad_wglGetPixelFormatAttribfvEXT:QWORD
|
||||
COMM glad_wglGetPixelFormatAttribivARB:QWORD
|
||||
COMM glad_wglGetPixelFormatAttribivEXT:QWORD
|
||||
COMM glad_wglGetSwapIntervalEXT:QWORD
|
||||
COMM glad_wglGetSyncValuesOML:QWORD
|
||||
COMM glad_wglGetVideoDeviceNV:QWORD
|
||||
COMM glad_wglGetVideoInfoNV:QWORD
|
||||
COMM glad_wglIsEnabledFrameLockI3D:QWORD
|
||||
COMM glad_wglIsEnabledGenlockI3D:QWORD
|
||||
COMM glad_wglJoinSwapGroupNV:QWORD
|
||||
COMM glad_wglLoadDisplayColorTableEXT:QWORD
|
||||
COMM glad_wglLockVideoCaptureDeviceNV:QWORD
|
||||
COMM glad_wglMakeAssociatedContextCurrentAMD:QWORD
|
||||
COMM glad_wglMakeContextCurrentARB:QWORD
|
||||
COMM glad_wglMakeContextCurrentEXT:QWORD
|
||||
COMM glad_wglQueryCurrentContextNV:QWORD
|
||||
COMM glad_wglQueryFrameCountNV:QWORD
|
||||
COMM glad_wglQueryFrameLockMasterI3D:QWORD
|
||||
COMM glad_wglQueryFrameTrackingI3D:QWORD
|
||||
COMM glad_wglQueryGenlockMaxSourceDelayI3D:QWORD
|
||||
COMM glad_wglQueryMaxSwapGroupsNV:QWORD
|
||||
COMM glad_wglQueryPbufferARB:QWORD
|
||||
COMM glad_wglQueryPbufferEXT:QWORD
|
||||
COMM glad_wglQuerySwapGroupNV:QWORD
|
||||
COMM glad_wglQueryVideoCaptureDeviceNV:QWORD
|
||||
COMM glad_wglReleaseImageBufferEventsI3D:QWORD
|
||||
COMM glad_wglReleasePbufferDCARB:QWORD
|
||||
COMM glad_wglReleasePbufferDCEXT:QWORD
|
||||
COMM glad_wglReleaseTexImageARB:QWORD
|
||||
COMM glad_wglReleaseVideoCaptureDeviceNV:QWORD
|
||||
COMM glad_wglReleaseVideoDeviceNV:QWORD
|
||||
COMM glad_wglReleaseVideoImageNV:QWORD
|
||||
COMM glad_wglResetFrameCountNV:QWORD
|
||||
COMM glad_wglRestoreBufferRegionARB:QWORD
|
||||
COMM glad_wglSaveBufferRegionARB:QWORD
|
||||
COMM glad_wglSendPbufferToVideoNV:QWORD
|
||||
COMM glad_wglSetDigitalVideoParametersI3D:QWORD
|
||||
COMM glad_wglSetGammaTableI3D:QWORD
|
||||
COMM glad_wglSetGammaTableParametersI3D:QWORD
|
||||
COMM glad_wglSetPbufferAttribARB:QWORD
|
||||
COMM glad_wglSetStereoEmitterState3DL:QWORD
|
||||
COMM glad_wglSwapBuffersMscOML:QWORD
|
||||
COMM glad_wglSwapIntervalEXT:QWORD
|
||||
COMM glad_wglSwapLayerBuffersMscOML:QWORD
|
||||
COMM glad_wglWaitForMscOML:QWORD
|
||||
COMM glad_wglWaitForSbcOML:QWORD
|
||||
_DATA ENDS
|
||||
_BSS SEGMENT
|
||||
defaultVecPtr DQ 01H DUP (?)
|
||||
_BSS ENDS
|
||||
_DATA SEGMENT
|
||||
COMM infolog:QWORD:0200H
|
||||
_DATA ENDS
|
||||
msvcjmc SEGMENT
|
||||
__0ED14FEE_winpackagefamily@h DB 01H
|
||||
__F92EF742_winapifamily@h DB 01H
|
||||
__22E515EB_sdkddkver@h DB 01H
|
||||
__D359774B_concurrencysal@h DB 01H
|
||||
__0E7B27E3_sal@h DB 01H
|
||||
__C320D00B_vadefs@h DB 01H
|
||||
__E4023321_vcruntime@h DB 01H
|
||||
__045EB48A_excpt@h DB 01H
|
||||
__8FF200A2_stdarg@h DB 01H
|
||||
__29F49F40_specstrings_undef@h DB 01H
|
||||
__D0F42932_specstrings_strict@h DB 01H
|
||||
__F00405FD_sdv_driverspecs@h DB 01H
|
||||
__173E09CA_driverspecs@h DB 01H
|
||||
__9A452361_specstrings@h DB 01H
|
||||
__1B0272D9_corecrt@h DB 01H
|
||||
__74484FB3_corecrt_wctype@h DB 01H
|
||||
__1EC467ED_ctype@h DB 01H
|
||||
__98517906_kernelspecs@h DB 01H
|
||||
__D3497022_basetsd@h DB 01H
|
||||
__61CC25A1_errno@h DB 01H
|
||||
__1A10C8D2_vcruntime_string@h DB 01H
|
||||
__E4C945B4_corecrt_memcpy_s@h DB 01H
|
||||
__8EAFF484_corecrt_memory@h DB 01H
|
||||
__6490AEC5_corecrt_wstring@h DB 01H
|
||||
__E8295E1E_string@h DB 01H
|
||||
__7FCB5136_guiddef@h DB 01H
|
||||
__FF8A9E11_pshpack4@h DB 01H
|
||||
__D5438902_poppack@h DB 01H
|
||||
__FB07E2A3_pshpack2@h DB 01H
|
||||
__F6906775_pshpack8@h DB 01H
|
||||
__F9415CFA_pshpack1@h DB 01H
|
||||
__E58C6F1C_apiset@h DB 01H
|
||||
__A5C52262_ktmtypes@h DB 01H
|
||||
__FBBA8F9D_winnt@h DB 01H
|
||||
__A32D3D2C_minwindef@h DB 01H
|
||||
__7D798299_windef@h DB 01H
|
||||
__9AE108E9_apisetcconv@h DB 01H
|
||||
__9CE53D2C_minwinbase@h DB 01H
|
||||
__5D0AA210_apiquery2@h DB 01H
|
||||
__4DD4E726_processenv@h DB 01H
|
||||
__3575CC96_fileapi@h DB 01H
|
||||
__8EA220E6_fileapifromapp@h DB 01H
|
||||
__BF9B31FE_debugapi@h DB 01H
|
||||
__C3AFE134_utilapiset@h DB 01H
|
||||
__76F69E51_handleapi@h DB 01H
|
||||
__7E63D784_errhandlingapi@h DB 01H
|
||||
__FFA7003C_fibersapi@h DB 01H
|
||||
__8971CECF_namedpipeapi@h DB 01H
|
||||
__46C9D8A6_profileapi@h DB 01H
|
||||
__98D4F0A3_heapapi@h DB 01H
|
||||
__50EF2A88_ioapiset@h DB 01H
|
||||
__92EA1464_synchapi@h DB 01H
|
||||
__A53D8AED_interlockedapi@h DB 01H
|
||||
__B506CAAF_processthreadsapi@h DB 01H
|
||||
__FF735694_sysinfoapi@h DB 01H
|
||||
__29589789_memoryapi@h DB 01H
|
||||
__E9C7A663_enclaveapi@h DB 01H
|
||||
__D035F9F7_threadpoollegacyapiset@h DB 01H
|
||||
__C899130C_threadpoolapiset@h DB 01H
|
||||
__E0441EE7_jobapi@h DB 01H
|
||||
__CEF86838_jobapi2@h DB 01H
|
||||
__35AC6B9A_wow64apiset@h DB 01H
|
||||
__C8AE41A5_libloaderapi@h DB 01H
|
||||
__CC9E232D_securitybaseapi@h DB 01H
|
||||
__C9D0C9B8_namespaceapi@h DB 01H
|
||||
__30FF9CAD_systemtopologyapi@h DB 01H
|
||||
__4D358795_processtopologyapi@h DB 01H
|
||||
__40446D10_securityappcontainer@h DB 01H
|
||||
__3A952EDF_realtimeapiset@h DB 01H
|
||||
__F4865F4B_winerror@h DB 01H
|
||||
__53C1BD93_timezoneapi@h DB 01H
|
||||
__1FFBEDBF_winbase@h DB 01H
|
||||
__43D3FA34_wingdi@h DB 01H
|
||||
__D24A7391_tvout@h DB 01H
|
||||
__7713A6C8_winuser@h DB 01H
|
||||
__0B345F71_datetimeapi@h DB 01H
|
||||
__9AC6960C_winnls@h DB 01H
|
||||
__973A40A8_stringapiset@h DB 01H
|
||||
__CC46FEE2_wincontypes@h DB 01H
|
||||
__97D70BE1_consoleapi@h DB 01H
|
||||
__27EC5E18_consoleapi2@h DB 01H
|
||||
__262E342F_consoleapi3@h DB 01H
|
||||
__641DCD70_wincon@h DB 01H
|
||||
__5A96C7A7_verrsrc@h DB 01H
|
||||
__B69C6FF2_winver@h DB 01H
|
||||
__7AEB8C37_reason@h DB 01H
|
||||
__59F1A8A9_winreg@h DB 01H
|
||||
__EE0E2B7F_wnnc@h DB 01H
|
||||
__DCDB7054_winnetwk@h DB 01H
|
||||
__81DDEDE3_stralign@h DB 01H
|
||||
__2134D1B4_winsvc@h DB 01H
|
||||
__11C07376_mcx@h DB 01H
|
||||
__577CE3E7_ime_cmodes@h DB 01H
|
||||
__1E72C31E_imm@h DB 01H
|
||||
__E15BF856_windows@h DB 01H
|
||||
__CBBACB16_ssgc_framework@h DB 01H
|
||||
__F0C66064_ssgc_internal@h DB 01H
|
||||
__BB2DBE6D_stdint@h DB 01H
|
||||
__0E25A6E3_khrplatform@h DB 01H
|
||||
__4AFAC916_glad_gl@h DB 01H
|
||||
__D52B075C_glad_wgl@h DB 01H
|
||||
__13F5961F_stddef@h DB 01H
|
||||
__94128AEC_glfw3@h DB 01H
|
||||
__FC01764F_mmintrin@h DB 01H
|
||||
__45DED006_corecrt_malloc@h DB 01H
|
||||
__FA77ED4C_malloc@h DB 01H
|
||||
__64D75F75_xmmintrin@h DB 01H
|
||||
__01B5D6B9_emmintrin@h DB 01H
|
||||
__DE14BE30_pmmintrin@h DB 01H
|
||||
__6ECDCDB2_tmmintrin@h DB 01H
|
||||
__47F6D831_smmintrin@h DB 01H
|
||||
__229451FD_nmmintrin@h DB 01H
|
||||
__F72FABB3_wmmintrin@h DB 01H
|
||||
__3CBBE6B4_zmmintrin@h DB 01H
|
||||
__0BAF447E_immintrin@h DB 01H
|
||||
__44420885_corecrt_stdio_config@h DB 01H
|
||||
__AB601D8D_corecrt_wstdio@h DB 01H
|
||||
__C1EC35D3_stdio@h DB 01H
|
||||
__FD6DBD68_corecrt_search@h DB 01H
|
||||
__E2E33A61_corecrt_wstdlib@h DB 01H
|
||||
__055B9052_limits@h DB 01H
|
||||
__6E5ACABA_stdlib@h DB 01H
|
||||
__014E939F_stb_image@h DB 01H
|
||||
__9D113FA1_StgSharpC@h DB 01H
|
||||
__9C9DAB70_dllmain@c DB 01H
|
||||
msvcjmc ENDS
|
||||
PUBLIC DllMain
|
||||
PUBLIC __JustMyCode_Default
|
||||
EXTRN __imp__aligned_malloc:PROC
|
||||
EXTRN _RTC_InitBase:PROC
|
||||
EXTRN _RTC_Shutdown:PROC
|
||||
EXTRN __CheckForDebuggerJustMyCode:PROC
|
||||
; COMDAT pdata
|
||||
pdata SEGMENT
|
||||
$pdata$DllMain DD imagerel $LN12
|
||||
DD imagerel $LN12+166
|
||||
DD imagerel $unwind$DllMain
|
||||
pdata ENDS
|
||||
; COMDAT rtc$TMZ
|
||||
rtc$TMZ SEGMENT
|
||||
_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown
|
||||
rtc$TMZ ENDS
|
||||
; COMDAT rtc$IMZ
|
||||
rtc$IMZ SEGMENT
|
||||
_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase
|
||||
rtc$IMZ ENDS
|
||||
; COMDAT xdata
|
||||
xdata SEGMENT
|
||||
$unwind$DllMain DD 025051c01H
|
||||
DD 0117231cH
|
||||
DD 07010001fH
|
||||
DD 0500fH
|
||||
xdata ENDS
|
||||
; Function compile flags: /Odt
|
||||
; COMDAT __JustMyCode_Default
|
||||
_TEXT SEGMENT
|
||||
__JustMyCode_Default PROC ; COMDAT
|
||||
00000 c2 00 00 ret 0
|
||||
__JustMyCode_Default ENDP
|
||||
_TEXT ENDS
|
||||
; Function compile flags: /Odtp /RTCsu /ZI
|
||||
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpC\dllmain.c
|
||||
; COMDAT DllMain
|
||||
_TEXT SEGMENT
|
||||
tv64 = 192
|
||||
hModule$ = 240
|
||||
ul_reason_for_call$ = 248
|
||||
lpReserved$ = 256
|
||||
DllMain PROC ; COMDAT
|
||||
|
||||
; 17 : {
|
||||
|
||||
$LN12:
|
||||
00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
|
||||
00005 89 54 24 10 mov DWORD PTR [rsp+16], edx
|
||||
00009 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
||||
0000e 55 push rbp
|
||||
0000f 57 push rdi
|
||||
00010 48 81 ec f8 00
|
||||
00 00 sub rsp, 248 ; 000000f8H
|
||||
00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
||||
0001c 48 8d 0d 00 00
|
||||
00 00 lea rcx, OFFSET FLAT:__9C9DAB70_dllmain@c
|
||||
00023 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
||||
|
||||
; 18 : switch (ul_reason_for_call)
|
||||
|
||||
00028 8b 85 f8 00 00
|
||||
00 mov eax, DWORD PTR ul_reason_for_call$[rbp]
|
||||
0002e 89 85 c0 00 00
|
||||
00 mov DWORD PTR tv64[rbp], eax
|
||||
00034 83 bd c0 00 00
|
||||
00 00 cmp DWORD PTR tv64[rbp], 0
|
||||
0003b 74 53 je SHORT $LN10@DllMain
|
||||
0003d 83 bd c0 00 00
|
||||
00 01 cmp DWORD PTR tv64[rbp], 1
|
||||
00044 74 14 je SHORT $LN7@DllMain
|
||||
00046 83 bd c0 00 00
|
||||
00 02 cmp DWORD PTR tv64[rbp], 2
|
||||
0004d 74 33 je SHORT $LN8@DllMain
|
||||
0004f 83 bd c0 00 00
|
||||
00 03 cmp DWORD PTR tv64[rbp], 3
|
||||
00056 74 31 je SHORT $LN9@DllMain
|
||||
00058 eb 3d jmp SHORT $LN2@DllMain
|
||||
$LN7@DllMain:
|
||||
$LN6@DllMain:
|
||||
|
||||
; 19 : {
|
||||
; 20 : case DLL_PROCESS_ATTACH:
|
||||
; 21 : do
|
||||
; 22 : {
|
||||
; 23 : defaultVecPtr = _aligned_malloc(sizeof(__m128), 16);
|
||||
|
||||
0005a ba 10 00 00 00 mov edx, 16
|
||||
0005f b9 10 00 00 00 mov ecx, 16
|
||||
00064 ff 15 00 00 00
|
||||
00 call QWORD PTR __imp__aligned_malloc
|
||||
0006a 48 89 05 00 00
|
||||
00 00 mov QWORD PTR defaultVecPtr, rax
|
||||
|
||||
; 24 : } while (defaultVecPtr == NULL);
|
||||
|
||||
00071 48 83 3d 00 00
|
||||
00 00 00 cmp QWORD PTR defaultVecPtr, 0
|
||||
00079 74 df je SHORT $LN6@DllMain
|
||||
|
||||
; 25 : return 1;
|
||||
|
||||
0007b b8 01 00 00 00 mov eax, 1
|
||||
00080 eb 1a jmp SHORT $LN1@DllMain
|
||||
$LN8@DllMain:
|
||||
|
||||
; 26 :
|
||||
; 27 : case DLL_THREAD_ATTACH:
|
||||
; 28 : return 1;
|
||||
|
||||
00082 b8 01 00 00 00 mov eax, 1
|
||||
00087 eb 13 jmp SHORT $LN1@DllMain
|
||||
$LN9@DllMain:
|
||||
|
||||
; 29 :
|
||||
; 30 : case DLL_THREAD_DETACH:
|
||||
; 31 : return 1;
|
||||
|
||||
00089 b8 01 00 00 00 mov eax, 1
|
||||
0008e eb 0c jmp SHORT $LN1@DllMain
|
||||
$LN10@DllMain:
|
||||
|
||||
; 32 :
|
||||
; 33 : case DLL_PROCESS_DETACH:
|
||||
; 34 : return 1;
|
||||
|
||||
00090 b8 01 00 00 00 mov eax, 1
|
||||
00095 eb 05 jmp SHORT $LN1@DllMain
|
||||
$LN2@DllMain:
|
||||
|
||||
; 35 :
|
||||
; 36 :
|
||||
; 37 : break;
|
||||
; 38 : }
|
||||
; 39 : return TRUE;
|
||||
|
||||
00097 b8 01 00 00 00 mov eax, 1
|
||||
$LN1@DllMain:
|
||||
|
||||
; 40 : }
|
||||
|
||||
0009c 48 8d a5 d8 00
|
||||
00 00 lea rsp, QWORD PTR [rbp+216]
|
||||
000a3 5f pop rdi
|
||||
000a4 5d pop rbp
|
||||
000a5 c3 ret 0
|
||||
DllMain ENDP
|
||||
_TEXT ENDS
|
||||
END
|
||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -0,0 +1,382 @@
|
||||
; Listing generated by Microsoft (R) Optimizing Compiler Version 19.38.33130.0
|
||||
|
||||
include listing.inc
|
||||
|
||||
INCLUDELIB MSVCRTD
|
||||
INCLUDELIB OLDNAMES
|
||||
|
||||
_DATA SEGMENT
|
||||
COMM GLAD_WGL_VERSION_1_0:DWORD
|
||||
COMM GLAD_WGL_3DFX_multisample:DWORD
|
||||
COMM GLAD_WGL_3DL_stereo_control:DWORD
|
||||
COMM GLAD_WGL_AMD_gpu_association:DWORD
|
||||
COMM GLAD_WGL_ARB_buffer_region:DWORD
|
||||
COMM GLAD_WGL_ARB_context_flush_control:DWORD
|
||||
COMM GLAD_WGL_ARB_create_context:DWORD
|
||||
COMM GLAD_WGL_ARB_create_context_no_error:DWORD
|
||||
COMM GLAD_WGL_ARB_create_context_profile:DWORD
|
||||
COMM GLAD_WGL_ARB_create_context_robustness:DWORD
|
||||
COMM GLAD_WGL_ARB_extensions_string:DWORD
|
||||
COMM GLAD_WGL_ARB_framebuffer_sRGB:DWORD
|
||||
COMM GLAD_WGL_ARB_make_current_read:DWORD
|
||||
COMM GLAD_WGL_ARB_multisample:DWORD
|
||||
COMM GLAD_WGL_ARB_pbuffer:DWORD
|
||||
COMM GLAD_WGL_ARB_pixel_format:DWORD
|
||||
COMM GLAD_WGL_ARB_pixel_format_float:DWORD
|
||||
COMM GLAD_WGL_ARB_render_texture:DWORD
|
||||
COMM GLAD_WGL_ARB_robustness_application_isolation:DWORD
|
||||
COMM GLAD_WGL_ARB_robustness_share_group_isolation:DWORD
|
||||
COMM GLAD_WGL_ATI_pixel_format_float:DWORD
|
||||
COMM GLAD_WGL_ATI_render_texture_rectangle:DWORD
|
||||
COMM GLAD_WGL_EXT_colorspace:DWORD
|
||||
COMM GLAD_WGL_EXT_create_context_es2_profile:DWORD
|
||||
COMM GLAD_WGL_EXT_create_context_es_profile:DWORD
|
||||
COMM GLAD_WGL_EXT_depth_float:DWORD
|
||||
COMM GLAD_WGL_EXT_display_color_table:DWORD
|
||||
COMM GLAD_WGL_EXT_extensions_string:DWORD
|
||||
COMM GLAD_WGL_EXT_framebuffer_sRGB:DWORD
|
||||
COMM GLAD_WGL_EXT_make_current_read:DWORD
|
||||
COMM GLAD_WGL_EXT_multisample:DWORD
|
||||
COMM GLAD_WGL_EXT_pbuffer:DWORD
|
||||
COMM GLAD_WGL_EXT_pixel_format:DWORD
|
||||
COMM GLAD_WGL_EXT_pixel_format_packed_float:DWORD
|
||||
COMM GLAD_WGL_EXT_swap_control:DWORD
|
||||
COMM GLAD_WGL_EXT_swap_control_tear:DWORD
|
||||
COMM GLAD_WGL_I3D_digital_video_control:DWORD
|
||||
COMM GLAD_WGL_I3D_gamma:DWORD
|
||||
COMM GLAD_WGL_I3D_genlock:DWORD
|
||||
COMM GLAD_WGL_I3D_image_buffer:DWORD
|
||||
COMM GLAD_WGL_I3D_swap_frame_lock:DWORD
|
||||
COMM GLAD_WGL_I3D_swap_frame_usage:DWORD
|
||||
COMM GLAD_WGL_NV_DX_interop:DWORD
|
||||
COMM GLAD_WGL_NV_DX_interop2:DWORD
|
||||
COMM GLAD_WGL_NV_copy_image:DWORD
|
||||
COMM GLAD_WGL_NV_delay_before_swap:DWORD
|
||||
COMM GLAD_WGL_NV_float_buffer:DWORD
|
||||
COMM GLAD_WGL_NV_gpu_affinity:DWORD
|
||||
COMM GLAD_WGL_NV_multigpu_context:DWORD
|
||||
COMM GLAD_WGL_NV_multisample_coverage:DWORD
|
||||
COMM GLAD_WGL_NV_present_video:DWORD
|
||||
COMM GLAD_WGL_NV_render_depth_texture:DWORD
|
||||
COMM GLAD_WGL_NV_render_texture_rectangle:DWORD
|
||||
COMM GLAD_WGL_NV_swap_group:DWORD
|
||||
COMM GLAD_WGL_NV_vertex_array_range:DWORD
|
||||
COMM GLAD_WGL_NV_video_capture:DWORD
|
||||
COMM GLAD_WGL_NV_video_output:DWORD
|
||||
COMM GLAD_WGL_OML_sync_control:DWORD
|
||||
COMM glad_wglAllocateMemoryNV:QWORD
|
||||
COMM glad_wglAssociateImageBufferEventsI3D:QWORD
|
||||
COMM glad_wglBeginFrameTrackingI3D:QWORD
|
||||
COMM glad_wglBindDisplayColorTableEXT:QWORD
|
||||
COMM glad_wglBindSwapBarrierNV:QWORD
|
||||
COMM glad_wglBindTexImageARB:QWORD
|
||||
COMM glad_wglBindVideoCaptureDeviceNV:QWORD
|
||||
COMM glad_wglBindVideoDeviceNV:QWORD
|
||||
COMM glad_wglBindVideoImageNV:QWORD
|
||||
COMM glad_wglBlitContextFramebufferAMD:QWORD
|
||||
COMM glad_wglChoosePixelFormatARB:QWORD
|
||||
COMM glad_wglChoosePixelFormatEXT:QWORD
|
||||
COMM glad_wglCopyImageSubDataNV:QWORD
|
||||
COMM glad_wglCreateAffinityDCNV:QWORD
|
||||
COMM glad_wglCreateAssociatedContextAMD:QWORD
|
||||
COMM glad_wglCreateAssociatedContextAttribsAMD:QWORD
|
||||
COMM glad_wglCreateBufferRegionARB:QWORD
|
||||
COMM glad_wglCreateContextAttribsARB:QWORD
|
||||
COMM glad_wglCreateDisplayColorTableEXT:QWORD
|
||||
COMM glad_wglCreateImageBufferI3D:QWORD
|
||||
COMM glad_wglCreatePbufferARB:QWORD
|
||||
COMM glad_wglCreatePbufferEXT:QWORD
|
||||
COMM glad_wglDXCloseDeviceNV:QWORD
|
||||
COMM glad_wglDXLockObjectsNV:QWORD
|
||||
COMM glad_wglDXObjectAccessNV:QWORD
|
||||
COMM glad_wglDXOpenDeviceNV:QWORD
|
||||
COMM glad_wglDXRegisterObjectNV:QWORD
|
||||
COMM glad_wglDXSetResourceShareHandleNV:QWORD
|
||||
COMM glad_wglDXUnlockObjectsNV:QWORD
|
||||
COMM glad_wglDXUnregisterObjectNV:QWORD
|
||||
COMM glad_wglDelayBeforeSwapNV:QWORD
|
||||
COMM glad_wglDeleteAssociatedContextAMD:QWORD
|
||||
COMM glad_wglDeleteBufferRegionARB:QWORD
|
||||
COMM glad_wglDeleteDCNV:QWORD
|
||||
COMM glad_wglDestroyDisplayColorTableEXT:QWORD
|
||||
COMM glad_wglDestroyImageBufferI3D:QWORD
|
||||
COMM glad_wglDestroyPbufferARB:QWORD
|
||||
COMM glad_wglDestroyPbufferEXT:QWORD
|
||||
COMM glad_wglDisableFrameLockI3D:QWORD
|
||||
COMM glad_wglDisableGenlockI3D:QWORD
|
||||
COMM glad_wglEnableFrameLockI3D:QWORD
|
||||
COMM glad_wglEnableGenlockI3D:QWORD
|
||||
COMM glad_wglEndFrameTrackingI3D:QWORD
|
||||
COMM glad_wglEnumGpuDevicesNV:QWORD
|
||||
COMM glad_wglEnumGpusFromAffinityDCNV:QWORD
|
||||
COMM glad_wglEnumGpusNV:QWORD
|
||||
COMM glad_wglEnumerateVideoCaptureDevicesNV:QWORD
|
||||
COMM glad_wglEnumerateVideoDevicesNV:QWORD
|
||||
COMM glad_wglFreeMemoryNV:QWORD
|
||||
COMM glad_wglGenlockSampleRateI3D:QWORD
|
||||
COMM glad_wglGenlockSourceDelayI3D:QWORD
|
||||
COMM glad_wglGenlockSourceEdgeI3D:QWORD
|
||||
COMM glad_wglGenlockSourceI3D:QWORD
|
||||
COMM glad_wglGetContextGPUIDAMD:QWORD
|
||||
COMM glad_wglGetCurrentAssociatedContextAMD:QWORD
|
||||
COMM glad_wglGetCurrentReadDCARB:QWORD
|
||||
COMM glad_wglGetCurrentReadDCEXT:QWORD
|
||||
COMM glad_wglGetDigitalVideoParametersI3D:QWORD
|
||||
COMM glad_wglGetExtensionsStringARB:QWORD
|
||||
COMM glad_wglGetExtensionsStringEXT:QWORD
|
||||
COMM glad_wglGetFrameUsageI3D:QWORD
|
||||
COMM glad_wglGetGPUIDsAMD:QWORD
|
||||
COMM glad_wglGetGPUInfoAMD:QWORD
|
||||
COMM glad_wglGetGammaTableI3D:QWORD
|
||||
COMM glad_wglGetGammaTableParametersI3D:QWORD
|
||||
COMM glad_wglGetGenlockSampleRateI3D:QWORD
|
||||
COMM glad_wglGetGenlockSourceDelayI3D:QWORD
|
||||
COMM glad_wglGetGenlockSourceEdgeI3D:QWORD
|
||||
COMM glad_wglGetGenlockSourceI3D:QWORD
|
||||
COMM glad_wglGetMscRateOML:QWORD
|
||||
COMM glad_wglGetPbufferDCARB:QWORD
|
||||
COMM glad_wglGetPbufferDCEXT:QWORD
|
||||
COMM glad_wglGetPixelFormatAttribfvARB:QWORD
|
||||
COMM glad_wglGetPixelFormatAttribfvEXT:QWORD
|
||||
COMM glad_wglGetPixelFormatAttribivARB:QWORD
|
||||
COMM glad_wglGetPixelFormatAttribivEXT:QWORD
|
||||
COMM glad_wglGetSwapIntervalEXT:QWORD
|
||||
COMM glad_wglGetSyncValuesOML:QWORD
|
||||
COMM glad_wglGetVideoDeviceNV:QWORD
|
||||
COMM glad_wglGetVideoInfoNV:QWORD
|
||||
COMM glad_wglIsEnabledFrameLockI3D:QWORD
|
||||
COMM glad_wglIsEnabledGenlockI3D:QWORD
|
||||
COMM glad_wglJoinSwapGroupNV:QWORD
|
||||
COMM glad_wglLoadDisplayColorTableEXT:QWORD
|
||||
COMM glad_wglLockVideoCaptureDeviceNV:QWORD
|
||||
COMM glad_wglMakeAssociatedContextCurrentAMD:QWORD
|
||||
COMM glad_wglMakeContextCurrentARB:QWORD
|
||||
COMM glad_wglMakeContextCurrentEXT:QWORD
|
||||
COMM glad_wglQueryCurrentContextNV:QWORD
|
||||
COMM glad_wglQueryFrameCountNV:QWORD
|
||||
COMM glad_wglQueryFrameLockMasterI3D:QWORD
|
||||
COMM glad_wglQueryFrameTrackingI3D:QWORD
|
||||
COMM glad_wglQueryGenlockMaxSourceDelayI3D:QWORD
|
||||
COMM glad_wglQueryMaxSwapGroupsNV:QWORD
|
||||
COMM glad_wglQueryPbufferARB:QWORD
|
||||
COMM glad_wglQueryPbufferEXT:QWORD
|
||||
COMM glad_wglQuerySwapGroupNV:QWORD
|
||||
COMM glad_wglQueryVideoCaptureDeviceNV:QWORD
|
||||
COMM glad_wglReleaseImageBufferEventsI3D:QWORD
|
||||
COMM glad_wglReleasePbufferDCARB:QWORD
|
||||
COMM glad_wglReleasePbufferDCEXT:QWORD
|
||||
COMM glad_wglReleaseTexImageARB:QWORD
|
||||
COMM glad_wglReleaseVideoCaptureDeviceNV:QWORD
|
||||
COMM glad_wglReleaseVideoDeviceNV:QWORD
|
||||
COMM glad_wglReleaseVideoImageNV:QWORD
|
||||
COMM glad_wglResetFrameCountNV:QWORD
|
||||
COMM glad_wglRestoreBufferRegionARB:QWORD
|
||||
COMM glad_wglSaveBufferRegionARB:QWORD
|
||||
COMM glad_wglSendPbufferToVideoNV:QWORD
|
||||
COMM glad_wglSetDigitalVideoParametersI3D:QWORD
|
||||
COMM glad_wglSetGammaTableI3D:QWORD
|
||||
COMM glad_wglSetGammaTableParametersI3D:QWORD
|
||||
COMM glad_wglSetPbufferAttribARB:QWORD
|
||||
COMM glad_wglSetStereoEmitterState3DL:QWORD
|
||||
COMM glad_wglSwapBuffersMscOML:QWORD
|
||||
COMM glad_wglSwapIntervalEXT:QWORD
|
||||
COMM glad_wglSwapLayerBuffersMscOML:QWORD
|
||||
COMM glad_wglWaitForMscOML:QWORD
|
||||
COMM glad_wglWaitForSbcOML:QWORD
|
||||
COMM infolog:QWORD:0200H
|
||||
_DATA ENDS
|
||||
msvcjmc SEGMENT
|
||||
__0ED14FEE_winpackagefamily@h DB 01H
|
||||
__F92EF742_winapifamily@h DB 01H
|
||||
__22E515EB_sdkddkver@h DB 01H
|
||||
__D359774B_concurrencysal@h DB 01H
|
||||
__0E7B27E3_sal@h DB 01H
|
||||
__C320D00B_vadefs@h DB 01H
|
||||
__E4023321_vcruntime@h DB 01H
|
||||
__045EB48A_excpt@h DB 01H
|
||||
__8FF200A2_stdarg@h DB 01H
|
||||
__29F49F40_specstrings_undef@h DB 01H
|
||||
__D0F42932_specstrings_strict@h DB 01H
|
||||
__F00405FD_sdv_driverspecs@h DB 01H
|
||||
__173E09CA_driverspecs@h DB 01H
|
||||
__9A452361_specstrings@h DB 01H
|
||||
__1B0272D9_corecrt@h DB 01H
|
||||
__74484FB3_corecrt_wctype@h DB 01H
|
||||
__1EC467ED_ctype@h DB 01H
|
||||
__98517906_kernelspecs@h DB 01H
|
||||
__D3497022_basetsd@h DB 01H
|
||||
__61CC25A1_errno@h DB 01H
|
||||
__1A10C8D2_vcruntime_string@h DB 01H
|
||||
__E4C945B4_corecrt_memcpy_s@h DB 01H
|
||||
__8EAFF484_corecrt_memory@h DB 01H
|
||||
__6490AEC5_corecrt_wstring@h DB 01H
|
||||
__E8295E1E_string@h DB 01H
|
||||
__7FCB5136_guiddef@h DB 01H
|
||||
__FF8A9E11_pshpack4@h DB 01H
|
||||
__D5438902_poppack@h DB 01H
|
||||
__FB07E2A3_pshpack2@h DB 01H
|
||||
__F6906775_pshpack8@h DB 01H
|
||||
__F9415CFA_pshpack1@h DB 01H
|
||||
__E58C6F1C_apiset@h DB 01H
|
||||
__A5C52262_ktmtypes@h DB 01H
|
||||
__FBBA8F9D_winnt@h DB 01H
|
||||
__A32D3D2C_minwindef@h DB 01H
|
||||
__7D798299_windef@h DB 01H
|
||||
__9AE108E9_apisetcconv@h DB 01H
|
||||
__9CE53D2C_minwinbase@h DB 01H
|
||||
__5D0AA210_apiquery2@h DB 01H
|
||||
__4DD4E726_processenv@h DB 01H
|
||||
__3575CC96_fileapi@h DB 01H
|
||||
__8EA220E6_fileapifromapp@h DB 01H
|
||||
__BF9B31FE_debugapi@h DB 01H
|
||||
__C3AFE134_utilapiset@h DB 01H
|
||||
__76F69E51_handleapi@h DB 01H
|
||||
__7E63D784_errhandlingapi@h DB 01H
|
||||
__FFA7003C_fibersapi@h DB 01H
|
||||
__8971CECF_namedpipeapi@h DB 01H
|
||||
__46C9D8A6_profileapi@h DB 01H
|
||||
__98D4F0A3_heapapi@h DB 01H
|
||||
__50EF2A88_ioapiset@h DB 01H
|
||||
__92EA1464_synchapi@h DB 01H
|
||||
__A53D8AED_interlockedapi@h DB 01H
|
||||
__B506CAAF_processthreadsapi@h DB 01H
|
||||
__FF735694_sysinfoapi@h DB 01H
|
||||
__29589789_memoryapi@h DB 01H
|
||||
__E9C7A663_enclaveapi@h DB 01H
|
||||
__D035F9F7_threadpoollegacyapiset@h DB 01H
|
||||
__C899130C_threadpoolapiset@h DB 01H
|
||||
__E0441EE7_jobapi@h DB 01H
|
||||
__CEF86838_jobapi2@h DB 01H
|
||||
__35AC6B9A_wow64apiset@h DB 01H
|
||||
__C8AE41A5_libloaderapi@h DB 01H
|
||||
__CC9E232D_securitybaseapi@h DB 01H
|
||||
__C9D0C9B8_namespaceapi@h DB 01H
|
||||
__30FF9CAD_systemtopologyapi@h DB 01H
|
||||
__4D358795_processtopologyapi@h DB 01H
|
||||
__40446D10_securityappcontainer@h DB 01H
|
||||
__3A952EDF_realtimeapiset@h DB 01H
|
||||
__F4865F4B_winerror@h DB 01H
|
||||
__53C1BD93_timezoneapi@h DB 01H
|
||||
__1FFBEDBF_winbase@h DB 01H
|
||||
__43D3FA34_wingdi@h DB 01H
|
||||
__D24A7391_tvout@h DB 01H
|
||||
__7713A6C8_winuser@h DB 01H
|
||||
__0B345F71_datetimeapi@h DB 01H
|
||||
__9AC6960C_winnls@h DB 01H
|
||||
__973A40A8_stringapiset@h DB 01H
|
||||
__CC46FEE2_wincontypes@h DB 01H
|
||||
__97D70BE1_consoleapi@h DB 01H
|
||||
__27EC5E18_consoleapi2@h DB 01H
|
||||
__262E342F_consoleapi3@h DB 01H
|
||||
__641DCD70_wincon@h DB 01H
|
||||
__5A96C7A7_verrsrc@h DB 01H
|
||||
__B69C6FF2_winver@h DB 01H
|
||||
__7AEB8C37_reason@h DB 01H
|
||||
__59F1A8A9_winreg@h DB 01H
|
||||
__EE0E2B7F_wnnc@h DB 01H
|
||||
__DCDB7054_winnetwk@h DB 01H
|
||||
__81DDEDE3_stralign@h DB 01H
|
||||
__2134D1B4_winsvc@h DB 01H
|
||||
__11C07376_mcx@h DB 01H
|
||||
__577CE3E7_ime_cmodes@h DB 01H
|
||||
__1E72C31E_imm@h DB 01H
|
||||
__E15BF856_windows@h DB 01H
|
||||
__CBBACB16_ssgc_framework@h DB 01H
|
||||
__F0C66064_ssgc_internal@h DB 01H
|
||||
__BB2DBE6D_stdint@h DB 01H
|
||||
__0E25A6E3_khrplatform@h DB 01H
|
||||
__4AFAC916_glad_gl@h DB 01H
|
||||
__D52B075C_glad_wgl@h DB 01H
|
||||
__13F5961F_stddef@h DB 01H
|
||||
__94128AEC_glfw3@h DB 01H
|
||||
__FC01764F_mmintrin@h DB 01H
|
||||
__45DED006_corecrt_malloc@h DB 01H
|
||||
__FA77ED4C_malloc@h DB 01H
|
||||
__64D75F75_xmmintrin@h DB 01H
|
||||
__01B5D6B9_emmintrin@h DB 01H
|
||||
__DE14BE30_pmmintrin@h DB 01H
|
||||
__6ECDCDB2_tmmintrin@h DB 01H
|
||||
__47F6D831_smmintrin@h DB 01H
|
||||
__229451FD_nmmintrin@h DB 01H
|
||||
__F72FABB3_wmmintrin@h DB 01H
|
||||
__3CBBE6B4_zmmintrin@h DB 01H
|
||||
__0BAF447E_immintrin@h DB 01H
|
||||
__44420885_corecrt_stdio_config@h DB 01H
|
||||
__AB601D8D_corecrt_wstdio@h DB 01H
|
||||
__C1EC35D3_stdio@h DB 01H
|
||||
__FD6DBD68_corecrt_search@h DB 01H
|
||||
__E2E33A61_corecrt_wstdlib@h DB 01H
|
||||
__055B9052_limits@h DB 01H
|
||||
__6E5ACABA_stdlib@h DB 01H
|
||||
__014E939F_stb_image@h DB 01H
|
||||
__9D113FA1_StgSharpC@h DB 01H
|
||||
__89AE49E7_stdalign@h DB 01H
|
||||
__80AF39C6_linear@c DB 01H
|
||||
msvcjmc ENDS
|
||||
PUBLIC set_m128ptr_default
|
||||
PUBLIC __JustMyCode_Default
|
||||
EXTRN _RTC_InitBase:PROC
|
||||
EXTRN _RTC_Shutdown:PROC
|
||||
EXTRN __CheckForDebuggerJustMyCode:PROC
|
||||
EXTRN defaultVecPtr:QWORD
|
||||
; COMDAT pdata
|
||||
pdata SEGMENT
|
||||
$pdata$set_m128ptr_default DD imagerel $LN3
|
||||
DD imagerel $LN3+44
|
||||
DD imagerel $unwind$set_m128ptr_default
|
||||
pdata ENDS
|
||||
; COMDAT rtc$TMZ
|
||||
rtc$TMZ SEGMENT
|
||||
_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown
|
||||
rtc$TMZ ENDS
|
||||
; COMDAT rtc$IMZ
|
||||
rtc$IMZ SEGMENT
|
||||
_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase
|
||||
rtc$IMZ ENDS
|
||||
; COMDAT xdata
|
||||
xdata SEGMENT
|
||||
$unwind$set_m128ptr_default DD 025050f01H
|
||||
DD 010a230fH
|
||||
DD 07003001dH
|
||||
DD 05002H
|
||||
xdata ENDS
|
||||
; Function compile flags: /Odt
|
||||
; COMDAT __JustMyCode_Default
|
||||
_TEXT SEGMENT
|
||||
__JustMyCode_Default PROC ; COMDAT
|
||||
00000 c2 00 00 ret 0
|
||||
__JustMyCode_Default ENDP
|
||||
_TEXT ENDS
|
||||
; Function compile flags: /Odtp /RTCsu /ZI
|
||||
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpC\linear.c
|
||||
; COMDAT set_m128ptr_default
|
||||
_TEXT SEGMENT
|
||||
set_m128ptr_default PROC ; COMDAT
|
||||
|
||||
; 22 : {
|
||||
|
||||
$LN3:
|
||||
00000 40 55 push rbp
|
||||
00002 57 push rdi
|
||||
00003 48 81 ec e8 00
|
||||
00 00 sub rsp, 232 ; 000000e8H
|
||||
0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
||||
0000f 48 8d 0d 00 00
|
||||
00 00 lea rcx, OFFSET FLAT:__80AF39C6_linear@c
|
||||
00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
||||
|
||||
; 23 : return defaultVecPtr;
|
||||
|
||||
0001b 48 8b 05 00 00
|
||||
00 00 mov rax, QWORD PTR defaultVecPtr
|
||||
|
||||
; 24 : }
|
||||
|
||||
00022 48 8d a5 c8 00
|
||||
00 00 lea rsp, QWORD PTR [rbp+200]
|
||||
00029 5f pop rdi
|
||||
0002a 5d pop rbp
|
||||
0002b c3 ret 0
|
||||
set_m128ptr_default ENDP
|
||||
_TEXT ENDS
|
||||
END
|
||||
Binary file not shown.
@@ -0,0 +1,670 @@
|
||||
; Listing generated by Microsoft (R) Optimizing Compiler Version 19.38.33130.0
|
||||
|
||||
include listing.inc
|
||||
|
||||
INCLUDELIB MSVCRTD
|
||||
INCLUDELIB OLDNAMES
|
||||
|
||||
_DATA SEGMENT
|
||||
COMM GLAD_WGL_VERSION_1_0:DWORD
|
||||
COMM GLAD_WGL_3DFX_multisample:DWORD
|
||||
COMM GLAD_WGL_3DL_stereo_control:DWORD
|
||||
COMM GLAD_WGL_AMD_gpu_association:DWORD
|
||||
COMM GLAD_WGL_ARB_buffer_region:DWORD
|
||||
COMM GLAD_WGL_ARB_context_flush_control:DWORD
|
||||
COMM GLAD_WGL_ARB_create_context:DWORD
|
||||
COMM GLAD_WGL_ARB_create_context_no_error:DWORD
|
||||
COMM GLAD_WGL_ARB_create_context_profile:DWORD
|
||||
COMM GLAD_WGL_ARB_create_context_robustness:DWORD
|
||||
COMM GLAD_WGL_ARB_extensions_string:DWORD
|
||||
COMM GLAD_WGL_ARB_framebuffer_sRGB:DWORD
|
||||
COMM GLAD_WGL_ARB_make_current_read:DWORD
|
||||
COMM GLAD_WGL_ARB_multisample:DWORD
|
||||
COMM GLAD_WGL_ARB_pbuffer:DWORD
|
||||
COMM GLAD_WGL_ARB_pixel_format:DWORD
|
||||
COMM GLAD_WGL_ARB_pixel_format_float:DWORD
|
||||
COMM GLAD_WGL_ARB_render_texture:DWORD
|
||||
COMM GLAD_WGL_ARB_robustness_application_isolation:DWORD
|
||||
COMM GLAD_WGL_ARB_robustness_share_group_isolation:DWORD
|
||||
COMM GLAD_WGL_ATI_pixel_format_float:DWORD
|
||||
COMM GLAD_WGL_ATI_render_texture_rectangle:DWORD
|
||||
COMM GLAD_WGL_EXT_colorspace:DWORD
|
||||
COMM GLAD_WGL_EXT_create_context_es2_profile:DWORD
|
||||
COMM GLAD_WGL_EXT_create_context_es_profile:DWORD
|
||||
COMM GLAD_WGL_EXT_depth_float:DWORD
|
||||
COMM GLAD_WGL_EXT_display_color_table:DWORD
|
||||
COMM GLAD_WGL_EXT_extensions_string:DWORD
|
||||
COMM GLAD_WGL_EXT_framebuffer_sRGB:DWORD
|
||||
COMM GLAD_WGL_EXT_make_current_read:DWORD
|
||||
COMM GLAD_WGL_EXT_multisample:DWORD
|
||||
COMM GLAD_WGL_EXT_pbuffer:DWORD
|
||||
COMM GLAD_WGL_EXT_pixel_format:DWORD
|
||||
COMM GLAD_WGL_EXT_pixel_format_packed_float:DWORD
|
||||
COMM GLAD_WGL_EXT_swap_control:DWORD
|
||||
COMM GLAD_WGL_EXT_swap_control_tear:DWORD
|
||||
COMM GLAD_WGL_I3D_digital_video_control:DWORD
|
||||
COMM GLAD_WGL_I3D_gamma:DWORD
|
||||
COMM GLAD_WGL_I3D_genlock:DWORD
|
||||
COMM GLAD_WGL_I3D_image_buffer:DWORD
|
||||
COMM GLAD_WGL_I3D_swap_frame_lock:DWORD
|
||||
COMM GLAD_WGL_I3D_swap_frame_usage:DWORD
|
||||
COMM GLAD_WGL_NV_DX_interop:DWORD
|
||||
COMM GLAD_WGL_NV_DX_interop2:DWORD
|
||||
COMM GLAD_WGL_NV_copy_image:DWORD
|
||||
COMM GLAD_WGL_NV_delay_before_swap:DWORD
|
||||
COMM GLAD_WGL_NV_float_buffer:DWORD
|
||||
COMM GLAD_WGL_NV_gpu_affinity:DWORD
|
||||
COMM GLAD_WGL_NV_multigpu_context:DWORD
|
||||
COMM GLAD_WGL_NV_multisample_coverage:DWORD
|
||||
COMM GLAD_WGL_NV_present_video:DWORD
|
||||
COMM GLAD_WGL_NV_render_depth_texture:DWORD
|
||||
COMM GLAD_WGL_NV_render_texture_rectangle:DWORD
|
||||
COMM GLAD_WGL_NV_swap_group:DWORD
|
||||
COMM GLAD_WGL_NV_vertex_array_range:DWORD
|
||||
COMM GLAD_WGL_NV_video_capture:DWORD
|
||||
COMM GLAD_WGL_NV_video_output:DWORD
|
||||
COMM GLAD_WGL_OML_sync_control:DWORD
|
||||
COMM glad_wglAllocateMemoryNV:QWORD
|
||||
COMM glad_wglAssociateImageBufferEventsI3D:QWORD
|
||||
COMM glad_wglBeginFrameTrackingI3D:QWORD
|
||||
COMM glad_wglBindDisplayColorTableEXT:QWORD
|
||||
COMM glad_wglBindSwapBarrierNV:QWORD
|
||||
COMM glad_wglBindTexImageARB:QWORD
|
||||
COMM glad_wglBindVideoCaptureDeviceNV:QWORD
|
||||
COMM glad_wglBindVideoDeviceNV:QWORD
|
||||
COMM glad_wglBindVideoImageNV:QWORD
|
||||
COMM glad_wglBlitContextFramebufferAMD:QWORD
|
||||
COMM glad_wglChoosePixelFormatARB:QWORD
|
||||
COMM glad_wglChoosePixelFormatEXT:QWORD
|
||||
COMM glad_wglCopyImageSubDataNV:QWORD
|
||||
COMM glad_wglCreateAffinityDCNV:QWORD
|
||||
COMM glad_wglCreateAssociatedContextAMD:QWORD
|
||||
COMM glad_wglCreateAssociatedContextAttribsAMD:QWORD
|
||||
COMM glad_wglCreateBufferRegionARB:QWORD
|
||||
COMM glad_wglCreateContextAttribsARB:QWORD
|
||||
COMM glad_wglCreateDisplayColorTableEXT:QWORD
|
||||
COMM glad_wglCreateImageBufferI3D:QWORD
|
||||
COMM glad_wglCreatePbufferARB:QWORD
|
||||
COMM glad_wglCreatePbufferEXT:QWORD
|
||||
COMM glad_wglDXCloseDeviceNV:QWORD
|
||||
COMM glad_wglDXLockObjectsNV:QWORD
|
||||
COMM glad_wglDXObjectAccessNV:QWORD
|
||||
COMM glad_wglDXOpenDeviceNV:QWORD
|
||||
COMM glad_wglDXRegisterObjectNV:QWORD
|
||||
COMM glad_wglDXSetResourceShareHandleNV:QWORD
|
||||
COMM glad_wglDXUnlockObjectsNV:QWORD
|
||||
COMM glad_wglDXUnregisterObjectNV:QWORD
|
||||
COMM glad_wglDelayBeforeSwapNV:QWORD
|
||||
COMM glad_wglDeleteAssociatedContextAMD:QWORD
|
||||
COMM glad_wglDeleteBufferRegionARB:QWORD
|
||||
COMM glad_wglDeleteDCNV:QWORD
|
||||
COMM glad_wglDestroyDisplayColorTableEXT:QWORD
|
||||
COMM glad_wglDestroyImageBufferI3D:QWORD
|
||||
COMM glad_wglDestroyPbufferARB:QWORD
|
||||
COMM glad_wglDestroyPbufferEXT:QWORD
|
||||
COMM glad_wglDisableFrameLockI3D:QWORD
|
||||
COMM glad_wglDisableGenlockI3D:QWORD
|
||||
COMM glad_wglEnableFrameLockI3D:QWORD
|
||||
COMM glad_wglEnableGenlockI3D:QWORD
|
||||
COMM glad_wglEndFrameTrackingI3D:QWORD
|
||||
COMM glad_wglEnumGpuDevicesNV:QWORD
|
||||
COMM glad_wglEnumGpusFromAffinityDCNV:QWORD
|
||||
COMM glad_wglEnumGpusNV:QWORD
|
||||
COMM glad_wglEnumerateVideoCaptureDevicesNV:QWORD
|
||||
COMM glad_wglEnumerateVideoDevicesNV:QWORD
|
||||
COMM glad_wglFreeMemoryNV:QWORD
|
||||
COMM glad_wglGenlockSampleRateI3D:QWORD
|
||||
COMM glad_wglGenlockSourceDelayI3D:QWORD
|
||||
COMM glad_wglGenlockSourceEdgeI3D:QWORD
|
||||
COMM glad_wglGenlockSourceI3D:QWORD
|
||||
COMM glad_wglGetContextGPUIDAMD:QWORD
|
||||
COMM glad_wglGetCurrentAssociatedContextAMD:QWORD
|
||||
COMM glad_wglGetCurrentReadDCARB:QWORD
|
||||
COMM glad_wglGetCurrentReadDCEXT:QWORD
|
||||
COMM glad_wglGetDigitalVideoParametersI3D:QWORD
|
||||
COMM glad_wglGetExtensionsStringARB:QWORD
|
||||
COMM glad_wglGetExtensionsStringEXT:QWORD
|
||||
COMM glad_wglGetFrameUsageI3D:QWORD
|
||||
COMM glad_wglGetGPUIDsAMD:QWORD
|
||||
COMM glad_wglGetGPUInfoAMD:QWORD
|
||||
COMM glad_wglGetGammaTableI3D:QWORD
|
||||
COMM glad_wglGetGammaTableParametersI3D:QWORD
|
||||
COMM glad_wglGetGenlockSampleRateI3D:QWORD
|
||||
COMM glad_wglGetGenlockSourceDelayI3D:QWORD
|
||||
COMM glad_wglGetGenlockSourceEdgeI3D:QWORD
|
||||
COMM glad_wglGetGenlockSourceI3D:QWORD
|
||||
COMM glad_wglGetMscRateOML:QWORD
|
||||
COMM glad_wglGetPbufferDCARB:QWORD
|
||||
COMM glad_wglGetPbufferDCEXT:QWORD
|
||||
COMM glad_wglGetPixelFormatAttribfvARB:QWORD
|
||||
COMM glad_wglGetPixelFormatAttribfvEXT:QWORD
|
||||
COMM glad_wglGetPixelFormatAttribivARB:QWORD
|
||||
COMM glad_wglGetPixelFormatAttribivEXT:QWORD
|
||||
COMM glad_wglGetSwapIntervalEXT:QWORD
|
||||
COMM glad_wglGetSyncValuesOML:QWORD
|
||||
COMM glad_wglGetVideoDeviceNV:QWORD
|
||||
COMM glad_wglGetVideoInfoNV:QWORD
|
||||
COMM glad_wglIsEnabledFrameLockI3D:QWORD
|
||||
COMM glad_wglIsEnabledGenlockI3D:QWORD
|
||||
COMM glad_wglJoinSwapGroupNV:QWORD
|
||||
COMM glad_wglLoadDisplayColorTableEXT:QWORD
|
||||
COMM glad_wglLockVideoCaptureDeviceNV:QWORD
|
||||
COMM glad_wglMakeAssociatedContextCurrentAMD:QWORD
|
||||
COMM glad_wglMakeContextCurrentARB:QWORD
|
||||
COMM glad_wglMakeContextCurrentEXT:QWORD
|
||||
COMM glad_wglQueryCurrentContextNV:QWORD
|
||||
COMM glad_wglQueryFrameCountNV:QWORD
|
||||
COMM glad_wglQueryFrameLockMasterI3D:QWORD
|
||||
COMM glad_wglQueryFrameTrackingI3D:QWORD
|
||||
COMM glad_wglQueryGenlockMaxSourceDelayI3D:QWORD
|
||||
COMM glad_wglQueryMaxSwapGroupsNV:QWORD
|
||||
COMM glad_wglQueryPbufferARB:QWORD
|
||||
COMM glad_wglQueryPbufferEXT:QWORD
|
||||
COMM glad_wglQuerySwapGroupNV:QWORD
|
||||
COMM glad_wglQueryVideoCaptureDeviceNV:QWORD
|
||||
COMM glad_wglReleaseImageBufferEventsI3D:QWORD
|
||||
COMM glad_wglReleasePbufferDCARB:QWORD
|
||||
COMM glad_wglReleasePbufferDCEXT:QWORD
|
||||
COMM glad_wglReleaseTexImageARB:QWORD
|
||||
COMM glad_wglReleaseVideoCaptureDeviceNV:QWORD
|
||||
COMM glad_wglReleaseVideoDeviceNV:QWORD
|
||||
COMM glad_wglReleaseVideoImageNV:QWORD
|
||||
COMM glad_wglResetFrameCountNV:QWORD
|
||||
COMM glad_wglRestoreBufferRegionARB:QWORD
|
||||
COMM glad_wglSaveBufferRegionARB:QWORD
|
||||
COMM glad_wglSendPbufferToVideoNV:QWORD
|
||||
COMM glad_wglSetDigitalVideoParametersI3D:QWORD
|
||||
COMM glad_wglSetGammaTableI3D:QWORD
|
||||
COMM glad_wglSetGammaTableParametersI3D:QWORD
|
||||
COMM glad_wglSetPbufferAttribARB:QWORD
|
||||
COMM glad_wglSetStereoEmitterState3DL:QWORD
|
||||
COMM glad_wglSwapBuffersMscOML:QWORD
|
||||
COMM glad_wglSwapIntervalEXT:QWORD
|
||||
COMM glad_wglSwapLayerBuffersMscOML:QWORD
|
||||
COMM glad_wglWaitForMscOML:QWORD
|
||||
COMM glad_wglWaitForSbcOML:QWORD
|
||||
COMM infolog:QWORD:0200H
|
||||
_DATA ENDS
|
||||
msvcjmc SEGMENT
|
||||
__0ED14FEE_winpackagefamily@h DB 01H
|
||||
__F92EF742_winapifamily@h DB 01H
|
||||
__22E515EB_sdkddkver@h DB 01H
|
||||
__D359774B_concurrencysal@h DB 01H
|
||||
__0E7B27E3_sal@h DB 01H
|
||||
__C320D00B_vadefs@h DB 01H
|
||||
__E4023321_vcruntime@h DB 01H
|
||||
__045EB48A_excpt@h DB 01H
|
||||
__8FF200A2_stdarg@h DB 01H
|
||||
__29F49F40_specstrings_undef@h DB 01H
|
||||
__D0F42932_specstrings_strict@h DB 01H
|
||||
__F00405FD_sdv_driverspecs@h DB 01H
|
||||
__173E09CA_driverspecs@h DB 01H
|
||||
__9A452361_specstrings@h DB 01H
|
||||
__1B0272D9_corecrt@h DB 01H
|
||||
__74484FB3_corecrt_wctype@h DB 01H
|
||||
__1EC467ED_ctype@h DB 01H
|
||||
__98517906_kernelspecs@h DB 01H
|
||||
__D3497022_basetsd@h DB 01H
|
||||
__61CC25A1_errno@h DB 01H
|
||||
__1A10C8D2_vcruntime_string@h DB 01H
|
||||
__E4C945B4_corecrt_memcpy_s@h DB 01H
|
||||
__8EAFF484_corecrt_memory@h DB 01H
|
||||
__6490AEC5_corecrt_wstring@h DB 01H
|
||||
__E8295E1E_string@h DB 01H
|
||||
__7FCB5136_guiddef@h DB 01H
|
||||
__FF8A9E11_pshpack4@h DB 01H
|
||||
__D5438902_poppack@h DB 01H
|
||||
__FB07E2A3_pshpack2@h DB 01H
|
||||
__F6906775_pshpack8@h DB 01H
|
||||
__F9415CFA_pshpack1@h DB 01H
|
||||
__E58C6F1C_apiset@h DB 01H
|
||||
__A5C52262_ktmtypes@h DB 01H
|
||||
__FBBA8F9D_winnt@h DB 01H
|
||||
__A32D3D2C_minwindef@h DB 01H
|
||||
__7D798299_windef@h DB 01H
|
||||
__9AE108E9_apisetcconv@h DB 01H
|
||||
__9CE53D2C_minwinbase@h DB 01H
|
||||
__5D0AA210_apiquery2@h DB 01H
|
||||
__4DD4E726_processenv@h DB 01H
|
||||
__3575CC96_fileapi@h DB 01H
|
||||
__8EA220E6_fileapifromapp@h DB 01H
|
||||
__BF9B31FE_debugapi@h DB 01H
|
||||
__C3AFE134_utilapiset@h DB 01H
|
||||
__76F69E51_handleapi@h DB 01H
|
||||
__7E63D784_errhandlingapi@h DB 01H
|
||||
__FFA7003C_fibersapi@h DB 01H
|
||||
__8971CECF_namedpipeapi@h DB 01H
|
||||
__46C9D8A6_profileapi@h DB 01H
|
||||
__98D4F0A3_heapapi@h DB 01H
|
||||
__50EF2A88_ioapiset@h DB 01H
|
||||
__92EA1464_synchapi@h DB 01H
|
||||
__A53D8AED_interlockedapi@h DB 01H
|
||||
__B506CAAF_processthreadsapi@h DB 01H
|
||||
__FF735694_sysinfoapi@h DB 01H
|
||||
__29589789_memoryapi@h DB 01H
|
||||
__E9C7A663_enclaveapi@h DB 01H
|
||||
__D035F9F7_threadpoollegacyapiset@h DB 01H
|
||||
__C899130C_threadpoolapiset@h DB 01H
|
||||
__E0441EE7_jobapi@h DB 01H
|
||||
__CEF86838_jobapi2@h DB 01H
|
||||
__35AC6B9A_wow64apiset@h DB 01H
|
||||
__C8AE41A5_libloaderapi@h DB 01H
|
||||
__CC9E232D_securitybaseapi@h DB 01H
|
||||
__C9D0C9B8_namespaceapi@h DB 01H
|
||||
__30FF9CAD_systemtopologyapi@h DB 01H
|
||||
__4D358795_processtopologyapi@h DB 01H
|
||||
__40446D10_securityappcontainer@h DB 01H
|
||||
__3A952EDF_realtimeapiset@h DB 01H
|
||||
__F4865F4B_winerror@h DB 01H
|
||||
__53C1BD93_timezoneapi@h DB 01H
|
||||
__1FFBEDBF_winbase@h DB 01H
|
||||
__43D3FA34_wingdi@h DB 01H
|
||||
__D24A7391_tvout@h DB 01H
|
||||
__7713A6C8_winuser@h DB 01H
|
||||
__0B345F71_datetimeapi@h DB 01H
|
||||
__9AC6960C_winnls@h DB 01H
|
||||
__973A40A8_stringapiset@h DB 01H
|
||||
__CC46FEE2_wincontypes@h DB 01H
|
||||
__97D70BE1_consoleapi@h DB 01H
|
||||
__27EC5E18_consoleapi2@h DB 01H
|
||||
__262E342F_consoleapi3@h DB 01H
|
||||
__641DCD70_wincon@h DB 01H
|
||||
__5A96C7A7_verrsrc@h DB 01H
|
||||
__B69C6FF2_winver@h DB 01H
|
||||
__7AEB8C37_reason@h DB 01H
|
||||
__59F1A8A9_winreg@h DB 01H
|
||||
__EE0E2B7F_wnnc@h DB 01H
|
||||
__DCDB7054_winnetwk@h DB 01H
|
||||
__81DDEDE3_stralign@h DB 01H
|
||||
__2134D1B4_winsvc@h DB 01H
|
||||
__11C07376_mcx@h DB 01H
|
||||
__577CE3E7_ime_cmodes@h DB 01H
|
||||
__1E72C31E_imm@h DB 01H
|
||||
__E15BF856_windows@h DB 01H
|
||||
__CBBACB16_ssgc_framework@h DB 01H
|
||||
__F0C66064_ssgc_internal@h DB 01H
|
||||
__BB2DBE6D_stdint@h DB 01H
|
||||
__0E25A6E3_khrplatform@h DB 01H
|
||||
__4AFAC916_glad_gl@h DB 01H
|
||||
__D52B075C_glad_wgl@h DB 01H
|
||||
__13F5961F_stddef@h DB 01H
|
||||
__94128AEC_glfw3@h DB 01H
|
||||
__FC01764F_mmintrin@h DB 01H
|
||||
__45DED006_corecrt_malloc@h DB 01H
|
||||
__FA77ED4C_malloc@h DB 01H
|
||||
__64D75F75_xmmintrin@h DB 01H
|
||||
__01B5D6B9_emmintrin@h DB 01H
|
||||
__DE14BE30_pmmintrin@h DB 01H
|
||||
__6ECDCDB2_tmmintrin@h DB 01H
|
||||
__47F6D831_smmintrin@h DB 01H
|
||||
__229451FD_nmmintrin@h DB 01H
|
||||
__F72FABB3_wmmintrin@h DB 01H
|
||||
__3CBBE6B4_zmmintrin@h DB 01H
|
||||
__0BAF447E_immintrin@h DB 01H
|
||||
__44420885_corecrt_stdio_config@h DB 01H
|
||||
__AB601D8D_corecrt_wstdio@h DB 01H
|
||||
__C1EC35D3_stdio@h DB 01H
|
||||
__FD6DBD68_corecrt_search@h DB 01H
|
||||
__E2E33A61_corecrt_wstdlib@h DB 01H
|
||||
__055B9052_limits@h DB 01H
|
||||
__6E5ACABA_stdlib@h DB 01H
|
||||
__014E939F_stb_image@h DB 01H
|
||||
__9D113FA1_StgSharpC@h DB 01H
|
||||
__54E5184D_mat2@c DB 01H
|
||||
msvcjmc ENDS
|
||||
PUBLIC transpose2to3
|
||||
PUBLIC transpose2to4
|
||||
PUBLIC deinit_mat2
|
||||
PUBLIC __JustMyCode_Default
|
||||
EXTRN __imp__aligned_free:PROC
|
||||
EXTRN _RTC_InitBase:PROC
|
||||
EXTRN _RTC_Shutdown:PROC
|
||||
EXTRN __CheckForDebuggerJustMyCode:PROC
|
||||
EXTRN defaultVecPtr:QWORD
|
||||
; COMDAT pdata
|
||||
pdata SEGMENT
|
||||
$pdata$transpose2to3 DD imagerel $LN3
|
||||
DD imagerel $LN3+321
|
||||
DD imagerel $unwind$transpose2to3
|
||||
pdata ENDS
|
||||
; COMDAT pdata
|
||||
pdata SEGMENT
|
||||
$pdata$transpose2to4 DD imagerel $LN3
|
||||
DD imagerel $LN3+356
|
||||
DD imagerel $unwind$transpose2to4
|
||||
pdata ENDS
|
||||
; COMDAT pdata
|
||||
pdata SEGMENT
|
||||
$pdata$deinit_mat2 DD imagerel $LN3
|
||||
DD imagerel $LN3+54
|
||||
DD imagerel $unwind$deinit_mat2
|
||||
pdata ENDS
|
||||
; COMDAT rtc$TMZ
|
||||
rtc$TMZ SEGMENT
|
||||
_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown
|
||||
rtc$TMZ ENDS
|
||||
; COMDAT rtc$IMZ
|
||||
rtc$IMZ SEGMENT
|
||||
_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase
|
||||
rtc$IMZ ENDS
|
||||
; COMDAT xdata
|
||||
xdata SEGMENT
|
||||
$unwind$deinit_mat2 DD 025051301H
|
||||
DD 010e2313H
|
||||
DD 07007001dH
|
||||
DD 05006H
|
||||
xdata ENDS
|
||||
; COMDAT xdata
|
||||
xdata SEGMENT
|
||||
$unwind$transpose2to4 DD 025051801H
|
||||
DD 01132318H
|
||||
DD 0700c0029H
|
||||
DD 0500bH
|
||||
xdata ENDS
|
||||
; COMDAT xdata
|
||||
xdata SEGMENT
|
||||
$unwind$transpose2to3 DD 025051801H
|
||||
DD 01132318H
|
||||
DD 0700c0029H
|
||||
DD 0500bH
|
||||
xdata ENDS
|
||||
; Function compile flags: /Odt
|
||||
; COMDAT __JustMyCode_Default
|
||||
_TEXT SEGMENT
|
||||
__JustMyCode_Default PROC ; COMDAT
|
||||
00000 c2 00 00 ret 0
|
||||
__JustMyCode_Default ENDP
|
||||
_TEXT ENDS
|
||||
; Function compile flags: /Odtp /RTCsu /ZI
|
||||
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpC\mat2.c
|
||||
; COMDAT deinit_mat2
|
||||
_TEXT SEGMENT
|
||||
mat$ = 224
|
||||
deinit_mat2 PROC ; COMDAT
|
||||
|
||||
; 28 : {
|
||||
|
||||
$LN3:
|
||||
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
||||
00005 55 push rbp
|
||||
00006 57 push rdi
|
||||
00007 48 81 ec e8 00
|
||||
00 00 sub rsp, 232 ; 000000e8H
|
||||
0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
||||
00013 48 8d 0d 00 00
|
||||
00 00 lea rcx, OFFSET FLAT:__54E5184D_mat2@c
|
||||
0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
||||
|
||||
; 29 : _aligned_free(mat);
|
||||
|
||||
0001f 48 8b 8d e0 00
|
||||
00 00 mov rcx, QWORD PTR mat$[rbp]
|
||||
00026 ff 15 00 00 00
|
||||
00 call QWORD PTR __imp__aligned_free
|
||||
|
||||
; 30 : }
|
||||
|
||||
0002c 48 8d a5 c8 00
|
||||
00 00 lea rsp, QWORD PTR [rbp+200]
|
||||
00033 5f pop rdi
|
||||
00034 5d pop rbp
|
||||
00035 c3 ret 0
|
||||
deinit_mat2 ENDP
|
||||
_TEXT ENDS
|
||||
; Function compile flags: /Odtp /RTCsu /ZI
|
||||
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpC\mat2.c
|
||||
; COMDAT transpose2to4
|
||||
_TEXT SEGMENT
|
||||
t0$ = 16
|
||||
t1$ = 64
|
||||
source$ = 320
|
||||
target$ = 328
|
||||
transpose2to4 PROC ; COMDAT
|
||||
|
||||
; 17 : {
|
||||
|
||||
$LN3:
|
||||
00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
||||
00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
||||
0000a 55 push rbp
|
||||
0000b 57 push rdi
|
||||
0000c 48 81 ec 48 01
|
||||
00 00 sub rsp, 328 ; 00000148H
|
||||
00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
||||
00018 48 8d 0d 00 00
|
||||
00 00 lea rcx, OFFSET FLAT:__54E5184D_mat2@c
|
||||
0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
||||
|
||||
; 18 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->m[0][0]), ALIGN(source->m[0][1]), _MM_SHUFFLE(1, 0, 1, 0));
|
||||
|
||||
00024 b8 08 00 00 00 mov eax, 8
|
||||
00029 48 6b c0 00 imul rax, rax, 0
|
||||
0002d 48 8b 8d 40 01
|
||||
00 00 mov rcx, QWORD PTR source$[rbp]
|
||||
00034 48 03 c8 add rcx, rax
|
||||
00037 48 8b c1 mov rax, rcx
|
||||
0003a b9 04 00 00 00 mov ecx, 4
|
||||
0003f 48 6b c9 01 imul rcx, rcx, 1
|
||||
00043 48 03 c1 add rax, rcx
|
||||
00046 0f 10 00 movups xmm0, XMMWORD PTR [rax]
|
||||
00049 b8 08 00 00 00 mov eax, 8
|
||||
0004e 48 6b c0 00 imul rax, rax, 0
|
||||
00052 48 8b 8d 40 01
|
||||
00 00 mov rcx, QWORD PTR source$[rbp]
|
||||
00059 48 03 c8 add rcx, rax
|
||||
0005c 48 8b c1 mov rax, rcx
|
||||
0005f b9 04 00 00 00 mov ecx, 4
|
||||
00064 48 6b c9 00 imul rcx, rcx, 0
|
||||
00068 48 03 c1 add rax, rcx
|
||||
0006b 0f 10 08 movups xmm1, XMMWORD PTR [rax]
|
||||
0006e 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H
|
||||
00072 0f 28 c1 movaps xmm0, xmm1
|
||||
00075 0f 29 45 10 movaps XMMWORD PTR t0$[rbp], xmm0
|
||||
|
||||
; 19 : __m128 t1 = _mm_shuffle_ps(ALIGN(source->m[0][0]), ALIGN(source->m[0][1]), _MM_SHUFFLE(3, 2, 3, 2));
|
||||
|
||||
00079 b8 08 00 00 00 mov eax, 8
|
||||
0007e 48 6b c0 00 imul rax, rax, 0
|
||||
00082 48 8b 8d 40 01
|
||||
00 00 mov rcx, QWORD PTR source$[rbp]
|
||||
00089 48 03 c8 add rcx, rax
|
||||
0008c 48 8b c1 mov rax, rcx
|
||||
0008f b9 04 00 00 00 mov ecx, 4
|
||||
00094 48 6b c9 01 imul rcx, rcx, 1
|
||||
00098 48 03 c1 add rax, rcx
|
||||
0009b 0f 10 00 movups xmm0, XMMWORD PTR [rax]
|
||||
0009e b8 08 00 00 00 mov eax, 8
|
||||
000a3 48 6b c0 00 imul rax, rax, 0
|
||||
000a7 48 8b 8d 40 01
|
||||
00 00 mov rcx, QWORD PTR source$[rbp]
|
||||
000ae 48 03 c8 add rcx, rax
|
||||
000b1 48 8b c1 mov rax, rcx
|
||||
000b4 b9 04 00 00 00 mov ecx, 4
|
||||
000b9 48 6b c9 00 imul rcx, rcx, 0
|
||||
000bd 48 03 c1 add rax, rcx
|
||||
000c0 0f 10 08 movups xmm1, XMMWORD PTR [rax]
|
||||
000c3 0f c6 c8 ee shufps xmm1, xmm0, 238 ; 000000eeH
|
||||
000c7 0f 28 c1 movaps xmm0, xmm1
|
||||
000ca 0f 29 45 40 movaps XMMWORD PTR t1$[rbp], xmm0
|
||||
|
||||
; 20 :
|
||||
; 21 : target->colum[0] = _mm_shuffle_ps(t0, *defaultVecPtr, _MM_SHUFFLE(2, 0, 2, 0));
|
||||
|
||||
000ce 48 8b 05 00 00
|
||||
00 00 mov rax, QWORD PTR defaultVecPtr
|
||||
000d5 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp]
|
||||
000d9 0f c6 00 88 shufps xmm0, XMMWORD PTR [rax], 136 ; 00000088H
|
||||
000dd b8 10 00 00 00 mov eax, 16
|
||||
000e2 48 6b c0 00 imul rax, rax, 0
|
||||
000e6 48 8b 8d 48 01
|
||||
00 00 mov rcx, QWORD PTR target$[rbp]
|
||||
000ed 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
|
||||
|
||||
; 22 : target->colum[1] = _mm_shuffle_ps(t0, *defaultVecPtr, _MM_SHUFFLE(3, 1, 3, 1));
|
||||
|
||||
000f1 48 8b 05 00 00
|
||||
00 00 mov rax, QWORD PTR defaultVecPtr
|
||||
000f8 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp]
|
||||
000fc 0f c6 00 dd shufps xmm0, XMMWORD PTR [rax], 221 ; 000000ddH
|
||||
00100 b8 10 00 00 00 mov eax, 16
|
||||
00105 48 6b c0 01 imul rax, rax, 1
|
||||
00109 48 8b 8d 48 01
|
||||
00 00 mov rcx, QWORD PTR target$[rbp]
|
||||
00110 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
|
||||
|
||||
; 23 : target->colum[2] = _mm_shuffle_ps(t1, *defaultVecPtr, _MM_SHUFFLE(2, 0, 2, 0));
|
||||
|
||||
00114 48 8b 05 00 00
|
||||
00 00 mov rax, QWORD PTR defaultVecPtr
|
||||
0011b 0f 28 45 40 movaps xmm0, XMMWORD PTR t1$[rbp]
|
||||
0011f 0f c6 00 88 shufps xmm0, XMMWORD PTR [rax], 136 ; 00000088H
|
||||
00123 b8 10 00 00 00 mov eax, 16
|
||||
00128 48 6b c0 02 imul rax, rax, 2
|
||||
0012c 48 8b 8d 48 01
|
||||
00 00 mov rcx, QWORD PTR target$[rbp]
|
||||
00133 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
|
||||
|
||||
; 24 : target->colum[3] = _mm_shuffle_ps(t1, *defaultVecPtr, _MM_SHUFFLE(3, 1, 3, 1));
|
||||
|
||||
00137 48 8b 05 00 00
|
||||
00 00 mov rax, QWORD PTR defaultVecPtr
|
||||
0013e 0f 28 45 40 movaps xmm0, XMMWORD PTR t1$[rbp]
|
||||
00142 0f c6 00 dd shufps xmm0, XMMWORD PTR [rax], 221 ; 000000ddH
|
||||
00146 b8 10 00 00 00 mov eax, 16
|
||||
0014b 48 6b c0 03 imul rax, rax, 3
|
||||
0014f 48 8b 8d 48 01
|
||||
00 00 mov rcx, QWORD PTR target$[rbp]
|
||||
00156 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
|
||||
|
||||
; 25 : }
|
||||
|
||||
0015a 48 8d a5 28 01
|
||||
00 00 lea rsp, QWORD PTR [rbp+296]
|
||||
00161 5f pop rdi
|
||||
00162 5d pop rbp
|
||||
00163 c3 ret 0
|
||||
transpose2to4 ENDP
|
||||
_TEXT ENDS
|
||||
; Function compile flags: /Odtp /RTCsu /ZI
|
||||
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgSharpC\mat2.c
|
||||
; COMDAT transpose2to3
|
||||
_TEXT SEGMENT
|
||||
t0$ = 16
|
||||
t1$ = 64
|
||||
source$ = 320
|
||||
target$ = 328
|
||||
transpose2to3 PROC ; COMDAT
|
||||
|
||||
; 7 : {
|
||||
|
||||
$LN3:
|
||||
00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
||||
00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
||||
0000a 55 push rbp
|
||||
0000b 57 push rdi
|
||||
0000c 48 81 ec 48 01
|
||||
00 00 sub rsp, 328 ; 00000148H
|
||||
00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
||||
00018 48 8d 0d 00 00
|
||||
00 00 lea rcx, OFFSET FLAT:__54E5184D_mat2@c
|
||||
0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
||||
|
||||
; 8 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->m[0][0]), ALIGN(source->m[0][1]), _MM_SHUFFLE(1, 0, 1, 0));
|
||||
|
||||
00024 b8 08 00 00 00 mov eax, 8
|
||||
00029 48 6b c0 00 imul rax, rax, 0
|
||||
0002d 48 8b 8d 40 01
|
||||
00 00 mov rcx, QWORD PTR source$[rbp]
|
||||
00034 48 03 c8 add rcx, rax
|
||||
00037 48 8b c1 mov rax, rcx
|
||||
0003a b9 04 00 00 00 mov ecx, 4
|
||||
0003f 48 6b c9 01 imul rcx, rcx, 1
|
||||
00043 48 03 c1 add rax, rcx
|
||||
00046 0f 10 00 movups xmm0, XMMWORD PTR [rax]
|
||||
00049 b8 08 00 00 00 mov eax, 8
|
||||
0004e 48 6b c0 00 imul rax, rax, 0
|
||||
00052 48 8b 8d 40 01
|
||||
00 00 mov rcx, QWORD PTR source$[rbp]
|
||||
00059 48 03 c8 add rcx, rax
|
||||
0005c 48 8b c1 mov rax, rcx
|
||||
0005f b9 04 00 00 00 mov ecx, 4
|
||||
00064 48 6b c9 00 imul rcx, rcx, 0
|
||||
00068 48 03 c1 add rax, rcx
|
||||
0006b 0f 10 08 movups xmm1, XMMWORD PTR [rax]
|
||||
0006e 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H
|
||||
00072 0f 28 c1 movaps xmm0, xmm1
|
||||
00075 0f 29 45 10 movaps XMMWORD PTR t0$[rbp], xmm0
|
||||
|
||||
; 9 : __m128 t1 = _mm_shuffle_ps(ALIGN(source->m[0][0]), ALIGN(source->m[0][1]), _MM_SHUFFLE(3, 2, 3, 2));
|
||||
|
||||
00079 b8 08 00 00 00 mov eax, 8
|
||||
0007e 48 6b c0 00 imul rax, rax, 0
|
||||
00082 48 8b 8d 40 01
|
||||
00 00 mov rcx, QWORD PTR source$[rbp]
|
||||
00089 48 03 c8 add rcx, rax
|
||||
0008c 48 8b c1 mov rax, rcx
|
||||
0008f b9 04 00 00 00 mov ecx, 4
|
||||
00094 48 6b c9 01 imul rcx, rcx, 1
|
||||
00098 48 03 c1 add rax, rcx
|
||||
0009b 0f 10 00 movups xmm0, XMMWORD PTR [rax]
|
||||
0009e b8 08 00 00 00 mov eax, 8
|
||||
000a3 48 6b c0 00 imul rax, rax, 0
|
||||
000a7 48 8b 8d 40 01
|
||||
00 00 mov rcx, QWORD PTR source$[rbp]
|
||||
000ae 48 03 c8 add rcx, rax
|
||||
000b1 48 8b c1 mov rax, rcx
|
||||
000b4 b9 04 00 00 00 mov ecx, 4
|
||||
000b9 48 6b c9 00 imul rcx, rcx, 0
|
||||
000bd 48 03 c1 add rax, rcx
|
||||
000c0 0f 10 08 movups xmm1, XMMWORD PTR [rax]
|
||||
000c3 0f c6 c8 ee shufps xmm1, xmm0, 238 ; 000000eeH
|
||||
000c7 0f 28 c1 movaps xmm0, xmm1
|
||||
000ca 0f 29 45 40 movaps XMMWORD PTR t1$[rbp], xmm0
|
||||
|
||||
; 10 :
|
||||
; 11 : target->colum[0] = _mm_shuffle_ps(t0, *defaultVecPtr, _MM_SHUFFLE(2, 0, 2, 0));
|
||||
|
||||
000ce 48 8b 05 00 00
|
||||
00 00 mov rax, QWORD PTR defaultVecPtr
|
||||
000d5 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp]
|
||||
000d9 0f c6 00 88 shufps xmm0, XMMWORD PTR [rax], 136 ; 00000088H
|
||||
000dd b8 10 00 00 00 mov eax, 16
|
||||
000e2 48 6b c0 00 imul rax, rax, 0
|
||||
000e6 48 8b 8d 48 01
|
||||
00 00 mov rcx, QWORD PTR target$[rbp]
|
||||
000ed 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
|
||||
|
||||
; 12 : target->colum[1] = _mm_shuffle_ps(t0, *defaultVecPtr, _MM_SHUFFLE(3, 1, 3, 1));
|
||||
|
||||
000f1 48 8b 05 00 00
|
||||
00 00 mov rax, QWORD PTR defaultVecPtr
|
||||
000f8 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp]
|
||||
000fc 0f c6 00 dd shufps xmm0, XMMWORD PTR [rax], 221 ; 000000ddH
|
||||
00100 b8 10 00 00 00 mov eax, 16
|
||||
00105 48 6b c0 01 imul rax, rax, 1
|
||||
00109 48 8b 8d 48 01
|
||||
00 00 mov rcx, QWORD PTR target$[rbp]
|
||||
00110 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
|
||||
|
||||
; 13 : target->colum[2] = _mm_shuffle_ps(t1, *defaultVecPtr, _MM_SHUFFLE(2, 0, 2, 0));
|
||||
|
||||
00114 48 8b 05 00 00
|
||||
00 00 mov rax, QWORD PTR defaultVecPtr
|
||||
0011b 0f 28 45 40 movaps xmm0, XMMWORD PTR t1$[rbp]
|
||||
0011f 0f c6 00 88 shufps xmm0, XMMWORD PTR [rax], 136 ; 00000088H
|
||||
00123 b8 10 00 00 00 mov eax, 16
|
||||
00128 48 6b c0 02 imul rax, rax, 2
|
||||
0012c 48 8b 8d 48 01
|
||||
00 00 mov rcx, QWORD PTR target$[rbp]
|
||||
00133 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
|
||||
|
||||
; 14 : }
|
||||
|
||||
00137 48 8d a5 28 01
|
||||
00 00 lea rsp, QWORD PTR [rbp+296]
|
||||
0013e 5f pop rdi
|
||||
0013f 5d pop rbp
|
||||
00140 c3 ret 0
|
||||
transpose2to3 ENDP
|
||||
_TEXT ENDS
|
||||
END
|
||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user