To clarify, I would like to offset the actual timing of when the next screen refresh happens.
I am creating a multiplayer game where the server sends packets to clients at 60Hz and I would like these clients to receive these packets couple ms before the next frame starts.
I presume each client will have their Vsync times out of sync relative to each other. This may make the game more responsive to some players than others when they have equal pings to the server
I am using Unity and developing for Android/iOS. Unfortunately, mobile platforms forces Vsync on. So I'm hoping Vsync offset is a possible solution.
For example, ignoring all the problems of unpredictable ping delays and apps running at consistent 60FPS:
Lets assume that the packets arrive AT EXACTLY 60Hz to clientA and it happens to arrive 2ms right before the frame starts. So clientA has the packet ready to be processed by the next frame.
ClientB who also receives packets AT EXACTLY 60Hz but for him it arrives 2ms AFTER the frame starts. That means, the frame already started, so he has wait for the next frame to come to process the packet.
Hence, clientB lags consistently behind clientA by 16.6666ms.
Unless, there is a way to offset the Vsync at hardware level. Since clientB's frame starts 2ms before the packet arrives, if we can offset or delay frame start by 4ms. Then the packet would arrive 2ms before the frame starts and would be ready to be processed by that time. Then of course next the coming Vsyncs happens at the adjusted times.
I know some of you may say 16.6666ms is not a big deal, but this is just a simple example, in my fast paced app, it can make a world of difference.
Thank you in advance.