Refactor SPMD job system, add GGX mipmap benchmark
- Replace IJobSPMD with T4-generated, multi-type SPMD job interfaces and wrappers (up to 8 numeric types) - Extend ISPMD with Cast/BitCast; implement for ScalarLane and WideLane (SIMD-aware) - Add unary minus, scalar-lane, and lane-scalar operators to Vector2/3/4; improve Select methods - WideLane now partial with T4-generated Cast/BitCast (SIMD conversions) - SPMD job Execute now requires unmanaged TLane; update all usages and benchmarks - Add GGXMipGenerationBenchmark with vectorized and scalar paths, SkiaSharp output - Update project files: add generated code, SkiaSharp, bump version to 1.3.0 - Misc: fix formatting, method signatures, FreeList logic
This commit is contained in:
@@ -297,8 +297,9 @@ public static unsafe partial class MathV
|
||||
{
|
||||
return new <#= vectorType #>
|
||||
{
|
||||
x = <#= TLane #>.Select(condition, b.x, a.x),
|
||||
y = <#= TLane #>.Select(condition, b.y, a.y),
|
||||
<# for (int i = 0; i < dimension; i++) { #>
|
||||
<#= components[i] #> = <#= TLane #>.Select(condition, b.<#= components[i] #>, a.<#= components[i] #>),
|
||||
<# } #>
|
||||
};
|
||||
}
|
||||
|
||||
@@ -309,8 +310,9 @@ public static unsafe partial class MathV
|
||||
{
|
||||
return new <#= vectorType #>
|
||||
{
|
||||
x = <#= TLane #>.Select(condition.x, b.x, a.x),
|
||||
y = <#= TLane #>.Select(condition.y, b.y, a.y),
|
||||
<# for (int i = 0; i < dimension; i++) { #>
|
||||
<#= components[i] #> = <#= TLane #>.Select(condition.<#= components[i] #>, b.<#= components[i] #>, a.<#= components[i] #>),
|
||||
<# } #>
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user