I’m not sure a cross-correlation is necessarily the right way to look at this (particularly if there is a chance for “frame-shift” errors)
Thanks for pointing me in the right direction. I’ve redone the analysis like you suggested, the results are further down this post.
Right now, the data was obtained using only one photodiode, so the possibility of frame-shift errors remains. I’ve told our machine shop to build a diode-array and as soon as it is ready, I will do all this again. For now, I think the results are interesting enough to read on.
It seems like I was wrong all the time. The display update timestamps are not inaccurate and they truly reflect the time when something appears on the display. Something else is going wrong!
I’ve tested the previous described setup with the current nightly build and the DisplayLink-only version of MWorks. The experiment was one random dot pattern moving for 100 seconds. The distributions for the delay between display update announcements (bit code 0 to bit code 1) and photodiode rising edges look like this:
and like this for the DisplayLink-only version
The difference is small, almost neglect able. However, I did see the motion stutter when measuring the Nightly build, so I took a closer look. This is the “delta t” analysis I did previously (except that I took every second frame this time).
As one can see, delays between display update announcements are quite regular in the DisplayLink only version, but look a bit strange in the nightly build.
I noted previously, that this might be due to a “smoothing” of the timestamps performed by DisplayLink. But since the DisplayLink-only version also passed the lag-analysis, I was curious of how such a “smoothing” would take place. So I looked closer at the diode-activity in both versions and was extremely surprised to find that they are very different. All the irregularities found in the update announcements of the nightly build are also present in the diode activity.
If I am not completely mistaken, this means that the announcements for display updates are not wrong, they are quite accurate, but the screen starts to update irregularly when using the nightly build.
But is this even possible or did I miss something big here?
Confused greetings,
Philipp
One additional thing that might be or might not be of importance: Both versions have a display update announcement (the last one) which never gets displayed. This might be due to a premature dequeuing of the bit code stimulus. I’ll keep on investigating this. Apart from that update announcements match up quite obviously one-by-one to the diode activity. But as I said, as soon as the diode array is ready…
Oh and I forgot to mention it: the nightly build showed one warning for a lost frame. I also disabled the mirror window for both runs.