Hello,
I am using CAMetalDisplayLink to render my metal layer and i am trying to calculate timestamp for next render to compare with current timestamp.
I did notice that timestamp from display link Update is not like Date timestamp. Looks like it depends on some kind of phone boot or another kernel process start. I did try
func bootTime() -> TimeInterval? {
var tv = timeval()
var tvSize = MemoryLayout<timeval>.size
let err = sysctlbyname("kern.boottime", &tv, &tvSize, nil, 0);
guard err == 0, tvSize == MemoryLayout<timeval>.size else {
return nil
}
return Double(tv.tv_sec) + Double(tv.tv_usec) / 1_000_000.0
}
And i got
calc
1715680889.6883893
real
1715680878.01257
It's close but still 10 seconds different so probably it's not kern.boottime
but something similar.
Anybody knows what should i use to get correct timestamp?