Firstborn/Library/PackageCache/com.unity.render-pipelines..../Runtime/Tiling/SliceCombineJob.cs

40 lines
1.1 KiB
C#
Raw Normal View History

2023-03-28 13:24:16 -04:00
using Unity.Burst;
using Unity.Collections;
using Unity.Jobs;
using Unity.Mathematics;
namespace UnityEngine.Rendering.Universal
{
[BurstCompile]
unsafe struct SliceCombineJob : IJobFor
{
public int2 tileResolution;
public int wordsPerTile;
[ReadOnly]
public NativeArray<uint> sliceLightMasksH;
[ReadOnly]
public NativeArray<uint> sliceLightMasksV;
[NativeDisableParallelForRestriction]
public NativeArray<uint> lightMasks;
public void Execute(int idY)
{
var baseIndexH = idY * wordsPerTile;
var baseIndexRow = baseIndexH * tileResolution.x;
for (var idX = 0; idX < tileResolution.x; idX++)
{
var baseIndexV = idX * wordsPerTile;
var baseIndexTile = baseIndexRow + baseIndexV;
for (var wordIndex = 0; wordIndex < wordsPerTile; wordIndex++)
{
lightMasks[baseIndexTile + wordIndex] = sliceLightMasksH[baseIndexH + wordIndex] & sliceLightMasksV[baseIndexV + wordIndex];
}
}
}
}
}