private (float[], float[]) GetProvinceEdgePixels(float[] _searchColFloat4)
    {
        getEdgePixelsBuffer.SetCounterValue(0);
        getProvinceEdgePixelsCS.SetFloats("SearchColor", _searchColFloat4);
        getProvinceEdgePixelsCS.SetTexture(0, "ProvinceMap", ProvinceIdTex);

        getProvinceEdgePixelsCS.Dispatch(0, ProvinceIdTex.width / 32, ProvinceIdTex.height / 32, 1);

        int[] args = new int[] { 0, 1, 0, 0 };
        getEdgePixelsArgBuffer.SetData(args);
        ComputeBuffer.CopyCount(getEdgePixelsBuffer, getEdgePixelsArgBuffer, 0);
        getEdgePixelsArgBuffer.GetData(args);

        float2[] result = new float2[args[0]];
        getEdgePixelsBuffer.GetData(result, 0, 0, args[0]);

        float[] resultX = result.AsParallel().Select((val) => val.x).ToArray();
        float[] resultY = result.AsParallel().Select((val) => val.y).ToArray();

        return(resultX, resultY);
    }