drm: Use vblank time from page flip handler
This commit is contained in:
parent
779d8f1bee
commit
a659fef806
4 changed files with 8 additions and 5 deletions
|
@ -188,7 +188,9 @@ static void page_flip_handler(int fd, unsigned int frame, unsigned int sec, unsi
|
|||
if ( g_DRM.crtc->id != crtc_id )
|
||||
return;
|
||||
|
||||
vblank_mark_possible_vblank();
|
||||
// This is the last vblank time
|
||||
uint64_t vblanktime = sec * 1'000'000'000lu + usec * 1'000lu;
|
||||
vblank_mark_possible_vblank(vblanktime);
|
||||
|
||||
// TODO: get the fbids_queued instance from data if we ever have more than one in flight
|
||||
|
||||
|
|
|
@ -494,7 +494,8 @@ static inline void stats_printf( const char* format, ...)
|
|||
uint64_t get_time_in_nanos()
|
||||
{
|
||||
timespec ts;
|
||||
clock_gettime(CLOCK_MONOTONIC_RAW, &ts);
|
||||
// Kernel reports page flips with CLOCK_MONOTONIC.
|
||||
clock_gettime(CLOCK_MONOTONIC, &ts);
|
||||
return ts.tv_sec * 1'000'000'000ul + ts.tv_nsec;
|
||||
}
|
||||
|
||||
|
|
|
@ -77,7 +77,7 @@ int vblank_init( void )
|
|||
return g_vblankPipe[ 0 ];
|
||||
}
|
||||
|
||||
void vblank_mark_possible_vblank( void )
|
||||
void vblank_mark_possible_vblank( uint64_t nanos )
|
||||
{
|
||||
g_lastVblank = get_time_in_nanos();
|
||||
g_lastVblank = nanos;
|
||||
}
|
||||
|
|
|
@ -2,4 +2,4 @@
|
|||
|
||||
int vblank_init( void );
|
||||
|
||||
void vblank_mark_possible_vblank( void );
|
||||
void vblank_mark_possible_vblank( uint64_t nanos );
|
||||
|
|
Loading…
Reference in a new issue