present: Adjust timings with value arguments

We can use value arguments instead of pointers when adjusting the timings
by returning the adjusted value. This improves the readability.

Signed-off-by: Roman Gilg <subdiff@gmail.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
This commit is contained in:
Roman Gilg 2019-05-27 22:32:22 +02:00
parent 4709d24f8e
commit 99e55f1b95
4 changed files with 27 additions and 26 deletions

View File

@ -157,31 +157,32 @@ present_can_window_flip(WindowPtr window)
return screen_priv->can_window_flip(window); return screen_priv->can_window_flip(window);
} }
void uint64_t
present_adjust_timings(uint32_t options, present_get_target_msc(uint32_t options,
uint64_t *crtc_msc, uint64_t crtc_msc,
uint64_t *target_msc, uint64_t target_msc,
uint64_t divisor, uint64_t divisor,
uint64_t remainder) uint64_t remainder)
{ {
/* Adjust target_msc to match modulus /* Adjust target_msc to match modulus
*/ */
if (msc_is_equal_or_after(*crtc_msc, *target_msc)) { if (msc_is_equal_or_after(crtc_msc, target_msc)) {
if (divisor != 0) { if (divisor != 0) {
*target_msc = *crtc_msc - (*crtc_msc % divisor) + remainder; target_msc = crtc_msc - (crtc_msc % divisor) + remainder;
if (options & PresentOptionAsync) { if (options & PresentOptionAsync) {
if (msc_is_after(*crtc_msc, *target_msc)) if (msc_is_after(crtc_msc, target_msc))
*target_msc += divisor; target_msc += divisor;
} else { } else {
if (msc_is_equal_or_after(*crtc_msc, *target_msc)) if (msc_is_equal_or_after(crtc_msc, target_msc))
*target_msc += divisor; target_msc += divisor;
} }
} else { } else {
*target_msc = *crtc_msc; target_msc = crtc_msc;
if (!(options & PresentOptionAsync)) if (!(options & PresentOptionAsync))
(*target_msc)++; (target_msc)++;
} }
} }
return target_msc;
} }
int int

View File

@ -279,10 +279,10 @@ present_set_tree_pixmap(WindowPtr window,
PixmapPtr expected, PixmapPtr expected,
PixmapPtr pixmap); PixmapPtr pixmap);
void uint64_t
present_adjust_timings(uint32_t options, present_get_target_msc(uint32_t options,
uint64_t *crtc_msc, uint64_t crtc_msc,
uint64_t *target_msc, uint64_t target_msc,
uint64_t divisor, uint64_t divisor,
uint64_t remainder); uint64_t remainder);

View File

@ -690,11 +690,11 @@ present_scmd_pixmap(WindowPtr window,
window_priv->msc = crtc_msc; window_priv->msc = crtc_msc;
} }
present_adjust_timings(options, target_msc = present_get_target_msc(options,
&crtc_msc, crtc_msc,
&target_msc, target_msc,
divisor, divisor,
remainder); remainder);
/* /*
* Look for a matching presentation already on the list and * Look for a matching presentation already on the list and

View File

@ -582,11 +582,11 @@ present_wnmd_pixmap(WindowPtr window,
window_priv->msc = crtc_msc; window_priv->msc = crtc_msc;
} }
present_adjust_timings(options, target_msc = present_get_target_msc(options,
&crtc_msc, crtc_msc,
&target_msc, target_msc,
divisor, divisor,
remainder); remainder);
/* /*
* Look for a matching presentation already on the list... * Look for a matching presentation already on the list...